[Main]
Title=VMware (Virtual Machine)
Description=Runs your ISO in VMware
Selected=False
Level=9
Author=Kare;MaineCoon
Version=15
Date=11.04.2021
Disable=Virtual Test\VirtualBox.srt,Virtual Test\BestEmu.srt

[Interface]
pFrame1=,707070,0,0,0,0,400,105
pFrame2=Settings,707070,0,0,0,105,550,185
pFrame3=Finalization,707070,0,0,0,290,400,65

pTextLabel1=VMware runs ISO files in a virtual environment.,10,0,Default,20,20,370,40
pTextLabel2=NOTE:#$xVMware has to be installed on your PC,10,0,Bold,20,60,320,40
pTextLabel3=Allocated memory (Mb):,10,0,Default,20,130,180,20
pTextLabel4=ISO file:,10,0,Default,20,165,60,20
pTextLabel5=HDD Controller,10,1,Default,200,240,79,20
pTextLabel6=Re-execution of scripts#$x'0-PostConfig.srt' and 1-create_iso.srt',10,0,Default,20,310,230,40
pTextLabel7=Bootorder:,10,1,Default,370,242,60,18

pCheckBox1=True,Network,0,3,10,210,65,18
pCheckBox2=True,Audio,0,3,10,240,50,18
pCheckBox3=True,Hard disk,0,0,200,210,68,18
pCheckBox5=False,UEFI Boot,0,0,370,210,120,18

pScrollBox1=2048,1,0,0,228,127,60,20,768,1024,1536,2048,2560,3072
pScrollBox2=Win10[19041]_de-DE_x64.iso,1,0,0,110,162,310,22,Win10[19041]_de-DE_x64.iso
pScrollBox3=Intel 82545EM,1,0,0,80,209,105,20,Intel 82545EM,AMD 79C970
pScrollBox4=HDAudio,1,0,0,80,239,105,20,Creative ES1371,HDAudio
pScrollBox5=Used,1,0,0,280,209,70,20,New,Used,Custom
pScrollBox6=SCSI,0,1,0,280,239,70,20,IDE,SCSI
pScrollBox7=DVD,0,1,0,440,239,60,20,DVD,HDD


pFileBox1=,VHD (*.vhd;*.vmdk),1,FileDir,280,265,230,20

pButton1=all,Finalize,0,,325,310,60,25


pWebLabel1=https://my.vmware.com/en/web/vmware/free#desktop_end_user_computing/vmware_workstation_player/12_0#$dPLAYER-1259#$dproduct_downloads,Download Page,0,Web,420,25,100,20
//
tEcho1=Processing 'VMWare'...
tMsg_1=VMware is not installed on this PC.#$x#$xAborting script...
tMsg_2=No ISO file found
tMsg_3=No VMHDD file found
tMsg_4=VMware is already running
tMsg_5=Script setting for VMWare memory:#$x- %pScrollBox1% Mb#$x%VOS% needs at least:#$x- %RamNeed% MB.#$x#$xDo you want to aply this setting %RamNeed% Mb ?
tMsg_6=Starting VMware ( %DispName% )...
tMsg_7=System not recognized, choose Windows version
tmsg_8=Memory critical#$x#$xneeds at least: %RamNeed%#$xAvailable memory: %FreeRam%
tMsg_9=No UEFI support for %OS% or architecture %ArchIso%.#$x#$xSupported Operating Systems:#$x- Windows 8/8.1, Windows 10#$x#$xArchitecture:#$x- x64

tHalt_1=VMware needs at least %RamNeed% Mb. Aborting script...
tQuestion=SELECTION

[Interface.07]
Description=Startet die erstellte ISO-Datei in einer Virtuellen Maschine
pframe1=,707070,0,0,0,0,400,105
pframe2=Einstellungen,707070,0,0,0,105,550,185
pframe3=Finalisierung,707070,0,0,0,290,400,65
ptextlabel1=VMware führt ISO-Dateien in einer virtuellen Umgebung aus.,10,0,Default,20,25,370,20
ptextlabel2=WICHTIG:#$xVMware muss auf Ihrem PC installiert sein,10,0,Bold,20,60,320,40
ptextlabel3=Zugewiesener Speicher (MB):,10,0,Default,20,130,180,20
ptextlabel4=ISO-Datei:,10,0,Default,20,165,80,20
ptextlabel5=HDD-Controller,10,1,Default,200,242,79,20
ptextlabel6=Erneute Ausführung der Skripte#$x'0-PostConfig.srt' und 1-create_iso.srt',10,0,Default,20,310,230,40
pcheckbox1=True,Netzwerk,0,3,10,210,65,18
pcheckbox2=True,Audio,0,3,10,240,50,18
pcheckbox3=True,Festplatte,0,0,200,210,68,18
pCheckBox5=False,UEFI Boot,0,0,370,210,120,18
pscrollbox1=2048,1,0,0,228,127,60,20,768,1024,1536,2048,2560,3072
pScrollBox2=,1,0,0,110,162,310,22,
pscrollbox3=Intel 82545EM,1,0,0,80,209,105,20,Intel 82545EM,AMD 79C970
pscrollbox4=HDAudio,1,0,0,80,239,105,20,Creative ES1371,HDAudio
pscrollbox5=Benutzt,1,0,0,280,209,70,20,Neu,Benutzt,Eigene
pscrollbox6=SCSI,0,1,0,280,239,70,20,IDE,SCSI
pfilebox1=,VHD (*.vhd;*.vmdk),1,FileDir,280,265,230,20
pbutton1=all,Finalisieren,0,,310,310,80,25
pweblabel1=https://my.vmware.com/de/web/vmware/free#desktop_end_user_computing/vmware_workstation_player/12_0#$dPLAYER-1259#$dproduct_downloads,Download Seite,0,Web,420,25,120,20
pScrollBox7=DVD,0,1,0,445,239,60,20,DVD,HDD
pTextLabel7=Bootorder:,10,1,Default,370,242,60,18


tEcho1='VMWare' wird ausgeführt.
tmsg_1=VMware ist auf diesem Computer nicht installiert.#$x#$xSkript wird abgebrochen.
tmsg_2=Keine übereinstimmende ISO-Datei gefunden
tmsg_3=VMHDD-Datei wurde nicht gefunden
tmsg_4=VMware wird bereits ausgeführt
tmsg_5=Skript-Einstellung für den VMware-Speicher:#$x- %pScrollBox1% MB#$x%VOS% benötigt mindestens:#$x- %RamNeed% MB.#$x#$xWollen Sie die Einstellung auf %RamNeed% MB übernehmen ?
tmsg_6=VMware wird gestartet ( %DispName% )...
tmsg_7=System nicht erkannt, wähle Windowsversion
tmsg_8=Arbeitsspeicher kritisch#$x#$x%VOS% benötigt mindestens: %RamNeed%#$xVerfügbarer Speicher: %FreeRam%
tMsg_9=Keine UEFI-Unterstützung für %OS% oder Architektur %ArchIso%.#$x#$xUnterstützte Betriebssysteme:#$x- Windows 8/8.1, Windows 10#$x#$xArchitektur:#$x- x64

thalt_1=VMware benötigt mindestens %RamNeed% MB. Skript wird abgebrochen...
tquestion=AUSWAHL


[Script-Select]
Search,%AllIsos%,File,%IsoDir%,*.iso
If,ExistFile,%IsoFile%,Then,Interface,Set,pScrollBox2,%IsoFileName%
Interface,Set,pScrollBox2,%AllIsos%

[pScrollBox5]
Update,InterfaceVar
Interface,GetIndex,pScrollBox5,%HDDSt%
Set,%Var%,Hide
If,%HDDSt%,=,3,Then,Set,%Var%,Show
Interface,State,%Var%,pTextLabel5,pScrollBox6,pFileBox1,pTextLabel7,pScrollBox7



[Process]

Echo,%tEcho1%
//----ÜBERPRÜFUNG AUF INSTALLIERTE VERSION
//++++++++++++++++++++++++++++++++++++++++

RegRead,%VM_Path%,HKLM,SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\vmplayer.exe,Path
If,Not,%VM_Path%,=,,Then
	Set,%VM_Path%,%VM_Path%vmplayer.exe
Else
	Message,%tMsg_1%,ERROR,6
	Exit
End

StrFormat,%VM_Filename%,Filename,%VM_Path%
If,ExeRunning,%VM_Filename%,Then,Message,%tMsg_4%,Exit

Set,%AskOS%,0
Set,%Bootorder%,0
//----AUSWAHL DER ISO-DATEI
//+++++++++++++++++++++++++
If,%BuildMode%,<,2,Then
	Search,%AllIsos%,File,%IsoDir%,*.iso
	Interface,Set,pScrollBox2,%AllIsos%,%IsoFileName%
	Set,%ArchIso%,%arch%
Else
	// %OS% und %Arch% aus dem Namen der ISO-Datei auslesen
	// 16.09.2019
	If,%pscrollbox2%,=,,Then,Message,%tMsg_2%,Exit
	Set,%ISOfile%,%ISODir%\%pscrollbox2%
	StrFormat,%DispName%,FILENAMEEX,%pScrollBox2%
	String,%ArchIso%,RIGHT,%DispName%,3
	String,%Pos%,FIND,%pScrollBox2%,[
	// LSP-MergePE
	If,%Pos%,>,9,Then,String,%Pos%,FIND,%pScrollBox2%,_

	Math,%Pos%,%Pos%-1
	// %OS% der ISO-Datei
	String,%OS%,LEFT,%pScrollBox2%,%Pos%
	If,%OS%,=,,Then,Set,%AskOS%,1

	Set,%IsoFile%,%IsoDir%\%pScrollBox2%
End
If,Not,ExistFile,%IsoFile%,Then,Message,%IsoFileName%:#$x%tMsg_2%,Exit


//----Erstellung der .vmx-Datei
//+++++++++++++++++++++++++++++
StrFormat,%FileName%,FILENAME,%IsoFile%
StrFormat,%DispName%,FILENAMEEX,%FileName%

If,ExistFile,%ScriptDir%\VMWare\LSP.vmx,Then,DirRemove,%ScriptDir%\VMWare,1

DirMake,%ScriptDir%\VMWare
TXTAddLine,%ScriptDir%\VMWare\LSP.vmx,.encoding = #$qwindows-1252#$q,Bottom
TXTAddLine,%ScriptDir%\VMWare\LSP.vmx,config.version = #$q8#$q,Bottom

Retrieve,%Var%,FileVersion,%VM_Path%
String,%Var%,Split,%var%,.,1
Set,%HWLst%,4|4|7|8|9|10|11|||||12||14|16|18
String,%HWVer%,Split,%HWLst%,|,%Var%
TXTAddLine,%ScriptDir%\VMWare\LSP.vmx,virtualHW.version = #$q%HWVer%#$q,Bottom
TXTAddLine,%ScriptDir%\VMWare\LSP.vmx,displayName = %DispName%,Bottom


//If,%OS%,=,Win10, Then,
TXTAddLine,%ScriptDir%\VMWare\LSP.vmx,hpet0.present = #$qTRUE#$q,Bottom

// Scsi Adapter
TXTAddLine,%ScriptDir%\VMWare\LSP.vmx,scsi0.present = #$qTRUE#$q,Bottom
TXTAddLine,%ScriptDir%\VMWare\LSP.vmx,scsi0.virtualDev = #$qlsisas1068#$q,Bottom

// CD-ROM
TXTAddLine,%ScriptDir%\VMWare\LSP.vmx,ide0:0.present = #$qTRUE#$q,Bottom
TXTAddLine,%ScriptDir%\VMWare\LSP.vmx,ide0:0.fileName = #$q%ISOfile%#$q,Bottom
TXTAddLine,%ScriptDir%\VMWare\LSP.vmx,ide0:0.deviceType = #$qcdrom-image#$q,Bottom
//	TXTAddLine,%ScriptDir%\VMWare\LSP.vmx,scsi0:0.deviceType = #$qcdrom-image#$q,Bottom
//	TXTAddLine,%ScriptDir%\VMWare\LSP.vmx,scsi0:0.fileName = #$q%ISOfile%#$q,Bottom
//	TXTAddLine,%ScriptDir%\VMWare\LSP.vmx,scsi0:0.present = #$qTRUE#$q,Bottom

// Floppy
TXTAddLine,%ScriptDir%\VMWare\LSP.vmx,floppy0.present = #$qFALSE#$q,Bottom

// HDD
If,%pCheckBox3%,=,True,Then
	Set,%VMDDPath%,%BaseDir%\Temp\VMHDD\lsp.vmdk
	Interface,GetIndex,pScrollBox5,%HDDSt%
	If,%HDDSt%,=,1,Then,FileCopy,%BaseDir%\Temp\VMHDD\HDD.vmdk,%BaseDir%\Temp\VMHDD\lsp.vmdk
	If,Not,Existfile,%BaseDir%\Temp\VMHDD\LSP.vmdk,Then,FileCopy,%BaseDir%\Temp\VMHDD\HDD.vmdk,%BaseDir%\Temp\VMHDD\lsp.vmdk
	If,%HDDSt%,=,3,Then

		Set,%VMDDPath%,%pFileBox1%
		Interface,GetIndex,pScrollBox7,%BOIdx%
		if,%BOIdx%,=,2,then
			Set,%AskOS%,1
			Set,%Bootorder%,1
		End
	End

	If,ExistFile,%VMDDPath%,Then
		Interface,GetIndex,pScrollBox6,%HDDcn%
		If,%HDDcn%,=,1,Then
			// IDE
			TXTAddLine,%Scriptdir%\VMWare\LSP.vmx,ide0:1.deviceType = #$qdisk#$q,Bottom
			TXTAddLine,%Scriptdir%\VMWare\LSP.vmx,ide0:1.present = #$qTRUE#$q,Bottom
			TXTAddLine,%Scriptdir%\VMWare\LSP.vmx,ide0:1.fileName = #$q%VMDDPath%#$q,Bottom
		End
		If,%HDDcn%,=,2,Then
			// SCSI
			TXTAddLine,%Scriptdir%\VMWare\LSP.vmx,Scsi0:1.present = #$qTRUE#$q,Bottom
			TXTAddLine,%Scriptdir%\VMWare\LSP.vmx,Scsi0:1.fileName = #$q%VMDDPath%#$q,Bottom

		End
	Else
		Message,%tMsg_3%#$x#$x%VMDDPath%,VHD
	End
End

// Betriebssysteme
// ---------------
if,%AskOS%,=,1,then
	Set,%osLst%,Win10|x64#$xWin10|x86#$xWin8|x64#$xWin8|x86#$xWin7|x64#$xWin7|x86#$xWinXP|x64#$xWinXP|x86
	message,Windows 10 64Bit#$xWindows 10 32Bit#$xWindows 8 64Bit#$xWindows 8 32Bit#$xWindows 7 64Bit#$xWindows 7 32Bit#$xWindows XP 64Bit#$xWindows XP 32Bit,Listbox|%tmsg_7%
	if,%exitcode%,=,0,then,Halt,Windowsversion abort by User
	String,%Item%,Split,%osLst%,#$x,%exitcode%
	String,%os%,Split,%Item%,|,1
	String,%ArchIso%,Split,%Item%,|,2
	Set,%VMRam%,0
end

Set,%VOS%,%os%
Set,%VMOS%,windows9
If,%OS%,=,WinXP,Then,Set,%VMOS%,WinXPPro
If,%OS%,=,Win2003,Then,Set,%VMOS%,WinNetStandard
If,%OS%,=,WinVista,Then,Set,%VMOS%,WinVista
If,%OS%,=,Win7,Then,Set,%VMOS%,windows7
If,%OS%,=,Win8,Then,Set,%VMOS%,windows8
If,%OS%,=,Win81,Then,Set,%VMOS%,windows8
If,%OS%,=,Win10,Then,Set,%VMOS%,windows9
if,%ArchIso%,=,x64,then,Set,%VMOS%,%VMOS%-64
TXTAddLine,%ScriptDir%\VMWare\LSP.vmx,guestOS = #$q%VMOS%#$q,Bottom

//Bootorder
if,%Bootorder%,=,0,then
	TXTAddLine,%ScriptDir%\VMWare\LSP.vmx,bios.bootOrder = "cdrom#$chdd#$q,Bottom
else
	TXTAddLine,%ScriptDir%\VMWare\LSP.vmx,bios.bootOrder = "hdd#$ccdrom#$q,Bottom
end 

// Net
If,%pCheckBox1%,=,True,Then
	TXTAddLine,%ScriptDir%\VMWare\LSP.vmx,Ethernet0.present=#$qTRUE#$q,Bottom
	TXTAddLine,%ScriptDir%\VMWare\LSP.vmx,Ethernet0.connectionType=#$qbridged#$q,Bottom
	//	TXTAddLine,%ScriptDir%\VMWare\LSP.vmx,Ethernet0.connectionType=#$qnat#$q,Bottom
	TXTAddLine,%ScriptDir%\VMWare\LSP.vmx,Ethernet0.addressType=#$qgenerated#$q,Bottom
	Interface,GetIndex,pScrollBox3,%Var%
	// Intel 82545EM
	If,%Var%,=,1,Then,TXTAddLine,%ScriptDir%\VMWare\LSP.vmx,Ethernet0.virtualDev=#$qe1000#$q,Bottom
	// AMD 79C970
	If,%Var%,=,2,Then,TXTAddLine,%ScriptDir%\VMWare\LSP.vmx,Ethernet0.virtualDev=#$qvlance#$q,Bottom
	//TXTAddLine,%ScriptDir%\VMWare\LSP.vmx,Ethernet0.virtualDev=#$qvmxnet#$q,Bottom
End

// Sound
If,%pCheckBox2%,=,True,Then
	TXTAddLine,%ScriptDir%\VMWare\LSP.vmx,sound.present = #$qTRUE#$q,Bottom
	TXTAddLine,%ScriptDir%\VMWare\LSP.vmx,sound.fileName = #$q-1#$q,Bottom
	TXTAddLine,%ScriptDir%\VMWare\LSP.vmx,sound.autodetect = #$qTRUE#$q,Bottom
	Interface,GetIndex,pScrollBox4,%Var%
	// Creative ES1371
	If,%Var%,=,1,Then,TXTAddLine,%ScriptDir%\VMWare\LSP.vmx,sound.virtualDev = #$qes1371#$q,Bottom
	// HDAudio
	If,%Var%,=,2,Then,TXTAddLine,%ScriptDir%\VMWare\LSP.vmx,sound.virtualDev = #$qhdaudio#$q,Bottom
End

// USB
TXTAddLine,%ScriptDir%\VMWare\LSP.vmx,usb.present = #$qTRUE#$q,Bottom

// UEFI Boot
If,%pCheckBox5%,=,True,Then
	If,%ArchIso%,=,x64,and,%WIM_BUILD%,>,9000,Then
		TXTAddLine,%ScriptDir%\VMWare\LSP.vmx,firmware = #$qefi#$q,Bottom
	Else
		Message,%tMsg_9%,INFORMATION
	end
end

// pciBridge
TXTAddLine,%ScriptDir%\VMWare\LSP.vmx,pciBridge0.pciSlotNumber = #$q17#$q,Bottom
TXTAddLine,%ScriptDir%\VMWare\LSP.vmx,pciBridge0.present = #$qTRUE#$q,Bottom
TXTAddLine,%ScriptDir%\VMWare\LSP.vmx,pciBridge4.functions = #$q8#$q,Bottom
TXTAddLine,%ScriptDir%\VMWare\LSP.vmx,pciBridge4.pciSlotNumber = #$q21#$q,Bottom
TXTAddLine,%ScriptDir%\VMWare\LSP.vmx,pciBridge4.present = #$qTRUE#$q,Bottom
TXTAddLine,%ScriptDir%\VMWare\LSP.vmx,pciBridge4.virtualDev = #$qpcieRootPort#$q,Bottom
//TXTAddLine,%ScriptDir%\VMWare\LSP.vmx,pciBridge5.functions = #$q8#$q,Bottom
//TXTAddLine,%ScriptDir%\VMWare\LSP.vmx,pciBridge5.pciSlotNumber = #$q22#$q,Bottom
//TXTAddLine,%ScriptDir%\VMWare\LSP.vmx,pciBridge5.present = #$qTRUE#$q,Bottom
//TXTAddLine,%ScriptDir%\VMWare\LSP.vmx,pciBridge5.virtualDev = #$qpcieRootPort#$q,Bottom
//TXTAddLine,%ScriptDir%\VMWare\LSP.vmx,pciBridge6.functions = #$q8#$q,Bottom
//TXTAddLine,%ScriptDir%\VMWare\LSP.vmx,pciBridge6.pciSlotNumber = #$q23#$q,Bottom
//TXTAddLine,%ScriptDir%\VMWare\LSP.vmx,pciBridge6.present = #$qTRUE#$q,Bottom
//TXTAddLine,%ScriptDir%\VMWare\LSP.vmx,pciBridge6.virtualDev = #$qpcieRootPort#$q,Bottom
//TXTAddLine,%ScriptDir%\VMWare\LSP.vmx,pciBridge7.functions = #$q8#$q,Bottom
//TXTAddLine,%ScriptDir%\VMWare\LSP.vmx,pciBridge7.pciSlotNumber = #$q24#$q,Bottom
//TXTAddLine,%ScriptDir%\VMWare\LSP.vmx,pciBridge7.present = #$qTRUE#$q,Bottom
//TXTAddLine,%ScriptDir%\VMWare\LSP.vmx,pciBridge7.virtualDev = #$qpcieRootPort#$q,Bottom


//----SPEICHERBEDARF
//++++++++++++++++++
Set,%RamNeed%,1276
Set,%RamList%,WinXP=512|Win2003=256|WinVista=768|Win7=768|Win8=1024|Win81=1024|Win10=1024

String,%cnt%,SPLIT,%RamList%,|,0
For,%x%,1,%cnt%
	String,%tmp%,SPLIT,%RamList%,|,%x%
	String,%OS_Lst%,SPLIT,%tmp%,=,1
	If,%OS%,=,%OS_Lst%,then
		String,%RamNeed%,SPLIT,%tmp%,=,2
		ExitLoop
	End
Next
Math,%RamNeed%,%RamNeed%+256+%VMRam%

For,%x%,1,5
	System,FreeRam,%FreeRam%
	math,%FreeRam%,(%FreeRam%/1048576),Round_Down
	math,%DifRam%,%FreeRam%-%RamNeed%
	if,%DifRam%,>,5,then,exitloop
	wait,200
next

if,%DifRam%,<,-260,then,message,%tmsg_8%,Confirmation

If,%pScrollBox1%,<,%RamNeed%,Then
	Message,%tQuestion%:#$x#$x%tMsg_5%,Question
	If,%ExitCode%,=,No,Then,Halt,#$s%tHalt_1%
	Set,%pScrollBox1%,%RamNeed%
End
TXTAddLine,%ScriptDir%\VMWare\LSP.vmx,memsize = #$q%pScrollBox1%#$q,Bottom
TXTAddLine,%ScriptDir%\VMWare\LSP.vmx,mem.hotadd = #$qTRUE#$q,Bottom

// Boot-Verzögerung
TxtAddLine,%ScriptDir%\VMWare\LSP.vmx,bios.bootdelay=#$q3000#$q,Bottom



Echo,%tMsg_6%
Start,show,%VM_Path%,#$q%ScriptDir%\VMWare\LSP.vmx#$q
Wait,2000

[all]
System,ProcessMode
Update,InterfaceVar

if,ExistFile,%ProjectDir%\Finish\0-PostConfig.srt,Then
	System,SwitchScript,%ProjectDir%\Finish\0-PostConfig.srt
	Run,%ProjectDir%\Finish\0-PostConfig.srt,Process
	System,SwitchScript,Back
End

System,SwitchScript,%ProjectDir%\Finish\1-create_iso.srt
Run,%ProjectDir%\Finish\1-create_iso.srt,Process
System,SwitchScript,Back

Set,%BuildMode%,0
Run,%ScriptFile%,Process


[Script-Pic]
0=4955,6412,ZLB64
1=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
2=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
3=Wq7C2vCzWB2va4XJQLewTbzoPHX1SSNUO8vcPXeomQ9WjCwidCu0WX/arch4MSAZUncq7/ZaySOXxAmFpIePE8rs17UpNrm9z+qvVs/kV1OEpagG1A+iX8MeoLa4s8eXT25SXFAfzMzpk1VVqydzJ5CTdCo53xQ3eJ6rP1EGSbOcO7Jk5u4+V6n9McOjoyv4SeE8NPWsADmV8qCJSu6keDrU5AfQ46b75VSUw74PLyvotw6qIfRtMDa6qGqHRvonL+HZ3hv1RPNPKUo2dNvnJcMzv14tsaBQlo5JqdmBueON8Rsx14Fnu2H6cGQS8nnJp2zNvndqPr3LGmHhhaUFnuumd4+XHT3rLlELQVBpWaOcLr8Q1zxMc0HUvXyoTnFPSLJyL9E15EowCarrLVZEU4flb/mJySmpaJVi3bBWyypOxE7eLKSTfeZcO0GeqViDOSM/Pp0XngGrQ4j03AUTW9HHsLWNZw1rGNQFIwet53URo0/JyIoDfx556Yf6qXkxw/fvVU7/vDx67aklZ5GbEt7/2dN6tOKkYe2Oyo7Cxbi/elMM7FP+Mu3SxssPe8vxRQvGLYpkwOzvWp/dRz6ZYgPUBiqrzazAMQXO0+aYqfwmA9kxnKmAog7eDXItDL830zB13VRjqt5YptratkVjcogNaJvFuU21UNBqpO+uPa3XxYJmsPjylAzbq4Mi3wKvReiUpwq9HJ/rqrtuKFmqudclY2VI6FSkBfkwyS9ao4lcVuTEABKpKcmx1UJMY/RbQ+VjZtKHfSGq/WZU7If+OkQR5ZFM/Q3+YYvJzitjzqvSZ7iPxpOL3GwjQ1EhMxKnB782G78Km1ThQB1bdk7Xc6HDSH7X1MzHh5XhthxgwnGj2UkpNRAJHAChRMyhVcqc2vVTX7cqOeIDEW4Y8mAJV3jvLfuA7pHySPCXsP1zq7TvXeXhwQqPEbWrIrkiaRSbQZiUc89L8ZBWxG2RPmnpwiyEAI7r8d1E+USmT02Na6Z2qiDR9hhUq/jVQ4qqOdefiP1F1+qLY7XFdbnlPfPqo/PlOMeWngJpvNNWmZP3lcrloncBwfYQuUjzwYs1jC63nS4m5VEUyhuglV+/dVTUtrZHIC0urCNp83fS7K2gJWrRn8gS+SBXnY34pUn9RdxvtbqQcNiMorO3IFxvIoAmZwBvbYVSg7XwpyenTCfP9WXBwReJ3djCMXUK/B2emLUqpwgWwMfV+XfwiafjxBgpYgqiEOfo7bg3PXC6P1XpcxH2uUpcXWrvtR23H25Ic+bKrihsDYkDYXBZKM9w4nWXTqLHkIU30aWwo9Y1yTboxBy64lP2MWr50ukwYb6gR8neHtgcqFDZBZINDZpBNuglCRG5mQ4xxyxxNiYn4+3bsPHC+WiEaRs9jgfsrAjNm+2NRX4SLBxKzlaVqYkgaCQ5MqJPbTq21muuFqREYogjZojCbs60S3MioDNvLgx9WbNAo4hzFThYWRrIAmchsiD7/lLbwf5jkr90ViVo7HdRsplpgm4ulTu7YLm+IHPWmisjg6Rko2lHy5SRGHI/Wwh/MgUDpepdcFL8fLwhOKG5SO5rdbW7E/40WDMkdKTdYYzEHvgXZqOReg==
