// this script was compiled with wurst 1.8.1.0-jenkins-Wurst-1367
globals
// integer JASS_MAX_ARRAY_SIZE=0
// integer PLAYER_NEUTRAL_PASSIVE=0
// attacktype ATTACK_TYPE_NORMAL=null
// mapcontrol MAP_CONTROL_USER=null
// playerslotstate PLAYER_SLOT_STATE_PLAYING=null
// playerevent EVENT_PLAYER_LEAVE=null
// playerevent EVENT_PLAYER_END_CINEMATIC=null
// playerunitevent EVENT_PLAYER_UNIT_ISSUED_ORDER=null
// playerunitevent EVENT_PLAYER_UNIT_ISSUED_POINT_ORDER=null
// playerunitevent EVENT_PLAYER_UNIT_ISSUED_TARGET_ORDER=null
// playerunitevent EVENT_PLAYER_UNIT_DAMAGED=null
// playerunitevent EVENT_PLAYER_UNIT_DAMAGING=null
// unitevent EVENT_UNIT_DAMAGED=null
// playerevent EVENT_PLAYER_ARROW_LEFT_DOWN=null
// playerevent EVENT_PLAYER_ARROW_LEFT_UP=null
// playerevent EVENT_PLAYER_ARROW_RIGHT_DOWN=null
// playerevent EVENT_PLAYER_ARROW_RIGHT_UP=null
// playerevent EVENT_PLAYER_ARROW_DOWN_DOWN=null
// playerevent EVENT_PLAYER_ARROW_DOWN_UP=null
// playerevent EVENT_PLAYER_ARROW_UP_DOWN=null
// playerevent EVENT_PLAYER_ARROW_UP_UP=null
// playerevent EVENT_PLAYER_MOUSE_DOWN=null
// playerevent EVENT_PLAYER_MOUSE_UP=null
// playerevent EVENT_PLAYER_MOUSE_MOVE=null
// playerunitevent EVENT_PLAYER_UNIT_SPELL_EFFECT=null
// blendmode BLEND_MODE_BLEND=null
// texmapflags TEXMAP_FLAG_NONE=null
// originframetype ORIGIN_FRAME_GAME_UI=null
// integer bj_MAX_PLAYERS=0
// integer bj_MAX_PLAYER_SLOTS=0
// rect bj_mapInitialPlayableArea=null
string array Base64_CHARMAP
integer array Base64_REVERSE_CHARMAP
player Basics_DUMMY_PLAYER=null
integer array BitSet_pows
integer array BitwiseInit_powShift
playerevent ClosureEvents_EVENT_PLAYER_CHAT_FILTER=null
trigger ClosureEvents_unitTrig=null
trigger ClosureEvents_leaveTrig=null
trigger ClosureEvents_keyTrig=null
integer array ClosureEvents_eventidToIndex
integer ClosureEvents_eventTypeCounter=0
integer EventListener_castMap=0
integer array EventListener_castMapCasters
integer array EventListener_generalListenersFirsts
integer array EventListener_unitListenersFirsts
boolean EventListener_useMouseEvents=false
integer array ClosureForGroups_tempCallbacks
integer ClosureForGroups_iterCount=0
integer ClosureFrames_FRAME_MAP=0
integer ClosureKeyPresses_KEY_MAP=0
integer ClosureTimers_x=0
string array Colors_hexs
integer Colors_decs=0
boolexpr array DamageDetection_func
trigger DamageDetection_current=null
trigger DamageDetection_toDestroy=null
filterfunc DamageDetection_filter=null
integer DamageEvent_DAMAGE_ELEMENT_ATTACK=0
integer DamageEvent_nextDamageId=0
integer DamageEvent_nextDamageType=0
integer DamageEvent_nextDamageElement=0
boolean DamageEvent_abort=false
integer array DamageEvent_firstListeners
integer array DamageEvent_firstUnreducedListeners
integer DamageInstance_current=0
integer array DamageInstance_stack
integer DamageInstance_count=0
real DummyRecycler_ANGLE_DEGREE=0.
integer array DummyRecycler_angleQueues
hashtable ErrorHandling_HT=null
string ErrorHandling_lastError=null
boolean ErrorHandling_suppressErrorMessages=false
force Execute_executeForce=null
boolean array Execute_tempCallbacksSuccess
integer array Execute_tempCallbacks
integer Execute_tempCallbacksCount=0
string FileIO_FILE_IO_ABIL_ID_STR=null
integer ForceTests_testInt=0
framehandle Framehandle_GAME_UI=null
integer GameStatus_gameStatus=0
real GameTimer_currentTime=0.
integer GroupUtils_used=0
group array GroupUtils_stack
integer GroupUtils_numStack=0
integer GroupUtils_numTotal=0
boolean GroupUtils_shownMaxError=false
group Group_ENUM_GROUP=null
hashtable HashList_ht=null
hashtable HashList_occurences=null
hashtable HashSet_position=null
integer array LastOrder_lastOrder
boolean MagicFunctions_compiletime=false
rect MapBounds_playableMapRect=null
rect MapBounds_boundRect=null
region MapBounds_boundRegion=null
real MapBounds_playableMin_x=0.
real MapBounds_playableMin_y=0.
real MapBounds_boundMin_x=0.
real MapBounds_boundMin_y=0.
real MapBounds_boundMax_x=0.
real MapBounds_boundMax_y=0.
trigger OnUnitEnterLeave_eventTrigger=null
group OnUnitEnterLeave_preplacedUnits=null
unit array OnUnitEnterLeave_tempUnits
integer OnUnitEnterLeave_tempUnitsCount=0
player array Player_players
player Player_localPlayer=null
group Preloader_dumg=null
unit Preloader_dum=null
trigger array RegisterEvents_t
integer RegisterEvents_onCastMap=0
string array StringUtils_c2s
integer array StringUtils_s2c
integer StringUtils_MAX_INDEX=0
integer SyncSimple_syncQueue=0
hashtable Table_ht=null
timer array TimerUtils_freeTimers
integer TimerUtils_freeTimersCount=0
integer TimerUtils_timerData=0
integer TypeCasting_typecastdata=0
trigger UnitIndexer_onIndexTrigger=null
trigger UnitIndexer_onDeindexTrigger=null
unit array UnitIndexer_tempUnits
integer UnitIndexer_tempUnitsCount=0
hashtable hashtable_compiletime=null
hashtable hashtable_compiletime_318=null
hashtable hashtable_compiletime_319=null
hashtable hashtable_compiletime_320=null
hashtable hashtable_compiletime_321=null
integer array Base64Decoder_typeId
integer array ForForceCallback_nextFree
integer ForForceCallback_firstFree=0
integer ForForceCallback_maxIndex=0
integer array ForForceCallback_typeId
integer array Base64Encoder_typeId
integer array ByteBuffer_typeId
integer array ChunkedString_nextFree
integer ChunkedString_firstFree=0
integer ChunkedString_maxIndex=0
integer array ChunkedString_typeId
integer array CineSeq_typeId
integer array Cinematic_typeId
integer array CallbackSingle_nextFree
integer CallbackSingle_firstFree=0
integer CallbackSingle_maxIndex=0
integer array CallbackSingle_typeId
integer array EventListener_nextFree
integer EventListener_firstFree=0
integer EventListener_maxIndex=0
integer array EventListener_typeId
integer OnCastListener_firstFree=0
integer array OnCastListener_typeId
integer array ForGroupCallback_nextFree
integer ForGroupCallback_firstFree=0
integer ForGroupCallback_maxIndex=0
integer array ForGroupCallback_typeId
integer Callback_firstFree=0
integer array Callback_typeId
integer array DamageElement_nextFree
integer DamageElement_firstFree=0
integer DamageElement_maxIndex=0
integer array DamageInstance_nextFree
integer DamageInstance_firstFree=0
integer DamageInstance_maxIndex=0
integer array DamageInstance_typeId
integer DummyCaster_firstFree=0
integer array DummyCaster_typeId
integer array File_nextFree
integer File_firstFree=0
integer File_maxIndex=0
integer array File_typeId
integer HashList_firstFree=0
integer array HashList_typeId
integer array Table_nextFree
integer Table_firstFree=0
integer Table_maxIndex=0
integer array Table_typeId
integer TerrainZProvider_firstFree=0
integer TerrainZProvider_maxIndex=0
integer WallHitTransform_firstFree=0
integer WallHitTransform_maxIndex=0
integer UnitFilter_firstFree=0
integer UnitFilter_maxIndex=0
integer array BackIterator_nextFree
integer BackIterator_firstFree=0
integer BackIterator_maxIndex=0
integer array Iterator_nextFree
integer Iterator_firstFree=0
integer Iterator_maxIndex=0
integer array Order_nextFree
integer Order_firstFree=0
integer Order_maxIndex=0
integer array Order_typeId
integer array BackIterator_nextFree_7
integer BackIterator_firstFree_3=0
integer BackIterator_maxIndex_5=0
integer array Iterator_nextFree_184
integer Iterator_firstFree_180=0
integer Iterator_maxIndex_182=0
integer Comparator_firstFree=0
integer Comparator_maxIndex=0
integer array LLEntry_nextFree
integer LLEntry_firstFree=0
integer LLEntry_maxIndex=0
integer array LLEntry_typeId
integer array LinkedList_nextFree
integer LinkedList_firstFree=0
integer LinkedList_maxIndex=0
integer array LinkedList_typeId
integer array IdGenerator_nextFree
integer IdGenerator_firstFree=0
integer IdGenerator_maxIndex=0
integer OrderStringFactory_firstFree=0
integer OrderStringFactory_maxIndex=0
integer BufferSyncListener_firstFree=0
integer array BufferSyncListener_typeId
integer Sim3DSound_firstFree=0
integer array Sim3DSound_typeId
integer array SoundDefinition_typeId
integer SoundInstance_firstFree=0
integer array SoundInstance_typeId
integer array StringIterator_nextFree
integer StringIterator_firstFree=0
integer StringIterator_maxIndex=0
integer array StringIterator_typeId
integer StringSyncListener_firstFree=0
integer array StringSyncListener_typeId
integer BoolSyncListener_firstFree=0
integer array BoolSyncListener_typeId
integer IntSyncListener_firstFree=0
integer array IntSyncListener_typeId
integer RealSyncListener_firstFree=0
integer array RealSyncListener_typeId
integer SyncData_firstFree=0
integer array SyncData_typeId
integer array UnitIndex_nextFree
integer UnitIndex_firstFree=0
integer UnitIndex_maxIndex=0
integer array UnitIndex_typeId
integer array Base64Decoder_byteBuffer
string array Base64Decoder_buffer
integer array Base64Decoder_bufferLength
integer array data_309
integer array this_459
integer array Base64Encoder_chunkedString
string array Base64Encoder_stringBuffer
integer array Base64Encoder_chars
integer array Base64Encoder_buffer
integer array Base64Encoder_bytes
integer array data
integer array this_458
integer array ByteBuffer_storage
integer array ByteBuffer_intCount
integer array ByteBuffer_buffer
integer array ByteBuffer_bufferLength
integer array ByteBuffer_readBuffer
integer array ByteBuffer_readBufferIndex
integer array ByteBuffer_readIndex
integer array ChunkedString_table
integer array ChunkedString_chunkSize
integer array ChunkedString_chunkCount
integer array ChunkedString_readIndex
string array ChunkedString_buffer
boolean array Cinematic_running
integer array this_460
integer array sequence
integer array ending
real array duration_seconds
real array duration_seconds_314
camerasetup array setup
real array pos_x
real array pos_y
real array duration_seconds_315
integer array EventListener_eventId
integer array EventListener_uid
integer array EventListener_next
integer array EventListener_prev
integer array OnCastListener_next
integer array OnCastListener_prev
integer array OnCastListener_abilId
unit array OnCastListener_eventUnit
integer array FrameHandleListener_next
integer array KeyPressListener_next
integer array cb
timerdialog array dia
timer array CallbackSingle_t
real array DamageInstance_amount
attacktype array DamageInstance_nativeAttackType
damagetype array DamageInstance_nativeDamageType
weapontype array DamageInstance_nativeWeaponType
integer array DamageListener_next
integer array DummyCaster_castCount
integer array this
unit array dummy
integer array id
unit array u
effect array this_461
effect array this_462
string array File_filename
integer array createNow
integer array HashList_size
integer array HashMap_size
integer array IterableMap_keys
boolean array IterableMap__destroyed
integer array Order_prev
unit array Order_orderedUnit
integer array result
integer array LLEntry_elem
integer array LLEntry_prev
integer array LLEntry_next
integer array LinkedList_dummy
integer array LinkedList_size
integer array SoundDefinition_soundStack
integer array SoundDefinition_duration
integer array this_463
integer array snd
integer array this_464
integer array snd_455
integer array this_465
integer array snd_456
integer array this_466
integer array instance
real array SoundInstance_pos_x
real array SoundInstance_pos_y
real array SoundInstance_pos_z
sound array SoundInstance_snd
integer array SoundInstance_soundDef
unit array SoundInstance_onUnit
player array SoundInstance_p
integer array SoundInstance_s3s
string array StringIterator_s
integer array StringIterator_currentpos
integer array StringIterator_stringLen
integer array listener
integer array listener_325
integer array listener_326
integer array SyncData_slistener
integer array SyncData_blistener
player array SyncData_syncer
string array SyncData_data
integer array SyncData_buffer
integer array SyncData_syncBuffer
unit array UnitIndex__unit
integer wurst_stack_depth=0
string array wurst_stack
integer char_return_c=0
real dispatch_CineSeq_Cinematic_CineSeq_apply_return_seconds=0.
code ref_function_init_Abilities=null
code ref_function_init_AbilityIds=null
code ref_function_init_Real=null
code ref_function_init_Integer=null
code ref_function_init_BitSet=null
code ref_function_init_String=null
code ref_function_init_TargetsAllowed=null
code ref_function_init_Angle=null
code ref_function_init_Vectors=null
code ref_function_init_Destructable=null
code ref_function_init_Player=null
code ref_function_init_Maths=null
code ref_function_init_Printing=null
code ref_function_init_MagicFunctions=null
code ref_function_init_Basics=null
code ref_function_init_GameTimer=null
code ref_function_init_ErrorHandling=null
code ref_function_init_Matrices=null
code ref_function_init_Quaternion=null
code ref_function_init_Table=null
code ref_function_init_Playercolor=null
code ref_function_bridge_init_Colors=null
code ref_function_bridge_init_Framehandle=null
code ref_function_init_Group=null
code ref_function_init_Lightning=null
code ref_function_init_WeatherEffects=null
code ref_function_bridge_init_TypeCasting=null
code ref_function_init_HashList=null
code ref_function_bridge_init_EventHelper=null
code ref_function_init_AbilityObjEditing=null
code ref_function_init_AttachmentPoints=null
code ref_function_init_BitwiseInit=null
code ref_function_init_ClosureForGroups=null
code ref_function_bridge_init_LinkedList=null
code ref_function_bridge_init_StringUtils=null
code ref_function_init_SafetyChecks=null
code ref_function_init_ChunkedString=null
code ref_function_init_Execute=null
code ref_function_init_Base64=null
code ref_function_init_Base64Tests=null
code ref_function_init_BigNum=null
code ref_function_init_BuffIds=null
code ref_function_init_Buildings=null
code ref_function_init_ObjectIds=null
code ref_function_bridge_init_TimerUtils=null
code ref_function_init_ClosureTimers=null
code ref_function_init_UnitIds=null
code ref_function_init_MapBounds=null
code ref_function_bridge_init_Preloader=null
code ref_function_bridge_init_ObjectIdGenerator=null
code ref_function_init_Icons=null
code ref_function_bridge_init_ChannelAbilityPreset=null
code ref_function_bridge_init_RegisterEvents=null
code ref_function_init_Orders=null
code ref_function_bridge_init_OnUnitEnterLeave=null
code ref_function_init_UnitIndexer=null
code ref_function_bridge_init_ClosureEvents=null
code ref_function_bridge_init_ClosureFrames=null
code ref_function_bridge_init_ClosureKeyPresses=null
code ref_function_init_DamageDetection=null
code ref_function_bridge_init_DamageEvent=null
code ref_function_bridge_init_DialogBox=null
code ref_function_init_Doodads=null
code ref_function_bridge_init_DummyRecycler=null
code ref_function_bridge_init_FileIO=null
code ref_function_init_ForceTests=null
code ref_function_init_FramehandleNames=null
code ref_function_init_GameStatus=null
code ref_function_bridge_init_GroupUtils=null
code ref_function_init_HashListTests=null
code ref_function_init_HashSet=null
code ref_function_init_InstantDummyCaster=null
code ref_function_init_ItemIds=null
code ref_function_init_TerrainUtils=null
code ref_function_init_Objects=null
code ref_function_bridge_init_Knockback3=null
code ref_function_init_LastOrder=null
code ref_function_bridge_init_LinkedListModuleTests=null
code ref_function_init_PathingMaps=null
code ref_function_init_Raycast=null
code ref_function_bridge_init_SyncSimple=null
code ref_function_init_SaveLoadData=null
code ref_function_init_Serializable=null
code ref_function_init_Simulate3dSound=null
code ref_function_init_Sounds=null
code ref_function_init_SoundUtils=null
code ref_function_init_Soundsets=null
code ref_function_init_StandardTextTags=null
code ref_function_init_Textures=null
code ref_function_init_Tiles=null
code ref_function_init_UI=null
code ref_function_init_UnitAnimations=null
code ref_function_init_Units=null
code ref_function_init_UpgradeObjEditing=null
code ref_function_code__onUnitIndex_ClosureEvents=null
code ref_function_bridge_code__onUnitDeindex_ClosureEvents=null
code ref_function_bridge_EventListener_generalEventCallback=null
code ref_function_bridge_code__Filter_ClosureForGroups=null
code ref_function_bridge_onEvent=null
code ref_function_bridge_onEvent_370=null
code ref_function_code__Filter_DamageDetection=null
code ref_function_code__onEnter_DamageDetection=null
code ref_function_swap=null
code ref_function_bridge_executeCurrentCallback=null
code ref_function_code__startPeriodic_GameTimer=null
code ref_function_bridge_actions=null
code ref_function_bridge_actions_331=null
code ref_function_bridge_actions_332=null
code ref_function_spellActions=null
code ref_function_bridge_code__onUnitDeindex_LastOrder=null
code ref_function_bridge_code__addAction_SyncSimple=null
code ref_function_bridge_code__onEnter_UnitIndexer=null
code ref_function_bridge_code__onLeave_UnitIndexer=null
code ref_function_bridge_code__addAction_nullTimer_ClosureEvents=null
code ref_function_bridge_code__addAction_nullTimer_ClosureEvents_336=null
code ref_function_bridge_code__addAction_nullTimer_ClosureEvents_337=null
code ref_function_bridge_code__registerPlayerUnitEvent_nullTimer_ClosureEvents=null
code ref_function_bridge_code__start_CallbackSingle_ClosureTimers=null
code ref_function_code__Filter_registerEnterRegion_nullTimer_OnUnitEnterLeave=null
code ref_function_code__registerPlayerUnitEvent_nullTimer_OnUnitEnterLeave=null
code ref_function_code__ForGroup_nullTimer_OnUnitEnterLeave=null
code ref_function_bridge_code__registerPlayerUnitEvent_RegisterEvents=null
endglobals
function Loglevel_getTag takes integer this_1 returns string
	if this_1 == 0 then
		return "|cffADADADtrace|r"
	elseif this_1 == 1 then
		return "|cff2685DCdebug|r"
	elseif this_1 == 2 then
		return "|cffFFCC00info|r"
	elseif this_1 == 3 then
		return "|cffF47E3Ewarning|r"
	else
		return "|cffFB2700error|r"
	endif
endfunction

function compileError takes string msg returns nothing
endfunction

function error takes string msg, string w__wurst_stackPos returns nothing
	local integer hash
	local integer stacktraceIndex
	local integer stacktraceLimit
	local string stacktraceStr
	local player showTo
	set wurst_stack[wurst_stack_depth] = w__wurst_stackPos
	set wurst_stack_depth = wurst_stack_depth + 1
	if MagicFunctions_compiletime then
		call compileError("ERROR: " + msg)
	else
		if  not ErrorHandling_suppressErrorMessages then
			set hash = StringHash(msg)
			if HaveSavedInteger(ErrorHandling_HT, -1, hash) then
				if LoadInteger(ErrorHandling_HT, -1, hash) + 60 < GameTimer_currentTime then
					set w__wurst_stackPos = msg
					set stacktraceStr = ""
					set stacktraceIndex = wurst_stack_depth
					set stacktraceLimit = 0
					loop
						set stacktraceIndex = stacktraceIndex - 1
						set stacktraceLimit = stacktraceLimit + 1
						exitwhen stacktraceLimit > 20 or stacktraceIndex < 0
						set stacktraceStr = stacktraceStr + "\n   " + wurst_stack[stacktraceIndex]
					endloop
					set w__wurst_stackPos = w__wurst_stackPos + stacktraceStr
					set showTo = Player_localPlayer
					if 2 <= 4 then
						call DisplayTimedTextToPlayer(showTo, 0., 0., 45., Loglevel_getTag(4) + " - " + w__wurst_stackPos)
					endif
					call SaveInteger(ErrorHandling_HT, -1, hash, R2I(GameTimer_currentTime))
					call SaveBoolean(ErrorHandling_HT, -1, hash, false)
				elseif HaveSavedBoolean(ErrorHandling_HT, -1, hash) then
					if  not LoadBoolean(ErrorHandling_HT, -1, hash) then
						set showTo = Player_localPlayer
						if 2 <= 4 then
							call DisplayTimedTextToPlayer(showTo, 0., 0., 45., Loglevel_getTag(4) + " - " + "|cffFF3A29Excessive repeating errors are being omitted")
						endif
						call SaveBoolean(ErrorHandling_HT, -1, hash, true)
					endif
				else
					set showTo = Player_localPlayer
					if 2 <= 4 then
						call DisplayTimedTextToPlayer(showTo, 0., 0., 45., Loglevel_getTag(4) + " - " + "|cffFF3A29Excessive repeating errors are being omitted")
					endif
					call SaveBoolean(ErrorHandling_HT, -1, hash, true)
				endif
			else
				call SaveInteger(ErrorHandling_HT, -1, hash, R2I(GameTimer_currentTime))
				set w__wurst_stackPos = "Message: " + msg
				set stacktraceStr = ""
				set stacktraceIndex = wurst_stack_depth
				set hash = 0
				loop
					set stacktraceIndex = stacktraceIndex - 1
					set hash = hash + 1
					exitwhen hash > 20 or stacktraceIndex < 0
					set stacktraceStr = stacktraceStr + "\n   " + wurst_stack[stacktraceIndex]
				endloop
				set w__wurst_stackPos = w__wurst_stackPos + stacktraceStr
				set showTo = Player_localPlayer
				if 2 <= 4 then
					call DisplayTimedTextToPlayer(showTo, 0., 0., 45., Loglevel_getTag(4) + " - " + w__wurst_stackPos)
				endif
			endif
		endif
		set ErrorHandling_lastError = msg
		call I2S(1 / 0)
	endif
	set wurst_stack_depth = wurst_stack_depth - 1
endfunction

function initCompiletimeState_0 takes nothing returns nothing
	set hashtable_compiletime_321 = InitHashtable()
	set hashtable_compiletime_320 = InitHashtable()
	set hashtable_compiletime_319 = InitHashtable()
	set hashtable_compiletime_318 = InitHashtable()
	set hashtable_compiletime = InitHashtable()
	call SaveInteger(hashtable_compiletime_320, 1, -242600650, 0)
	call SaveInteger(hashtable_compiletime_320, 1, 1132341824, 1)
	call SaveInteger(hashtable_compiletime_320, 1, -647782241, 2)
	call SaveInteger(hashtable_compiletime_320, 1, -854572045, 3)
	call SaveInteger(hashtable_compiletime_320, 1, -680649701, 4)
	call SaveInteger(hashtable_compiletime_320, 1, -943650483, 5)
	call SaveInteger(hashtable_compiletime_320, 1, -671760605, 6)
	call SaveInteger(hashtable_compiletime_320, 1, 349230650, 7)
	call SaveInteger(hashtable_compiletime_320, 1, -1894922563, 8)
	call SaveInteger(hashtable_compiletime_320, 1, -1474492777, 9)
	call SaveInteger(hashtable_compiletime_320, 1, -1587459251, 10)
	call SaveInteger(hashtable_compiletime_320, 1, -1676716706, 11)
	call SaveInteger(hashtable_compiletime_320, 1, -1559655710, 12)
	call SaveInteger(hashtable_compiletime_320, 1, -1663695754, 13)
	call SaveInteger(hashtable_compiletime_320, 1, 597637742, 14)
	call SaveInteger(hashtable_compiletime_320, 1, 789744696, 15)
	call SaveStr(hashtable_compiletime_320, 2, 0, "")
	call SaveStr(hashtable_compiletime_320, 2, 1804483594, "air")
	call SaveStr(hashtable_compiletime_320, 2, -1221441622, "debris")
	call SaveStr(hashtable_compiletime_320, 2, -681966791, "ground")
	call SaveStr(hashtable_compiletime_320, 2, -1912775212, "invulnerable")
	call SaveStr(hashtable_compiletime_320, 2, 392811314, "item")
	call SaveStr(hashtable_compiletime_320, 2, 124309475, "structure")
	call SaveStr(hashtable_compiletime_320, 2, -543400682, "vulnerable")
	call SaveStr(hashtable_compiletime_320, 2, -85648186, "ward")
	call SaveStr(hashtable_compiletime_320, 2, -612826229, "Avul")
	call SaveStr(hashtable_compiletime_320, 2, 1282521876, "Aloc")
	call SaveStr(hashtable_compiletime_320, 2, -844489484, "AM02")
	call SaveStr(hashtable_compiletime_320, 2, 512215473, "Agho")
	call SaveInteger(hashtable_compiletime_320, 58, 0, 0)
	call SaveInteger(hashtable_compiletime_320, 58, 1, 0)
	call SaveInteger(hashtable_compiletime_320, 58, 2, 0)
	call SaveInteger(hashtable_compiletime_320, 58, 3, 0)
	call SaveInteger(hashtable_compiletime_320, 58, 4, 0)
	call SaveInteger(hashtable_compiletime_320, 58, 5, 0)
	call SaveInteger(hashtable_compiletime_320, 58, 6, 0)
	call SaveInteger(hashtable_compiletime_320, 58, 7, 0)
	call SaveInteger(hashtable_compiletime_320, 58, 8, 0)
	call SaveInteger(hashtable_compiletime_320, 58, 9, 0)
	call SaveInteger(hashtable_compiletime_320, 58, 10, 0)
	call SaveInteger(hashtable_compiletime_320, 58, 11, 0)
	call SaveInteger(hashtable_compiletime_320, 58, 12, 0)
	call SaveInteger(hashtable_compiletime_320, 58, 13, 0)
	call SaveInteger(hashtable_compiletime_320, 58, 14, 0)
	call SaveInteger(hashtable_compiletime_320, 58, 15, 0)
	call SaveInteger(hashtable_compiletime_320, 58, 16, 0)
	call SaveInteger(hashtable_compiletime_320, 58, 17, 0)
	call SaveInteger(hashtable_compiletime_320, 58, 18, 0)
	call SaveInteger(hashtable_compiletime_320, 58, 19, 0)
	call SaveInteger(hashtable_compiletime_320, 58, 20, 0)
	call SaveInteger(hashtable_compiletime_320, 58, 21, 0)
	call SaveInteger(hashtable_compiletime_320, 58, 22, 0)
	call SaveInteger(hashtable_compiletime_320, 58, 23, 0)
	call SaveInteger(hashtable_compiletime_320, 58, 24, 0)
	call SaveInteger(hashtable_compiletime_320, 58, 25, 0)
	call SaveInteger(hashtable_compiletime_320, 58, 26, 0)
	call SaveInteger(hashtable_compiletime_320, 58, 27, 0)
	call SaveInteger(hashtable_compiletime_320, 58, 28, 0)
	call SaveInteger(hashtable_compiletime_320, 58, 29, 0)
	call SaveInteger(hashtable_compiletime_320, 58, 30, 0)
	call SaveInteger(hashtable_compiletime_320, 58, 31, 0)
	call SaveInteger(hashtable_compiletime_320, 58, 32, 0)
	call SaveInteger(hashtable_compiletime_320, 58, 33, 0)
	call SaveInteger(hashtable_compiletime_320, 58, 34, 0)
	call SaveInteger(hashtable_compiletime_320, 58, 35, 0)
	call SaveInteger(hashtable_compiletime_320, 58, 36, 0)
	call SaveInteger(hashtable_compiletime_320, 58, 37, 0)
	call SaveInteger(hashtable_compiletime_320, 58, 38, 0)
	call SaveInteger(hashtable_compiletime_320, 58, 39, 0)
	call SaveInteger(hashtable_compiletime_320, 58, 40, 0)
	call SaveInteger(hashtable_compiletime_320, 58, 41, 0)
	call SaveInteger(hashtable_compiletime_320, 58, 42, 0)
	call SaveInteger(hashtable_compiletime_320, 58, 43, 0)
	call SaveInteger(hashtable_compiletime_320, 58, 44, 0)
	call SaveInteger(hashtable_compiletime_320, 58, 45, 0)
	call SaveInteger(hashtable_compiletime_320, 58, 46, 0)
	call SaveInteger(hashtable_compiletime_320, 58, 47, 0)
	call SaveInteger(hashtable_compiletime_320, 58, 48, 0)
	call SaveInteger(hashtable_compiletime_320, 58, 49, 0)
	call SaveInteger(hashtable_compiletime_320, 58, 50, 0)
	call SaveInteger(hashtable_compiletime_320, 58, 51, 0)
	call SaveInteger(hashtable_compiletime_320, 58, 52, 0)
	call SaveInteger(hashtable_compiletime_320, 58, 53, 0)
	call SaveInteger(hashtable_compiletime_320, 58, 54, 0)
	call SaveInteger(hashtable_compiletime_320, 58, 55, 0)
	call SaveInteger(hashtable_compiletime_320, 58, 56, 0)
	call SaveInteger(hashtable_compiletime_320, 58, 57, 0)
	call SaveInteger(hashtable_compiletime_320, 58, 58, 0)
	call SaveInteger(hashtable_compiletime_320, 58, 59, 0)
	call SaveInteger(hashtable_compiletime_320, 58, 60, 0)
	call SaveInteger(hashtable_compiletime_320, 58, 61, 0)
	call SaveInteger(hashtable_compiletime_320, 58, 62, 0)
	call SaveInteger(hashtable_compiletime_320, 58, 63, 0)
endfunction

function dispatch_DamageInstance_destroyDamageInstance takes integer this_1, string w__wurst_stackPos returns nothing
	set wurst_stack[wurst_stack_depth] = w__wurst_stackPos
	set wurst_stack_depth = wurst_stack_depth + 1
	if DamageInstance_typeId[this_1] == 0 then
		if this_1 == 0 then
			call error("Nullpointer exception when calling DamageInstance.DamageInstance", "when calling error in DamageEvent, line 114")
		else
			call error("Called DamageInstance.DamageInstance on invalid object.", "when calling error in DamageEvent, line 114")
		endif
	endif
	set wurst_stack[wurst_stack_depth] = "when calling destroyDamageInstance in DamageEvent, line 114"
	set wurst_stack_depth = wurst_stack_depth + 1
	set DamageInstance_count = DamageInstance_count - 1
	set DamageInstance_current = DamageInstance_stack[DamageInstance_count]
	set wurst_stack[wurst_stack_depth] = "when calling dealloc_DamageInstance in DamageEvent, line 162"
	set wurst_stack_depth = wurst_stack_depth + 1
	if DamageInstance_typeId[this_1] == 0 then
		call error("Double free: object of type DamageInstance", "when calling error in DamageEvent, line 114")
	else
		set DamageInstance_nextFree[DamageInstance_firstFree] = this_1
		set DamageInstance_firstFree = DamageInstance_firstFree + 1
		set DamageInstance_typeId[this_1] = 0
	endif
	set wurst_stack_depth = wurst_stack_depth - 1 - 1 - 1
endfunction

function DamageEvent_onDamage takes string w__wurst_stackPos returns nothing
	local integer dmg
	local integer i
	local integer temp
	local integer listener_1
	local real amount
	set wurst_stack[wurst_stack_depth] = w__wurst_stackPos
	set wurst_stack_depth = wurst_stack_depth + 1
	set dmg = DamageInstance_current
	if  not DamageEvent_abort then
		set amount = GetEventDamage()
		set wurst_stack[wurst_stack_depth] = "when calling setReducedAmount in DamageEvent, line 222"
		set wurst_stack_depth = wurst_stack_depth + 1
		if DamageInstance_typeId[dmg] == 0 then
			if dmg == 0 then
				call error("Nullpointer exception when calling DamageInstance.setReducedAmount", "when calling error in DamageEvent, line 157")
			else
				call error("Called DamageInstance.setReducedAmount on invalid object.", "when calling error in DamageEvent, line 157")
			endif
		endif
		set DamageInstance_amount[dmg] = amount
		set wurst_stack_depth = wurst_stack_depth - 1
		set i = 0
		set temp = 0
		loop
			exitwhen i > temp
			set listener_1 = DamageEvent_firstListeners[i]
			loop
				exitwhen listener_1 == 0
				if DamageEvent_abort then
					set DamageInstance_amount[dmg] = 0.
					exitwhen true
				else
					set listener_1 = DamageListener_next[listener_1]
				endif
			endloop
			exitwhen DamageEvent_abort
			set i = i + 1
		endloop
		call BlzSetEventAttackType(DamageInstance_nativeAttackType[dmg])
		call BlzSetEventDamageType(DamageInstance_nativeDamageType[dmg])
		call BlzSetEventWeaponType(DamageInstance_nativeWeaponType[dmg])
		call BlzSetEventDamage(DamageInstance_amount[dmg])
	endif
	call dispatch_DamageInstance_destroyDamageInstance(dmg, "when calling dispatch_DamageInstance_destroyDamageInstance in DamageEvent, line 240")
	set DamageEvent_abort = false
	set wurst_stack_depth = wurst_stack_depth - 1
endfunction

function new_DamageInstance takes integer id_1, unit source, unit target, real unreducedAmount, attacktype nativeAttackType, damagetype nativeDamageType, weapontype nativeWeaponType, integer damageType, integer damageElement, string w__wurst_stackPos returns integer
	set wurst_stack[wurst_stack_depth] = w__wurst_stackPos
	set wurst_stack_depth = wurst_stack_depth + 1
	set wurst_stack[wurst_stack_depth] = "when calling alloc_DamageInstance in DamageEvent, line 133"
	set wurst_stack_depth = wurst_stack_depth + 1
	if DamageInstance_firstFree == 0 then
		if DamageInstance_maxIndex < 32768 then
			set DamageInstance_maxIndex = DamageInstance_maxIndex + 1
			set id_1 = DamageInstance_maxIndex
			set DamageInstance_typeId[id_1] = 1700
		else
			call error("Out of memory: Could not create DamageInstance.", "when calling error in DamageEvent, line 114")
			set id_1 = 0
		endif
	else
		set DamageInstance_firstFree = DamageInstance_firstFree - 1
		set id_1 = DamageInstance_nextFree[DamageInstance_firstFree]
		set DamageInstance_typeId[id_1] = 1700
	endif
	set wurst_stack_depth = wurst_stack_depth - 1
	set DamageInstance_amount[id_1] = unreducedAmount
	set DamageInstance_nativeAttackType[id_1] = nativeAttackType
	set DamageInstance_nativeDamageType[id_1] = nativeDamageType
	set DamageInstance_nativeWeaponType[id_1] = nativeWeaponType
	set DamageInstance_count = DamageInstance_count + 1
	set DamageInstance_stack[DamageInstance_count] = id_1
	set DamageInstance_current = id_1
	set wurst_stack_depth = wurst_stack_depth - 1
	return id_1
endfunction

function DamageEvent_onUnreducedDamage takes string w__wurst_stackPos returns nothing
	local real amount
	local attacktype attackType
	local integer dmg
	local integer i
	local integer temp
	local integer listener_1
	set wurst_stack[wurst_stack_depth] = w__wurst_stackPos
	set wurst_stack_depth = wurst_stack_depth + 1
	set amount = GetEventDamage()
	set attackType = BlzGetEventAttackType()
	if DamageEvent_nextDamageType == 4 then
		if attackType == ATTACK_TYPE_NORMAL then
			set DamageEvent_nextDamageType = 1
		else
			set DamageEvent_nextDamageType = 0
			set DamageEvent_nextDamageElement = DamageEvent_DAMAGE_ELEMENT_ATTACK
		endif
	endif
	set dmg = new_DamageInstance(DamageEvent_nextDamageId, GetEventDamageSource(), GetTriggerUnit(), amount, attackType, BlzGetEventDamageType(), BlzGetEventWeaponType(), DamageEvent_nextDamageType, DamageEvent_nextDamageElement, "when calling new_DamageInstance in DamageEvent, line 196")
	set DamageEvent_nextDamageId = 0
	set DamageEvent_nextDamageType = 4
	set DamageEvent_nextDamageElement = 0
	set i = 0
	set temp = 0
	loop
		exitwhen i > temp
		set listener_1 = DamageEvent_firstUnreducedListeners[i]
		loop
			exitwhen listener_1 == 0
			if DamageEvent_abort then
				set DamageInstance_amount[dmg] = 0.
				exitwhen true
			else
				set listener_1 = DamageListener_next[listener_1]
			endif
		endloop
		exitwhen DamageEvent_abort
		set i = i + 1
	endloop
	call BlzSetEventAttackType(DamageInstance_nativeAttackType[dmg])
	call BlzSetEventDamageType(DamageInstance_nativeDamageType[dmg])
	call BlzSetEventWeaponType(DamageInstance_nativeWeaponType[dmg])
	call BlzSetEventDamage(DamageInstance_amount[dmg])
	set wurst_stack_depth = wurst_stack_depth - 1
endfunction

function dispatch_EventListener_ClosureEvents_EventListener_onEvent takes integer this_1, string w__wurst_stackPos returns nothing
	set wurst_stack[wurst_stack_depth] = w__wurst_stackPos
	set wurst_stack_depth = wurst_stack_depth + 1
	if EventListener_typeId[this_1] == 0 then
		if this_1 == 0 then
			call error("Nullpointer exception when calling EventListener.onEvent", "when calling error in ClosureEvents, line 117")
		else
			call error("Called EventListener.onEvent on invalid object.", "when calling error in ClosureEvents, line 117")
		endif
	endif
	set wurst_stack[wurst_stack_depth] = "when calling onEvent_add_DamageEvent in ClosureEvents, line 117"
	set wurst_stack_depth = wurst_stack_depth + 1
	if EventListener_typeId[this_1] <= 1920 then
		call DamageEvent_onUnreducedDamage("when calling onUnreducedDamage in DamageEvent, line 474")
		set wurst_stack_depth = wurst_stack_depth - 1
	else
		call DamageEvent_onDamage("when calling onDamage in DamageEvent, line 475")
		set wurst_stack_depth = wurst_stack_depth - 1
	endif
	set wurst_stack_depth = wurst_stack_depth - 1
endfunction

function registerPlayerUnitEvent takes playerunitevent p, code filter, code condition, code action returns nothing
	local integer hid = GetHandleId(p)
	local integer k
	local filterfunc cond_result
	local trigger temp
	local player temp_1
	if RegisterEvents_t[hid] == null then
		set RegisterEvents_t[hid] = CreateTrigger()
		set k = bj_MAX_PLAYER_SLOTS - 1
		loop
			exitwhen k < 0
			set temp = RegisterEvents_t[hid]
			set temp_1 = Player_players[k]
			if filter != null then
				set cond_result = Filter(filter)
			else
				set cond_result = null
			endif
			call TriggerRegisterPlayerUnitEvent(temp, temp_1, p, cond_result)
			set k = k - 1
		endloop
	endif
	if condition != null then
		call TriggerAddCondition(RegisterEvents_t[hid], Filter(condition))
	endif
	if action != null then
		call TriggerAddAction(RegisterEvents_t[hid], action)
	endif
endfunction

function registerEventId takes eventid evnt, string w__wurst_stackPos returns integer
	local integer eventId
	local trigger receiver
	local integer eventId_1
	local boolean andLeft
	set wurst_stack[wurst_stack_depth] = w__wurst_stackPos
	set wurst_stack_depth = wurst_stack_depth + 1
	set eventId = GetHandleId(evnt)
	set ClosureEvents_eventTypeCounter = ClosureEvents_eventTypeCounter + 1
	set ClosureEvents_eventidToIndex[eventId] = ClosureEvents_eventTypeCounter
	set eventId_1 = GetHandleId(evnt)
	if (eventId_1 >= 18 and eventId_1 <= 51) or (eventId_1 >= 269 and eventId_1 <= 277) or eventId_1 == 315 or eventId_1 == 308 then
		call registerPlayerUnitEvent(ConvertPlayerUnitEvent(eventId), null, ref_function_bridge_EventListener_generalEventCallback, null)
	else
		if evnt != EVENT_UNIT_DAMAGED and evnt != EVENT_PLAYER_LEAVE and evnt != ClosureEvents_EVENT_PLAYER_CHAT_FILTER then
			set eventId_1 = GetHandleId(evnt)
			set andLeft = eventId_1 < 261 or eventId_1 > 268 and eventId_1 != 17
		else
			set andLeft = false
		endif
		if andLeft then
			set eventId_1 = GetHandleId(evnt)
			set andLeft = eventId_1 < 305 or eventId_1 > 307
		else
			set andLeft = false
		endif
		if andLeft then
			call error("registering handleid: " + I2S(eventId) + " non-playerunitevent. Except EVENT_UNIT_DAMAGED and EVENT_PLAYER_LEAVE these are not supported right now.", "when calling error in ClosureEvents, line 256")
		endif
	endif
	set eventId = GetHandleId(evnt)
	if eventId >= 305 and eventId <= 307 and ( not EventListener_useMouseEvents) then
		set EventListener_useMouseEvents = true
		set eventId = 0
		set eventId_1 = bj_MAX_PLAYERS - 1
		loop
			exitwhen eventId > eventId_1
			set receiver = ClosureEvents_keyTrig
			call TriggerRegisterPlayerEvent(receiver, Player_players[eventId], EVENT_PLAYER_MOUSE_UP)
			call TriggerRegisterPlayerEvent(receiver, Player_players[eventId], EVENT_PLAYER_MOUSE_DOWN)
			call TriggerRegisterPlayerEvent(receiver, Player_players[eventId], EVENT_PLAYER_MOUSE_MOVE)
			set eventId = eventId + 1
		endloop
	endif
	set wurst_stack_depth = wurst_stack_depth - 1
	return ClosureEvents_eventTypeCounter
endfunction

function EventListener_generalEventCallback takes string w__wurst_stackPos returns nothing
	local unit trigUnit
	local integer id_1
	local integer listener_1
	local integer nextListener
	local eventid this_1
	local boolean andLeft
	set wurst_stack[wurst_stack_depth] = w__wurst_stackPos
	set wurst_stack_depth = wurst_stack_depth + 1
	set trigUnit = GetTriggerUnit()
	set this_1 = GetTriggerEventId()
	set wurst_stack[wurst_stack_depth] = "when calling toIntId in ClosureEvents, line 180"
	set wurst_stack_depth = wurst_stack_depth + 1
	set id_1 = ClosureEvents_eventidToIndex[GetHandleId(this_1)]
	if id_1 == 0 then
		set id_1 = registerEventId(this_1, "when calling registerEventId in ClosureEvents, line 243")
	endif
	set wurst_stack_depth = wurst_stack_depth - 1
	if trigUnit != null then
		set andLeft = GetUnitUserData(trigUnit) > 0
	else
		set andLeft = false
	endif
	if andLeft then
		if EventListener_unitListenersFirsts[GetUnitUserData(trigUnit)] != 0 then
			set listener_1 = EventListener_unitListenersFirsts[GetUnitUserData(trigUnit)]
			loop
				exitwhen listener_1 == 0
				set nextListener = EventListener_next[listener_1]
				if EventListener_eventId[listener_1] == id_1 then
					call dispatch_EventListener_ClosureEvents_EventListener_onEvent(listener_1, "when calling onEvent in ClosureEvents, line 188")
				endif
				set listener_1 = nextListener
			endloop
		endif
	endif
	if EventListener_generalListenersFirsts[id_1] != 0 then
		set id_1 = EventListener_generalListenersFirsts[id_1]
		loop
			exitwhen id_1 == 0
			set listener_1 = EventListener_next[id_1]
			call dispatch_EventListener_ClosureEvents_EventListener_onEvent(id_1, "when calling onEvent in ClosureEvents, line 195")
			set id_1 = listener_1
		endloop
	endif
	set wurst_stack_depth = wurst_stack_depth - 1
endfunction

function bridge_EventListener_generalEventCallback takes nothing returns nothing
	set wurst_stack_depth = 0
	call EventListener_generalEventCallback("via function reference ClosureEvents, line 254")
endfunction

function conditions takes nothing returns boolean
	local integer id_1 = GetIssuedOrderId()
	local boolean andLeft
	if id_1 == 851971 or id_1 == 851986 or id_1 == 851983 or id_1 == 851984 or id_1 == 851990 or id_1 == 851993 or (id_1 >= 852055 and id_1 <= 852762) then
		set andLeft = ( not (id_1 == 852055 or id_1 == 852056 or id_1 == 852064 or id_1 == 852065 or id_1 == 852067 or id_1 == 852068 or id_1 == 852076 or id_1 == 852077 or id_1 == 852090 or id_1 == 852091 or id_1 == 852100 or id_1 == 852102 or id_1 == 852103 or id_1 == 852107 or id_1 == 852108 or id_1 == 852129 or id_1 == 852130 or id_1 == 852133 or id_1 == 852134 or id_1 == 852136 or id_1 == 852137 or id_1 == 852150 or id_1 == 852151 or id_1 == 852174 or id_1 == 852158 or id_1 == 852159 or id_1 == 852162 or id_1 == 852163 or id_1 == 852174 or id_1 == 852175 or id_1 == 852177 or id_1 == 852178 or id_1 == 852191 or id_1 == 852192 or id_1 == 852198 or id_1 == 852199 or id_1 == 852203 or id_1 == 852204 or id_1 == 852212 or id_1 == 852213 or id_1 == 852244 or id_1 == 852245 or id_1 == 852249 or id_1 == 852250 or id_1 == 852255 or id_1 == 852256 or id_1 == 852458 or id_1 == 852459 or id_1 == 852478 or id_1 == 852479 or id_1 == 852484 or id_1 == 852485 or id_1 == 852515 or id_1 == 852516 or id_1 == 852522 or id_1 == 852523 or id_1 == 852540)) and ( not (id_1 == 852541)) and id_1 != 852543 and id_1 != 852544 and id_1 != 852546 and id_1 != 852547 and id_1 != 852549 and id_1 != 852550 and id_1 != 852552 and id_1 != 852553 and id_1 != 852562 and id_1 != 852563 and id_1 != 852571 and id_1 != 852578 and id_1 != 852579 and id_1 != 852589 and id_1 != 852590 and id_1 != 852602 and id_1 != 852603 and id_1 != 852671 and id_1 != 852672
	else
		set andLeft = false
	endif
	return andLeft
endfunction

function Order_onDestroy takes integer this_1, string w__wurst_stackPos returns nothing
	local integer this_2
	set wurst_stack[wurst_stack_depth] = w__wurst_stackPos
	set wurst_stack_depth = wurst_stack_depth + 1
	if Order_prev[this_1] != 0 then
		set this_2 = Order_prev[this_1]
		set wurst_stack[wurst_stack_depth] = "when calling dispatch_Order_destroyOrder in LastOrder, line 74"
		set wurst_stack_depth = wurst_stack_depth + 1
		if Order_typeId[this_2] == 0 then
			if this_2 == 0 then
				call error("Nullpointer exception when calling Order.Order", "when calling error in LastOrder, line 33")
			else
				call error("Called Order.Order on invalid object.", "when calling error in LastOrder, line 33")
			endif
		endif
		set wurst_stack[wurst_stack_depth] = "when calling destroyOrder in LastOrder, line 33"
		set wurst_stack_depth = wurst_stack_depth + 1
		call Order_onDestroy(this_2, "when calling Order_onDestroy in LastOrder, line 72")
		set wurst_stack[wurst_stack_depth] = "when calling dealloc_Order in LastOrder, line 72"
		set wurst_stack_depth = wurst_stack_depth + 1
		if Order_typeId[this_2] == 0 then
			call error("Double free: object of type Order", "when calling error in LastOrder, line 33")
		else
			set Order_nextFree[Order_firstFree] = this_2
			set Order_firstFree = Order_firstFree + 1
			set Order_typeId[this_2] = 0
		endif
		set wurst_stack_depth = wurst_stack_depth - 1 - 1 - 1
		set Order_prev[this_1] = 0
	endif
	set wurst_stack_depth = wurst_stack_depth - 1
endfunction

function destroyOrder takes integer this_1, string w__wurst_stackPos returns nothing
	set wurst_stack[wurst_stack_depth] = w__wurst_stackPos
	set wurst_stack_depth = wurst_stack_depth + 1
	call Order_onDestroy(this_1, "when calling Order_onDestroy in LastOrder, line 72")
	set wurst_stack[wurst_stack_depth] = "when calling dealloc_Order in LastOrder, line 72"
	set wurst_stack_depth = wurst_stack_depth + 1
	if Order_typeId[this_1] == 0 then
		call error("Double free: object of type Order", "when calling error in LastOrder, line 33")
	else
		set Order_nextFree[Order_firstFree] = this_1
		set Order_firstFree = Order_firstFree + 1
		set Order_typeId[this_1] = 0
	endif
	set wurst_stack_depth = wurst_stack_depth - 1 - 1
endfunction

function construct_Order takes integer this_1, unit ordered, integer orderId, integer ordtype, widget target, real targetPos_x, real targetPos_y, string w__wurst_stackPos returns nothing
	local integer i
	local integer e
	set wurst_stack[wurst_stack_depth] = w__wurst_stackPos
	set wurst_stack_depth = wurst_stack_depth + 1
	set Order_prev[this_1] = 0
	set Order_orderedUnit[this_1] = null
	set Order_orderedUnit[this_1] = ordered
	if ordered != null then
		set orderId = GetUnitUserData(ordered)
		if LastOrder_lastOrder[orderId] != 0 then
			if Order_orderedUnit[LastOrder_lastOrder[orderId]] == Order_orderedUnit[this_1] then
				set Order_prev[this_1] = LastOrder_lastOrder[orderId]
			else
				set ordtype = LastOrder_lastOrder[orderId]
				set wurst_stack[wurst_stack_depth] = "when calling dispatch_Order_destroyOrder in LastOrder, line 58"
				set wurst_stack_depth = wurst_stack_depth + 1
				if Order_typeId[ordtype] == 0 then
					if ordtype == 0 then
						call error("Nullpointer exception when calling Order.Order", "when calling error in LastOrder, line 33")
					else
						call error("Called Order.Order on invalid object.", "when calling error in LastOrder, line 33")
					endif
				endif
				call destroyOrder(ordtype, "when calling destroyOrder in LastOrder, line 33")
				set wurst_stack_depth = wurst_stack_depth - 1
			endif
		endif
		set i = 0
		set e = this_1
		loop
			exitwhen Order_prev[e] == 0
			set i = i + 1
			if i > 3 then
				set ordtype = Order_prev[e]
				set wurst_stack[wurst_stack_depth] = "when calling dispatch_Order_destroyOrder in LastOrder, line 65"
				set wurst_stack_depth = wurst_stack_depth + 1
				if Order_typeId[ordtype] == 0 then
					if ordtype == 0 then
						call error("Nullpointer exception when calling Order.Order", "when calling error in LastOrder, line 33")
					else
						call error("Called Order.Order on invalid object.", "when calling error in LastOrder, line 33")
					endif
				endif
				call destroyOrder(ordtype, "when calling destroyOrder in LastOrder, line 33")
				set wurst_stack_depth = wurst_stack_depth - 1
				set Order_prev[e] = 0
				exitwhen true
			endif
			set e = Order_prev[e]
		endloop
		set LastOrder_lastOrder[orderId] = this_1
	endif
	set wurst_stack_depth = wurst_stack_depth - 1
endfunction

function new_Order takes unit ordered, integer orderId, integer ordtype, widget target, real targetPos_x, real targetPos_y, string w__wurst_stackPos returns integer
	local integer this_1
	set wurst_stack[wurst_stack_depth] = w__wurst_stackPos
	set wurst_stack_depth = wurst_stack_depth + 1
	set wurst_stack[wurst_stack_depth] = "when calling alloc_Order in LastOrder, line 45"
	set wurst_stack_depth = wurst_stack_depth + 1
	if Order_firstFree == 0 then
		if Order_maxIndex < 32768 then
			set Order_maxIndex = Order_maxIndex + 1
			set this_1 = Order_maxIndex
			set Order_typeId[this_1] = 3293
		else
			call error("Out of memory: Could not create Order.", "when calling error in LastOrder, line 33")
			set this_1 = 0
		endif
	else
		set Order_firstFree = Order_firstFree - 1
		set this_1 = Order_nextFree[Order_firstFree]
		set Order_typeId[this_1] = 3293
	endif
	set wurst_stack_depth = wurst_stack_depth - 1
	call construct_Order(this_1, ordered, orderId, ordtype, target, targetPos_x, targetPos_y, "when calling construct_Order in LastOrder, line 45")
	set wurst_stack_depth = wurst_stack_depth - 1
	return this_1
endfunction

function actions takes string w__wurst_stackPos returns nothing
	local unit u_1
	local widget t
	local integer oid
	local player showTo
	local unit this_1
	set wurst_stack[wurst_stack_depth] = w__wurst_stackPos
	set wurst_stack_depth = wurst_stack_depth + 1
	if conditions() then
		set u_1 = GetTriggerUnit()
		set t = GetOrderTarget()
		set oid = GetIssuedOrderId()
		set w__wurst_stackPos = "ordered: <" + OrderId2StringBJ(oid) + ">"
		set showTo = Player_localPlayer
		if 2 <= 0 then
			call DisplayTimedTextToPlayer(showTo, 0., 0., 45., Loglevel_getTag(0) + " - " + w__wurst_stackPos)
		endif
		if GetTriggerEventId() == EVENT_PLAYER_UNIT_ISSUED_TARGET_ORDER then
			set this_1 = GetOrderTargetUnit()
			call new_Order(u_1, oid, 0, t, GetUnitX(this_1), GetUnitY(this_1), "when calling new_Order in LastOrder, line 148")
		elseif GetTriggerEventId() == EVENT_PLAYER_UNIT_ISSUED_POINT_ORDER then
			call new_Order(u_1, oid, 1, null, GetOrderPointX(), GetOrderPointY(), "when calling new_Order in LastOrder, line 150")
		elseif GetTriggerEventId() == EVENT_PLAYER_UNIT_ISSUED_ORDER then
			call new_Order(u_1, oid, 2, null, GetUnitX(u_1), GetUnitY(u_1), "when calling new_Order in LastOrder, line 152")
		endif
	endif
	set wurst_stack_depth = wurst_stack_depth - 1
endfunction

function bridge_actions takes nothing returns nothing
	set wurst_stack_depth = 0
	call actions("via function reference LastOrder, line 161")
endfunction

function bridge_actions_215 takes nothing returns nothing
	set wurst_stack_depth = 0
	call actions("via function reference LastOrder, line 162")
endfunction

function bridge_actions_216 takes nothing returns nothing
	set wurst_stack_depth = 0
	call actions("via function reference LastOrder, line 163")
endfunction

function new_LLEntry takes integer elem, integer prev, integer next, string w__wurst_stackPos returns integer
	local integer this_1
	set wurst_stack[wurst_stack_depth] = w__wurst_stackPos
	set wurst_stack_depth = wurst_stack_depth + 1
	set wurst_stack[wurst_stack_depth] = "when calling alloc_LLEntry in LinkedList, line 434"
	set wurst_stack_depth = wurst_stack_depth + 1
	if LLEntry_firstFree == 0 then
		if LLEntry_maxIndex < 32768 then
			set LLEntry_maxIndex = LLEntry_maxIndex + 1
			set this_1 = LLEntry_maxIndex
			set LLEntry_typeId[this_1] = 2715
		else
			call error("Out of memory: Could not create LLEntry.", "when calling error in LinkedList, line 429")
			set this_1 = 0
		endif
	else
		set LLEntry_firstFree = LLEntry_firstFree - 1
		set this_1 = LLEntry_nextFree[LLEntry_firstFree]
		set LLEntry_typeId[this_1] = 2715
	endif
	set wurst_stack_depth = wurst_stack_depth - 1
	set LLEntry_elem[this_1] = elem
	set LLEntry_prev[this_1] = prev
	set LLEntry_next[this_1] = next
	set wurst_stack_depth = wurst_stack_depth - 1
	return this_1
endfunction

function dispatch_LinkedList_LinkedList_LinkedList_add_1 takes integer this_1, integer elems_0, string w__wurst_stackPos returns nothing
	local integer entry
	set wurst_stack[wurst_stack_depth] = w__wurst_stackPos
	set wurst_stack_depth = wurst_stack_depth + 1
	if LinkedList_typeId[this_1] == 0 then
		if this_1 == 0 then
			call error("Nullpointer exception when calling LinkedList.add", "when calling error in LinkedList, line 38")
		else
			call error("Called LinkedList.add on invalid object.", "when calling error in LinkedList, line 38")
		endif
	endif
	set wurst_stack[wurst_stack_depth] = "when calling add in LinkedList, line 38"
	set wurst_stack_depth = wurst_stack_depth + 1
	set entry = new_LLEntry(elems_0, LLEntry_prev[LinkedList_dummy[this_1]], LinkedList_dummy[this_1], "when calling new_LLEntry in LinkedList, line 40")
	set LLEntry_next[LLEntry_prev[LinkedList_dummy[this_1]]] = entry
	set LLEntry_prev[LinkedList_dummy[this_1]] = entry
	set LinkedList_size[this_1] = LinkedList_size[this_1] + 1
	set wurst_stack_depth = wurst_stack_depth - 1 - 1
endfunction

function dispatch_ForGroupCallback_ClosureForGroups_ForGroupCallback_callback takes integer this_1, unit u_1, string w__wurst_stackPos returns nothing
	set wurst_stack[wurst_stack_depth] = w__wurst_stackPos
	set wurst_stack_depth = wurst_stack_depth + 1
	if ForGroupCallback_typeId[this_1] == 0 then
		if this_1 == 0 then
			call error("Nullpointer exception when calling ForGroupCallback.callback", "when calling error in ClosureForGroups, line 4")
		else
			call error("Called ForGroupCallback.callback on invalid object.", "when calling error in ClosureForGroups, line 4")
		endif
	endif
	if ForGroupCallback_typeId[this_1] <= 2071 then
		set wurst_stack[wurst_stack_depth] = "when calling callback_forEachFrom_LinkedList in ClosureForGroups, line 4"
		set wurst_stack_depth = wurst_stack_depth + 1
		call dispatch_LinkedList_LinkedList_LinkedList_add_1(result[this_1], GetHandleId(u_1), "when calling add in LinkedList, line 574")
		set wurst_stack_depth = wurst_stack_depth - 1
	else
		call RemoveUnit(u_1)
	endif
	set wurst_stack_depth = wurst_stack_depth - 1
endfunction

function bridge_code__Filter_ClosureForGroups takes nothing returns nothing
	local unit filter
	set wurst_stack_depth = 0
	set wurst_stack[wurst_stack_depth] = "via function reference ClosureForGroups, line 14"
	set wurst_stack_depth = wurst_stack_depth + 1
	set filter = GetFilterUnit()
	set wurst_stack[wurst_stack_depth] = "when calling filterCallback in ClosureForGroups, line 14"
	set wurst_stack_depth = wurst_stack_depth + 1
	if ClosureForGroups_iterCount < 2147483647 then
		call dispatch_ForGroupCallback_ClosureForGroups_ForGroupCallback_callback(ClosureForGroups_tempCallbacks[-1], filter, "when calling callback in ClosureForGroups, line 18")
	endif
	set ClosureForGroups_iterCount = ClosureForGroups_iterCount + 1
	set wurst_stack_depth = wurst_stack_depth - 1 - 1
endfunction

function ChunkedString_append takes integer this_1, string pdata, string w__wurst_stackPos returns nothing
	local integer remain
	local integer this_2
	local integer parentKey
	set wurst_stack[wurst_stack_depth] = w__wurst_stackPos
	set wurst_stack_depth = wurst_stack_depth + 1
	loop
		set remain = ChunkedString_chunkSize[this_1] - StringLength(ChunkedString_buffer[this_1])
		set ChunkedString_buffer[this_1] = ChunkedString_buffer[this_1] + SubString(pdata, 0, remain)
		if StringLength(ChunkedString_buffer[this_1]) >= ChunkedString_chunkSize[this_1] then
			set this_2 = ChunkedString_table[this_1]
			set parentKey = ChunkedString_chunkCount[this_1]
			set w__wurst_stackPos = ChunkedString_buffer[this_1]
			set wurst_stack[wurst_stack_depth] = "when calling saveString in ChunkedString, line 52"
			set wurst_stack_depth = wurst_stack_depth + 1
			if Table_typeId[this_2] == 0 then
				if this_2 == 0 then
					call error("Nullpointer exception when calling Table.saveString", "when calling error in Table, line 61")
				else
					call error("Called Table.saveString on invalid object.", "when calling error in Table, line 61")
				endif
			endif
			call SaveStr(Table_ht, this_2, parentKey, w__wurst_stackPos)
			set wurst_stack_depth = wurst_stack_depth - 1
			set ChunkedString_buffer[this_1] = ""
			set ChunkedString_chunkCount[this_1] = ChunkedString_chunkCount[this_1] + 1
		endif
		set parentKey = StringLength(pdata)
		if remain < 2147483647 then
		else
			set remain = 2147483647
		endif
		if parentKey < remain then
			set remain = parentKey
		endif
		set pdata = SubString(pdata, remain, StringLength(pdata))
		exitwhen StringLength(pdata) == 0
	endloop
	set wurst_stack_depth = wurst_stack_depth - 1
endfunction

function ChunkedString_getChunk takes integer this_1, integer index, string w__wurst_stackPos returns string
	set wurst_stack[wurst_stack_depth] = w__wurst_stackPos
	set wurst_stack_depth = wurst_stack_depth + 1
	if index == ChunkedString_chunkCount[this_1] then
		set wurst_stack_depth = wurst_stack_depth - 1
		return ChunkedString_buffer[this_1]
	endif
	set this_1 = ChunkedString_table[this_1]
	set wurst_stack[wurst_stack_depth] = "when calling loadString in ChunkedString, line 74"
	set wurst_stack_depth = wurst_stack_depth + 1
	if Table_typeId[this_1] == 0 then
		if this_1 == 0 then
			call error("Nullpointer exception when calling Table.loadString", "when calling error in Table, line 58")
		else
			call error("Called Table.loadString on invalid object.", "when calling error in Table, line 58")
		endif
	endif
	set w__wurst_stackPos = LoadStr(Table_ht, this_1, index)
	set wurst_stack_depth = wurst_stack_depth - 1 - 1
	return w__wurst_stackPos
endfunction

function dispatch_ChunkedString_ChunkedString_ChunkedString_readChunk takes integer this_1, string w__wurst_stackPos returns string
	local integer index
	set wurst_stack[wurst_stack_depth] = w__wurst_stackPos
	set wurst_stack_depth = wurst_stack_depth + 1
	if ChunkedString_typeId[this_1] == 0 then
		if this_1 == 0 then
			call error("Nullpointer exception when calling ChunkedString.readChunk", "when calling error in ChunkedString, line 64")
		else
			call error("Called ChunkedString.readChunk on invalid object.", "when calling error in ChunkedString, line 64")
		endif
	endif
	set wurst_stack[wurst_stack_depth] = "when calling readChunk in ChunkedString, line 64"
	set wurst_stack_depth = wurst_stack_depth + 1
	set ChunkedString_readIndex[this_1] = ChunkedString_readIndex[this_1] + 1
	set index = ChunkedString_readIndex[this_1]
	set wurst_stack[wurst_stack_depth] = "when calling getChunk in ChunkedString, line 66"
	set wurst_stack_depth = wurst_stack_depth + 1
	if ChunkedString_typeId[this_1] == 0 then
		if this_1 == 0 then
			call error("Nullpointer exception when calling ChunkedString.getChunk", "when calling error in ChunkedString, line 71")
		else
			call error("Called ChunkedString.getChunk on invalid object.", "when calling error in ChunkedString, line 71")
		endif
	endif
	set w__wurst_stackPos = ChunkedString_getChunk(this_1, index, "when calling getChunk in ChunkedString, line 71")
	set wurst_stack_depth = wurst_stack_depth - 1 - 1 - 1
	return w__wurst_stackPos
endfunction

function checkQueue takes string w__wurst_stackPos returns nothing
	local integer this_1
	local integer LinkedList_LinkedList_getFirst_result
	local boolean ChunkedString_ChunkedString_hasChunk_result
	set wurst_stack[wurst_stack_depth] = w__wurst_stackPos
	set wurst_stack_depth = wurst_stack_depth + 1
	set this_1 = SyncSimple_syncQueue
	set wurst_stack[wurst_stack_depth] = "when calling isEmpty in SyncSimple, line 102"
	set wurst_stack_depth = wurst_stack_depth + 1
	if LinkedList_typeId[this_1] == 0 then
		if this_1 == 0 then
			call error("Nullpointer exception when calling LinkedList.isEmpty", "when calling error in LinkedList, line 162")
		else
			call error("Called LinkedList.isEmpty on invalid object.", "when calling error in LinkedList, line 162")
		endif
	endif
	set ChunkedString_ChunkedString_hasChunk_result = LinkedList_size[this_1] == 0
	set wurst_stack_depth = wurst_stack_depth - 1
	if  not ChunkedString_ChunkedString_hasChunk_result then
		set this_1 = SyncSimple_syncQueue
		set wurst_stack[wurst_stack_depth] = "when calling getFirst in SyncSimple, line 103"
		set wurst_stack_depth = wurst_stack_depth + 1
		if LinkedList_typeId[this_1] == 0 then
			if this_1 == 0 then
				call error("Nullpointer exception when calling LinkedList.getFirst", "when calling error in LinkedList, line 88")
			else
				call error("Called LinkedList.getFirst on invalid object.", "when calling error in LinkedList, line 88")
			endif
		endif
		set LinkedList_LinkedList_getFirst_result = LLEntry_elem[LLEntry_next[LinkedList_dummy[this_1]]]
		set wurst_stack_depth = wurst_stack_depth - 1
		if SyncData_data[LinkedList_LinkedList_getFirst_result] != null then
			if Player_localPlayer == SyncData_syncer[LinkedList_LinkedList_getFirst_result] then
				call BlzSendSyncData("S", SyncData_data[LinkedList_LinkedList_getFirst_result])
			endif
		else
			set w__wurst_stackPos = dispatch_ChunkedString_ChunkedString_ChunkedString_readChunk(SyncData_buffer[LinkedList_LinkedList_getFirst_result], "when calling readChunk in SyncSimple, line 108")
			set this_1 = SyncData_buffer[LinkedList_LinkedList_getFirst_result]
			set wurst_stack[wurst_stack_depth] = "when calling hasChunk in SyncSimple, line 109"
			set wurst_stack_depth = wurst_stack_depth + 1
			if ChunkedString_typeId[this_1] == 0 then
				if this_1 == 0 then
					call error("Nullpointer exception when calling ChunkedString.hasChunk", "when calling error in ChunkedString, line 61")
				else
					call error("Called ChunkedString.hasChunk on invalid object.", "when calling error in ChunkedString, line 61")
				endif
			endif
			set ChunkedString_ChunkedString_hasChunk_result = ChunkedString_readIndex[this_1] < ChunkedString_chunkCount[this_1]
			set wurst_stack_depth = wurst_stack_depth - 1
			if Player_localPlayer == SyncData_syncer[LinkedList_LinkedList_getFirst_result] then
				if ChunkedString_ChunkedString_hasChunk_result then
					call BlzSendSyncData("S", w__wurst_stackPos)
				else
					call BlzSendSyncData("T", w__wurst_stackPos)
				endif
			endif
		endif
	endif
	set wurst_stack_depth = wurst_stack_depth - 1
endfunction

function dispatch_LLEntry_destroyLLEntry takes integer this_1, string w__wurst_stackPos returns nothing
	set wurst_stack[wurst_stack_depth] = w__wurst_stackPos
	set wurst_stack_depth = wurst_stack_depth + 1
	if LLEntry_typeId[this_1] == 0 then
		if this_1 == 0 then
			call error("Nullpointer exception when calling LLEntry.LLEntry", "when calling error in LinkedList, line 429")
		else
			call error("Called LLEntry.LLEntry on invalid object.", "when calling error in LinkedList, line 429")
		endif
	endif
	set wurst_stack[wurst_stack_depth] = "when calling destroyLLEntry in LinkedList, line 429"
	set wurst_stack_depth = wurst_stack_depth + 1
	set wurst_stack[wurst_stack_depth] = "when calling dealloc_LLEntry in LinkedList, line 429"
	set wurst_stack_depth = wurst_stack_depth + 1
	if LLEntry_typeId[this_1] == 0 then
		call error("Double free: object of type LLEntry", "when calling error in LinkedList, line 429")
	else
		set LLEntry_nextFree[LLEntry_firstFree] = this_1
		set LLEntry_firstFree = LLEntry_firstFree + 1
		set LLEntry_typeId[this_1] = 0
	endif
	set wurst_stack_depth = wurst_stack_depth - 1 - 1 - 1
endfunction

function dispatch_LinkedList_LinkedList_LinkedList_removeEntry takes integer this_1, integer entry, string w__wurst_stackPos returns nothing
	set wurst_stack[wurst_stack_depth] = w__wurst_stackPos
	set wurst_stack_depth = wurst_stack_depth + 1
	if LinkedList_typeId[this_1] == 0 then
		if this_1 == 0 then
			call error("Nullpointer exception when calling LinkedList.removeEntry", "when calling error in LinkedList, line 406")
		else
			call error("Called LinkedList.removeEntry on invalid object.", "when calling error in LinkedList, line 406")
		endif
	endif
	set wurst_stack[wurst_stack_depth] = "when calling removeEntry in LinkedList, line 406"
	set wurst_stack_depth = wurst_stack_depth + 1
	set LLEntry_next[LLEntry_prev[entry]] = LLEntry_next[entry]
	set LLEntry_prev[LLEntry_next[entry]] = LLEntry_prev[entry]
	call dispatch_LLEntry_destroyLLEntry(entry, "when calling dispatch_LLEntry_destroyLLEntry in LinkedList, line 409")
	set LinkedList_size[this_1] = LinkedList_size[this_1] - 1
	set wurst_stack_depth = wurst_stack_depth - 1 - 1
endfunction

function dispatch_LinkedList_LinkedList_LinkedList_dequeue takes integer this_1, string w__wurst_stackPos returns integer
	local integer top
	local integer result_1
	set wurst_stack[wurst_stack_depth] = w__wurst_stackPos
	set wurst_stack_depth = wurst_stack_depth + 1
	if LinkedList_typeId[this_1] == 0 then
		if this_1 == 0 then
			call error("Nullpointer exception when calling LinkedList.dequeue", "when calling error in LinkedList, line 96")
		else
			call error("Called LinkedList.dequeue on invalid object.", "when calling error in LinkedList, line 96")
		endif
	endif
	set wurst_stack[wurst_stack_depth] = "when calling dequeue in LinkedList, line 96"
	set wurst_stack_depth = wurst_stack_depth + 1
	set top = LLEntry_next[LinkedList_dummy[this_1]]
	set result_1 = 0
	if top != LinkedList_dummy[this_1] then
		set result_1 = LLEntry_elem[top]
		call dispatch_LinkedList_LinkedList_LinkedList_removeEntry(this_1, top, "when calling removeEntry in LinkedList, line 101")
	endif
	set wurst_stack_depth = wurst_stack_depth - 1 - 1
	return result_1
endfunction

function dispatch_IntSyncListener_destroyIntSyncListener takes integer this_1, string w__wurst_stackPos returns nothing
	set wurst_stack[wurst_stack_depth] = w__wurst_stackPos
	set wurst_stack_depth = wurst_stack_depth + 1
	if IntSyncListener_typeId[this_1] == 0 then
		if this_1 == 0 then
			call error("Nullpointer exception when calling IntSyncListener.IntSyncListener", "when calling error in SyncSimple, line 28")
		else
			call error("Called IntSyncListener.IntSyncListener on invalid object.", "when calling error in SyncSimple, line 28")
		endif
	endif
	set wurst_stack[wurst_stack_depth] = "when calling destroyIntSyncListener in SyncSimple, line 28"
	set wurst_stack_depth = wurst_stack_depth + 1
	set wurst_stack[wurst_stack_depth] = "when calling dealloc_IntSyncListener in SyncSimple, line 28"
	set wurst_stack_depth = wurst_stack_depth + 1
	if IntSyncListener_typeId[this_1] == 0 then
		call error("Double free: object of type IntSyncListener", "when calling error in SyncSimple, line 28")
	else
		set IntSyncListener_firstFree = IntSyncListener_firstFree + 1
		set IntSyncListener_typeId[this_1] = 0
	endif
	set wurst_stack_depth = wurst_stack_depth - 1 - 1 - 1
endfunction

function dispatch_RealSyncListener_destroyRealSyncListener takes integer this_1, string w__wurst_stackPos returns nothing
	set wurst_stack[wurst_stack_depth] = w__wurst_stackPos
	set wurst_stack_depth = wurst_stack_depth + 1
	if RealSyncListener_typeId[this_1] == 0 then
		if this_1 == 0 then
			call error("Nullpointer exception when calling RealSyncListener.RealSyncListener", "when calling error in SyncSimple, line 31")
		else
			call error("Called RealSyncListener.RealSyncListener on invalid object.", "when calling error in SyncSimple, line 31")
		endif
	endif
	set wurst_stack[wurst_stack_depth] = "when calling destroyRealSyncListener in SyncSimple, line 31"
	set wurst_stack_depth = wurst_stack_depth + 1
	set wurst_stack[wurst_stack_depth] = "when calling dealloc_RealSyncListener in SyncSimple, line 31"
	set wurst_stack_depth = wurst_stack_depth + 1
	if RealSyncListener_typeId[this_1] == 0 then
		call error("Double free: object of type RealSyncListener", "when calling error in SyncSimple, line 31")
	else
		set RealSyncListener_firstFree = RealSyncListener_firstFree + 1
		set RealSyncListener_typeId[this_1] = 0
	endif
	set wurst_stack_depth = wurst_stack_depth - 1 - 1 - 1
endfunction

function dispatch_BoolSyncListener_destroyBoolSyncListener takes integer this_1, string w__wurst_stackPos returns nothing
	set wurst_stack[wurst_stack_depth] = w__wurst_stackPos
	set wurst_stack_depth = wurst_stack_depth + 1
	if BoolSyncListener_typeId[this_1] == 0 then
		if this_1 == 0 then
			call error("Nullpointer exception when calling BoolSyncListener.BoolSyncListener", "when calling error in SyncSimple, line 25")
		else
			call error("Called BoolSyncListener.BoolSyncListener on invalid object.", "when calling error in SyncSimple, line 25")
		endif
	endif
	set wurst_stack[wurst_stack_depth] = "when calling destroyBoolSyncListener in SyncSimple, line 25"
	set wurst_stack_depth = wurst_stack_depth + 1
	set wurst_stack[wurst_stack_depth] = "when calling dealloc_BoolSyncListener in SyncSimple, line 25"
	set wurst_stack_depth = wurst_stack_depth + 1
	if BoolSyncListener_typeId[this_1] == 0 then
		call error("Double free: object of type BoolSyncListener", "when calling error in SyncSimple, line 25")
	else
		set BoolSyncListener_firstFree = BoolSyncListener_firstFree + 1
		set BoolSyncListener_typeId[this_1] = 0
	endif
	set wurst_stack_depth = wurst_stack_depth - 1 - 1 - 1
endfunction

function onDataSynced_sync_SyncSimple takes integer this_1, string data_1, string w__wurst_stackPos returns nothing
	set wurst_stack[wurst_stack_depth] = w__wurst_stackPos
	set wurst_stack_depth = wurst_stack_depth + 1
	call dispatch_BoolSyncListener_destroyBoolSyncListener(listener[this_1], "when calling dispatch_BoolSyncListener_destroyBoolSyncListener in SyncSimple, line 46")
	set wurst_stack_depth = wurst_stack_depth - 1
endfunction

function dispatch_StringSyncListener_SyncSimple_StringSyncListener_onDataSynced takes integer this_1, string data_1, string w__wurst_stackPos returns nothing
	set wurst_stack[wurst_stack_depth] = w__wurst_stackPos
	set wurst_stack_depth = wurst_stack_depth + 1
	if StringSyncListener_typeId[this_1] == 0 then
		if this_1 == 0 then
			call error("Nullpointer exception when calling StringSyncListener.onDataSynced", "when calling error in SyncSimple, line 35")
		else
			call error("Called StringSyncListener.onDataSynced on invalid object.", "when calling error in SyncSimple, line 35")
		endif
	endif
	if StringSyncListener_typeId[this_1] <= 4086 then
		if StringSyncListener_typeId[this_1] <= 4085 then
			call onDataSynced_sync_SyncSimple(this_1, data_1, "when calling onDataSynced_sync_SyncSimple in SyncSimple, line 35")
		else
			set wurst_stack[wurst_stack_depth] = "when calling onDataSynced_sync_SyncSimple in SyncSimple, line 35"
			set wurst_stack_depth = wurst_stack_depth + 1
			call dispatch_IntSyncListener_destroyIntSyncListener(listener_325[this_1], "when calling dispatch_IntSyncListener_destroyIntSyncListener in SyncSimple, line 52")
			set wurst_stack_depth = wurst_stack_depth - 1
		endif
	else
		set wurst_stack[wurst_stack_depth] = "when calling onDataSynced_sync_SyncSimple in SyncSimple, line 35"
		set wurst_stack_depth = wurst_stack_depth + 1
		call dispatch_RealSyncListener_destroyRealSyncListener(listener_326[this_1], "when calling dispatch_RealSyncListener_destroyRealSyncListener in SyncSimple, line 58")
		set wurst_stack_depth = wurst_stack_depth - 1
	endif
	set wurst_stack_depth = wurst_stack_depth - 1
endfunction

function HashSet_clear takes integer this_1 returns nothing
	call FlushChildHashtable(HashList_ht, this_1)
	call FlushChildHashtable(HashList_occurences, this_1)
	set HashList_size[this_1] = 0
	call FlushChildHashtable(HashSet_position, this_1)
endfunction

function dispatch_HashList_HashList_HashList_clear takes integer this_1, string w__wurst_stackPos returns nothing
	set wurst_stack[wurst_stack_depth] = w__wurst_stackPos
	set wurst_stack_depth = wurst_stack_depth + 1
	if HashList_typeId[this_1] == 0 then
		if this_1 == 0 then
			call error("Nullpointer exception when calling HashList.clear", "when calling error in HashList, line 66")
		else
			call error("Called HashList.clear on invalid object.", "when calling error in HashList, line 66")
		endif
	endif
	if HashList_typeId[this_1] <= 2302 then
		call FlushChildHashtable(HashList_ht, this_1)
		call FlushChildHashtable(HashList_occurences, this_1)
		set HashList_size[this_1] = 0
	else
		call HashSet_clear(this_1)
	endif
	set wurst_stack_depth = wurst_stack_depth - 1
endfunction

function destroyHashSet takes integer this_1, string w__wurst_stackPos returns nothing
	set wurst_stack[wurst_stack_depth] = w__wurst_stackPos
	set wurst_stack_depth = wurst_stack_depth + 1
	set wurst_stack[wurst_stack_depth] = "when calling HashSet_onDestroy in HashSet, line 34"
	set wurst_stack_depth = wurst_stack_depth + 1
	call FlushChildHashtable(HashSet_position, this_1)
	set wurst_stack[wurst_stack_depth] = "when calling HashList_onDestroy in HashSet, line 5"
	set wurst_stack_depth = wurst_stack_depth + 1
	call dispatch_HashList_HashList_HashList_clear(this_1, "when calling clear in HashList, line 154")
	set wurst_stack_depth = wurst_stack_depth - 1 - 1
	set wurst_stack[wurst_stack_depth] = "when calling dealloc_HashSet in HashSet, line 34"
	set wurst_stack_depth = wurst_stack_depth + 1
	if HashList_typeId[this_1] == 0 then
		call error("Double free: object of type HashSet", "when calling error in HashSet, line 5")
	else
		set HashList_firstFree = HashList_firstFree + 1
		set HashList_typeId[this_1] = 0
	endif
	set wurst_stack_depth = wurst_stack_depth - 1 - 1
endfunction

function dispatch_HashList_destroyHashList takes integer this_1, string w__wurst_stackPos returns nothing
	set wurst_stack[wurst_stack_depth] = w__wurst_stackPos
	set wurst_stack_depth = wurst_stack_depth + 1
	if HashList_typeId[this_1] == 0 then
		if this_1 == 0 then
			call error("Nullpointer exception when calling HashList.HashList", "when calling error in HashList, line 12")
		else
			call error("Called HashList.HashList on invalid object.", "when calling error in HashList, line 12")
		endif
	endif
	if HashList_typeId[this_1] <= 2302 then
		set wurst_stack[wurst_stack_depth] = "when calling destroyHashList in HashList, line 12"
		set wurst_stack_depth = wurst_stack_depth + 1
		set wurst_stack[wurst_stack_depth] = "when calling HashList_onDestroy in HashList, line 153"
		set wurst_stack_depth = wurst_stack_depth + 1
		call dispatch_HashList_HashList_HashList_clear(this_1, "when calling clear in HashList, line 154")
		set wurst_stack_depth = wurst_stack_depth - 1
		set wurst_stack[wurst_stack_depth] = "when calling dealloc_HashList in HashList, line 153"
		set wurst_stack_depth = wurst_stack_depth + 1
		if HashList_typeId[this_1] == 0 then
			call error("Double free: object of type HashList", "when calling error in HashList, line 12")
		else
			set HashList_firstFree = HashList_firstFree + 1
			set HashList_typeId[this_1] = 0
		endif
		set wurst_stack_depth = wurst_stack_depth - 1 - 1
	else
		call destroyHashSet(this_1, "when calling destroyHashSet in HashList, line 12")
	endif
	set wurst_stack_depth = wurst_stack_depth - 1
endfunction

function dispatch_Table_Table_Table_flush takes integer this_1, string w__wurst_stackPos returns nothing
	set wurst_stack[wurst_stack_depth] = w__wurst_stackPos
	set wurst_stack_depth = wurst_stack_depth + 1
	if Table_typeId[this_1] == 0 then
		if this_1 == 0 then
			call error("Nullpointer exception when calling Table.flush", "when calling error in Table, line 251")
		else
			call error("Called Table.flush on invalid object.", "when calling error in Table, line 251")
		endif
	endif
	if Table_typeId[this_1] <= 4108 then
		if Table_typeId[this_1] <= 4107 then
			call FlushChildHashtable(Table_ht, this_1)
		else
			set HashMap_size[this_1] = 0
			call FlushChildHashtable(Table_ht, this_1)
		endif
	else
		set wurst_stack[wurst_stack_depth] = "when calling flush in Table, line 251"
		set wurst_stack_depth = wurst_stack_depth + 1
		if  not IterableMap__destroyed[this_1] then
			call dispatch_HashList_HashList_HashList_clear(IterableMap_keys[this_1], "when calling clear in HashMap, line 73")
		endif
		set HashMap_size[this_1] = 0
		call FlushChildHashtable(Table_ht, this_1)
		set wurst_stack_depth = wurst_stack_depth - 1
	endif
	set wurst_stack_depth = wurst_stack_depth - 1
endfunction

function destroyIterableMap takes integer this_1, string w__wurst_stackPos returns nothing
	set wurst_stack[wurst_stack_depth] = w__wurst_stackPos
	set wurst_stack_depth = wurst_stack_depth + 1
	set wurst_stack[wurst_stack_depth] = "when calling IterableMap_onDestroy in HashMap, line 130"
	set wurst_stack_depth = wurst_stack_depth + 1
	call dispatch_HashList_destroyHashList(IterableMap_keys[this_1], "when calling dispatch_HashList_destroyHashList in HashMap, line 131")
	set IterableMap__destroyed[this_1] = true
	set wurst_stack[wurst_stack_depth] = "when calling HashMap_onDestroy in HashMap, line 46"
	set wurst_stack_depth = wurst_stack_depth + 1
	set wurst_stack[wurst_stack_depth] = "when calling Table_onDestroy in HashMap, line 8"
	set wurst_stack_depth = wurst_stack_depth + 1
	call dispatch_Table_Table_Table_flush(this_1, "when calling flush in Table, line 255")
	set wurst_stack_depth = wurst_stack_depth - 1 - 1 - 1
	set wurst_stack[wurst_stack_depth] = "when calling dealloc_IterableMap in HashMap, line 130"
	set wurst_stack_depth = wurst_stack_depth + 1
	if Table_typeId[this_1] == 0 then
		call error("Double free: object of type IterableMap", "when calling error in HashMap, line 46")
	else
		set Table_nextFree[Table_firstFree] = this_1
		set Table_firstFree = Table_firstFree + 1
		set Table_typeId[this_1] = 0
	endif
	set wurst_stack_depth = wurst_stack_depth - 1 - 1
endfunction

function destroyTable takes integer this_1, string w__wurst_stackPos returns nothing
	set wurst_stack[wurst_stack_depth] = w__wurst_stackPos
	set wurst_stack_depth = wurst_stack_depth + 1
	set wurst_stack[wurst_stack_depth] = "when calling Table_onDestroy in Table, line 254"
	set wurst_stack_depth = wurst_stack_depth + 1
	call dispatch_Table_Table_Table_flush(this_1, "when calling flush in Table, line 255")
	set wurst_stack_depth = wurst_stack_depth - 1
	set wurst_stack[wurst_stack_depth] = "when calling dealloc_Table in Table, line 254"
	set wurst_stack_depth = wurst_stack_depth + 1
	if Table_typeId[this_1] == 0 then
		call error("Double free: object of type Table", "when calling error in Table, line 7")
	else
		set Table_nextFree[Table_firstFree] = this_1
		set Table_firstFree = Table_firstFree + 1
		set Table_typeId[this_1] = 0
	endif
	set wurst_stack_depth = wurst_stack_depth - 1 - 1
endfunction

function dispatch_Table_destroyTable takes integer this_1, string w__wurst_stackPos returns nothing
	set wurst_stack[wurst_stack_depth] = w__wurst_stackPos
	set wurst_stack_depth = wurst_stack_depth + 1
	if Table_typeId[this_1] == 0 then
		if this_1 == 0 then
			call error("Nullpointer exception when calling Table.Table", "when calling error in Table, line 7")
		else
			call error("Called Table.Table on invalid object.", "when calling error in Table, line 7")
		endif
	endif
	if Table_typeId[this_1] <= 4108 then
		call destroyTable(this_1, "when calling destroyTable in Table, line 7")
	else
		call destroyIterableMap(this_1, "when calling destroyIterableMap in Table, line 7")
	endif
	set wurst_stack_depth = wurst_stack_depth - 1
endfunction

function destroyChunkedString takes integer this_1, string w__wurst_stackPos returns nothing
	set wurst_stack[wurst_stack_depth] = w__wurst_stackPos
	set wurst_stack_depth = wurst_stack_depth + 1
	set wurst_stack[wurst_stack_depth] = "when calling ChunkedString_onDestroy in ChunkedString, line 146"
	set wurst_stack_depth = wurst_stack_depth + 1
	call dispatch_Table_destroyTable(ChunkedString_table[this_1], "when calling dispatch_Table_destroyTable in ChunkedString, line 147")
	set wurst_stack_depth = wurst_stack_depth - 1
	set wurst_stack[wurst_stack_depth] = "when calling dealloc_ChunkedString in ChunkedString, line 146"
	set wurst_stack_depth = wurst_stack_depth + 1
	if ChunkedString_typeId[this_1] == 0 then
		call error("Double free: object of type ChunkedString", "when calling error in ChunkedString, line 29")
	else
		set ChunkedString_nextFree[ChunkedString_firstFree] = this_1
		set ChunkedString_firstFree = ChunkedString_firstFree + 1
		set ChunkedString_typeId[this_1] = 0
	endif
	set wurst_stack_depth = wurst_stack_depth - 1 - 1
endfunction

function dispatch_BufferSyncListener_destroyBufferSyncListener takes integer this_1, string w__wurst_stackPos returns nothing
	set wurst_stack[wurst_stack_depth] = w__wurst_stackPos
	set wurst_stack_depth = wurst_stack_depth + 1
	if BufferSyncListener_typeId[this_1] == 0 then
		if this_1 == 0 then
			call error("Nullpointer exception when calling BufferSyncListener.BufferSyncListener", "when calling error in SyncSimple, line 37")
		else
			call error("Called BufferSyncListener.BufferSyncListener on invalid object.", "when calling error in SyncSimple, line 37")
		endif
	endif
	set wurst_stack[wurst_stack_depth] = "when calling destroyBufferSyncListener in SyncSimple, line 37"
	set wurst_stack_depth = wurst_stack_depth + 1
	set wurst_stack[wurst_stack_depth] = "when calling dealloc_BufferSyncListener in SyncSimple, line 37"
	set wurst_stack_depth = wurst_stack_depth + 1
	if BufferSyncListener_typeId[this_1] == 0 then
		call error("Double free: object of type BufferSyncListener", "when calling error in SyncSimple, line 37")
	else
		set BufferSyncListener_firstFree = BufferSyncListener_firstFree + 1
		set BufferSyncListener_typeId[this_1] = 0
	endif
	set wurst_stack_depth = wurst_stack_depth - 1 - 1 - 1
endfunction

function dispatch_StringSyncListener_destroyStringSyncListener takes integer this_1, string w__wurst_stackPos returns nothing
	set wurst_stack[wurst_stack_depth] = w__wurst_stackPos
	set wurst_stack_depth = wurst_stack_depth + 1
	if StringSyncListener_typeId[this_1] == 0 then
		if this_1 == 0 then
			call error("Nullpointer exception when calling StringSyncListener.StringSyncListener", "when calling error in SyncSimple, line 34")
		else
			call error("Called StringSyncListener.StringSyncListener on invalid object.", "when calling error in SyncSimple, line 34")
		endif
	endif
	set wurst_stack[wurst_stack_depth] = "when calling destroyStringSyncListener in SyncSimple, line 34"
	set wurst_stack_depth = wurst_stack_depth + 1
	set wurst_stack[wurst_stack_depth] = "when calling dealloc_StringSyncListener in SyncSimple, line 34"
	set wurst_stack_depth = wurst_stack_depth + 1
	if StringSyncListener_typeId[this_1] == 0 then
		call error("Double free: object of type StringSyncListener", "when calling error in SyncSimple, line 34")
	else
		set StringSyncListener_firstFree = StringSyncListener_firstFree + 1
		set StringSyncListener_typeId[this_1] = 0
	endif
	set wurst_stack_depth = wurst_stack_depth - 1 - 1 - 1
endfunction

function SyncData_onDestroy takes integer this_1, string w__wurst_stackPos returns nothing
	set wurst_stack[wurst_stack_depth] = w__wurst_stackPos
	set wurst_stack_depth = wurst_stack_depth + 1
	if SyncData_slistener[this_1] != 0 then
		call dispatch_StringSyncListener_destroyStringSyncListener(SyncData_slistener[this_1], "when calling dispatch_StringSyncListener_destroyStringSyncListener in SyncSimple, line 95")
	endif
	if SyncData_blistener[this_1] != 0 then
		call dispatch_BufferSyncListener_destroyBufferSyncListener(SyncData_blistener[this_1], "when calling dispatch_BufferSyncListener_destroyBufferSyncListener in SyncSimple, line 97")
	endif
	if SyncData_buffer[this_1] != 0 then
		set this_1 = SyncData_buffer[this_1]
		set wurst_stack[wurst_stack_depth] = "when calling dispatch_ChunkedString_destroyChunkedString in SyncSimple, line 99"
		set wurst_stack_depth = wurst_stack_depth + 1
		if ChunkedString_typeId[this_1] == 0 then
			if this_1 == 0 then
				call error("Nullpointer exception when calling ChunkedString.ChunkedString", "when calling error in ChunkedString, line 29")
			else
				call error("Called ChunkedString.ChunkedString on invalid object.", "when calling error in ChunkedString, line 29")
			endif
		endif
		call destroyChunkedString(this_1, "when calling destroyChunkedString in ChunkedString, line 29")
		set wurst_stack_depth = wurst_stack_depth - 1
	endif
	set wurst_stack_depth = wurst_stack_depth - 1
endfunction

function dispatch_SyncData_destroySyncData takes integer this_1, string w__wurst_stackPos returns nothing
	set wurst_stack[wurst_stack_depth] = w__wurst_stackPos
	set wurst_stack_depth = wurst_stack_depth + 1
	if SyncData_typeId[this_1] == 0 then
		if this_1 == 0 then
			call error("Nullpointer exception when calling SyncData.SyncData", "when calling error in SyncSimple, line 74")
		else
			call error("Called SyncData.SyncData on invalid object.", "when calling error in SyncSimple, line 74")
		endif
	endif
	set wurst_stack[wurst_stack_depth] = "when calling destroySyncData in SyncSimple, line 74"
	set wurst_stack_depth = wurst_stack_depth + 1
	call SyncData_onDestroy(this_1, "when calling SyncData_onDestroy in SyncSimple, line 93")
	set wurst_stack[wurst_stack_depth] = "when calling dealloc_SyncData in SyncSimple, line 93"
	set wurst_stack_depth = wurst_stack_depth + 1
	if SyncData_typeId[this_1] == 0 then
		call error("Double free: object of type SyncData", "when calling error in SyncSimple, line 74")
	else
		set SyncData_firstFree = SyncData_firstFree + 1
		set SyncData_typeId[this_1] = 0
	endif
	set wurst_stack_depth = wurst_stack_depth - 1 - 1 - 1
endfunction

function ChunkedString_length takes integer this_1, string w__wurst_stackPos returns integer
	set wurst_stack[wurst_stack_depth] = w__wurst_stackPos
	set wurst_stack_depth = wurst_stack_depth + 1
	set this_1 = ChunkedString_chunkCount[this_1] * ChunkedString_chunkSize[this_1] + StringLength(ChunkedString_buffer[this_1])
	set wurst_stack_depth = wurst_stack_depth - 1
	return this_1
endfunction

function onDataSynced_sync_SaveLoadData takes integer this_1, integer syncedBuffer, string w__wurst_stackPos returns nothing
	set wurst_stack[wurst_stack_depth] = w__wurst_stackPos
	set wurst_stack_depth = wurst_stack_depth + 1
	set wurst_stack[wurst_stack_depth] = "when calling length in SaveLoadData, line 80"
	set wurst_stack_depth = wurst_stack_depth + 1
	if ChunkedString_typeId[syncedBuffer] == 0 then
		if syncedBuffer == 0 then
			call error("Nullpointer exception when calling ChunkedString.length", "when calling error in ChunkedString, line 85")
		else
			call error("Called ChunkedString.length on invalid object.", "when calling error in ChunkedString, line 85")
		endif
	endif
	set this_1 = ChunkedString_length(syncedBuffer, "when calling length in ChunkedString, line 85")
	set wurst_stack_depth = wurst_stack_depth - 1
	if this_1 == 0 then
	elseif dispatch_ChunkedString_ChunkedString_ChunkedString_readChunk(syncedBuffer, "when calling readChunk in SaveLoadData, line 82") == "-" then
	else
		set wurst_stack[wurst_stack_depth] = "when calling resetRead in SaveLoadData, line 85"
		set wurst_stack_depth = wurst_stack_depth + 1
		if ChunkedString_typeId[syncedBuffer] == 0 then
			if syncedBuffer == 0 then
				call error("Nullpointer exception when calling ChunkedString.resetRead", "when calling error in ChunkedString, line 68")
			else
				call error("Called ChunkedString.resetRead on invalid object.", "when calling error in ChunkedString, line 68")
			endif
		endif
		set ChunkedString_readIndex[syncedBuffer] = -1
		set wurst_stack_depth = wurst_stack_depth - 1
	endif
	set wurst_stack_depth = wurst_stack_depth - 1
endfunction

function code__addAction_SyncSimple takes string w__wurst_stackPos returns nothing
	local string eventPrefix
	local integer LinkedList_LinkedList_getFirst_result
	local integer this_1
	local integer buffer
	set wurst_stack[wurst_stack_depth] = w__wurst_stackPos
	set wurst_stack_depth = wurst_stack_depth + 1
	set w__wurst_stackPos = BlzGetTriggerSyncData()
	set eventPrefix = BlzGetTriggerSyncPrefix()
	set buffer = SyncSimple_syncQueue
	set wurst_stack[wurst_stack_depth] = "when calling getFirst in SyncSimple, line 129"
	set wurst_stack_depth = wurst_stack_depth + 1
	if LinkedList_typeId[buffer] == 0 then
		if buffer == 0 then
			call error("Nullpointer exception when calling LinkedList.getFirst", "when calling error in LinkedList, line 88")
		else
			call error("Called LinkedList.getFirst on invalid object.", "when calling error in LinkedList, line 88")
		endif
	endif
	set LinkedList_LinkedList_getFirst_result = LLEntry_elem[LLEntry_next[LinkedList_dummy[buffer]]]
	set wurst_stack_depth = wurst_stack_depth - 1
	if SyncData_data[LinkedList_LinkedList_getFirst_result] != null then
		call dispatch_StringSyncListener_SyncSimple_StringSyncListener_onDataSynced(SyncData_slistener[LinkedList_LinkedList_getFirst_result], w__wurst_stackPos, "when calling onDataSynced in SyncSimple, line 131")
		call dispatch_LinkedList_LinkedList_LinkedList_dequeue(SyncSimple_syncQueue, "when calling dequeue in SyncSimple, line 132")
		call dispatch_SyncData_destroySyncData(LinkedList_LinkedList_getFirst_result, "when calling dispatch_SyncData_destroySyncData in SyncSimple, line 133")
	else
		set buffer = SyncData_syncBuffer[LinkedList_LinkedList_getFirst_result]
		set wurst_stack[wurst_stack_depth] = "when calling append in SyncSimple, line 135"
		set wurst_stack_depth = wurst_stack_depth + 1
		if ChunkedString_typeId[buffer] == 0 then
			if buffer == 0 then
				call error("Nullpointer exception when calling ChunkedString.append", "when calling error in ChunkedString, line 41")
			else
				call error("Called ChunkedString.append on invalid object.", "when calling error in ChunkedString, line 41")
			endif
		endif
		call ChunkedString_append(buffer, w__wurst_stackPos, "when calling append in ChunkedString, line 41")
		set wurst_stack_depth = wurst_stack_depth - 1
		if eventPrefix == "T" then
			set this_1 = SyncData_blistener[LinkedList_LinkedList_getFirst_result]
			set buffer = SyncData_syncBuffer[LinkedList_LinkedList_getFirst_result]
			set wurst_stack[wurst_stack_depth] = "when calling onDataSynced in SyncSimple, line 137"
			set wurst_stack_depth = wurst_stack_depth + 1
			if BufferSyncListener_typeId[this_1] == 0 then
				if this_1 == 0 then
					call error("Nullpointer exception when calling BufferSyncListener.onDataSynced", "when calling error in SyncSimple, line 38")
				else
					call error("Called BufferSyncListener.onDataSynced on invalid object.", "when calling error in SyncSimple, line 38")
				endif
			endif
			call onDataSynced_sync_SaveLoadData(this_1, buffer, "when calling onDataSynced_sync_SaveLoadData in SyncSimple, line 38")
			set wurst_stack_depth = wurst_stack_depth - 1
			call dispatch_LinkedList_LinkedList_LinkedList_dequeue(SyncSimple_syncQueue, "when calling dequeue in SyncSimple, line 138")
			call dispatch_SyncData_destroySyncData(LinkedList_LinkedList_getFirst_result, "when calling dispatch_SyncData_destroySyncData in SyncSimple, line 139")
		endif
	endif
	if GameStatus_gameStatus != 3 then
		call checkQueue("when calling checkQueue in SyncSimple, line 142")
	endif
	set wurst_stack_depth = wurst_stack_depth - 1
endfunction

function bridge_code__addAction_SyncSimple takes nothing returns nothing
	set wurst_stack_depth = 0
	call code__addAction_SyncSimple("via function reference SyncSimple, line 126")
endfunction

function bridge_code__addAction_nullTimer_ClosureEvents takes nothing returns nothing
	set wurst_stack_depth = 0
	set wurst_stack[wurst_stack_depth] = "via function reference ClosureEvents, line 299"
	set wurst_stack_depth = wurst_stack_depth + 1
	call EventListener_generalEventCallback("when calling generalEventCallback in ClosureEvents, line 299")
	set wurst_stack_depth = wurst_stack_depth - 1
endfunction

function bridge_code__addAction_nullTimer_ClosureEvents_220 takes nothing returns nothing
	set wurst_stack_depth = 0
	set wurst_stack[wurst_stack_depth] = "via function reference ClosureEvents, line 300"
	set wurst_stack_depth = wurst_stack_depth + 1
	call EventListener_generalEventCallback("when calling generalEventCallback in ClosureEvents, line 300")
	set wurst_stack_depth = wurst_stack_depth - 1
endfunction

function bridge_code__addAction_nullTimer_ClosureEvents_221 takes nothing returns nothing
	set wurst_stack_depth = 0
	set wurst_stack[wurst_stack_depth] = "via function reference ClosureEvents, line 301"
	set wurst_stack_depth = wurst_stack_depth + 1
	call EventListener_generalEventCallback("when calling generalEventCallback in ClosureEvents, line 301")
	set wurst_stack_depth = wurst_stack_depth - 1
endfunction

function construct_UnitIndex takes integer this_1, unit whichUnit returns nothing
	set UnitIndex__unit[this_1] = whichUnit
	call SetUnitUserData(UnitIndex__unit[this_1], this_1)
	set UnitIndexer_tempUnits[UnitIndexer_tempUnitsCount] = whichUnit
	set UnitIndexer_tempUnitsCount = UnitIndexer_tempUnitsCount + 1
	call TriggerEvaluate(UnitIndexer_onIndexTrigger)
	set UnitIndexer_tempUnitsCount = UnitIndexer_tempUnitsCount - 1
endfunction

function new_UnitIndex takes unit whichUnit, string w__wurst_stackPos returns integer
	local integer this_1
	set wurst_stack[wurst_stack_depth] = w__wurst_stackPos
	set wurst_stack_depth = wurst_stack_depth + 1
	set wurst_stack[wurst_stack_depth] = "when calling alloc_UnitIndex in UnitIndexer, line 181"
	set wurst_stack_depth = wurst_stack_depth + 1
	if UnitIndex_firstFree == 0 then
		if UnitIndex_maxIndex < 32768 then
			set UnitIndex_maxIndex = UnitIndex_maxIndex + 1
			set this_1 = UnitIndex_maxIndex
			set UnitIndex_typeId[this_1] = 4310
		else
			call error("Out of memory: Could not create UnitIndex.", "when calling error in UnitIndexer, line 172")
			set this_1 = 0
		endif
	else
		set UnitIndex_firstFree = UnitIndex_firstFree - 1
		set this_1 = UnitIndex_nextFree[UnitIndex_firstFree]
		set UnitIndex_typeId[this_1] = 4310
	endif
	set wurst_stack_depth = wurst_stack_depth - 1
	call construct_UnitIndex(this_1, whichUnit)
	set wurst_stack_depth = wurst_stack_depth - 1
	return this_1
endfunction

function code__onEnter_UnitIndexer takes string w__wurst_stackPos returns nothing
	local unit this_1
	set wurst_stack[wurst_stack_depth] = w__wurst_stackPos
	set wurst_stack_depth = wurst_stack_depth + 1
	set this_1 = OnUnitEnterLeave_tempUnits[OnUnitEnterLeave_tempUnitsCount - 1]
	set wurst_stack[wurst_stack_depth] = "when calling toUnitIndex in UnitIndexer, line 196"
	set wurst_stack_depth = wurst_stack_depth + 1
	if GetUnitUserData(this_1) == 0 then
		call new_UnitIndex(this_1, "when calling new_UnitIndex in UnitIndexer, line 135")
	endif
	set wurst_stack_depth = wurst_stack_depth - 1 - 1
endfunction

function bridge_code__onEnter_UnitIndexer takes nothing returns nothing
	set wurst_stack_depth = 0
	call code__onEnter_UnitIndexer("via function reference UnitIndexer, line 196")
endfunction

function UnitIndex_onDestroy takes integer this_1 returns nothing
	set UnitIndexer_tempUnits[UnitIndexer_tempUnitsCount] = UnitIndex__unit[this_1]
	set UnitIndexer_tempUnitsCount = UnitIndexer_tempUnitsCount + 1
	call TriggerEvaluate(UnitIndexer_onDeindexTrigger)
	set UnitIndexer_tempUnitsCount = UnitIndexer_tempUnitsCount - 1
	call SetUnitUserData(UnitIndex__unit[this_1], 0)
endfunction

function dispatch_UnitIndex_destroyUnitIndex takes integer this_1, string w__wurst_stackPos returns nothing
	set wurst_stack[wurst_stack_depth] = w__wurst_stackPos
	set wurst_stack_depth = wurst_stack_depth + 1
	if UnitIndex_typeId[this_1] == 0 then
		if this_1 == 0 then
			call error("Nullpointer exception when calling UnitIndex.UnitIndex", "when calling error in UnitIndexer, line 172")
		else
			call error("Called UnitIndex.UnitIndex on invalid object.", "when calling error in UnitIndexer, line 172")
		endif
	endif
	set wurst_stack[wurst_stack_depth] = "when calling destroyUnitIndex in UnitIndexer, line 172"
	set wurst_stack_depth = wurst_stack_depth + 1
	call UnitIndex_onDestroy(this_1)
	set wurst_stack[wurst_stack_depth] = "when calling dealloc_UnitIndex in UnitIndexer, line 188"
	set wurst_stack_depth = wurst_stack_depth + 1
	if UnitIndex_typeId[this_1] == 0 then
		call error("Double free: object of type UnitIndex", "when calling error in UnitIndexer, line 172")
	else
		set UnitIndex_nextFree[UnitIndex_firstFree] = this_1
		set UnitIndex_firstFree = UnitIndex_firstFree + 1
		set UnitIndex_typeId[this_1] = 0
	endif
	set wurst_stack_depth = wurst_stack_depth - 1 - 1 - 1
endfunction

function unit_deindex takes unit this_1, string w__wurst_stackPos returns boolean
	local integer instance_1
	set wurst_stack[wurst_stack_depth] = w__wurst_stackPos
	set wurst_stack_depth = wurst_stack_depth + 1
	if GetUnitUserData(this_1) == 0 then
		set wurst_stack_depth = wurst_stack_depth - 1
		return false
	else
		set wurst_stack[wurst_stack_depth] = "when calling toUnitIndex in UnitIndexer, line 169"
		set wurst_stack_depth = wurst_stack_depth + 1
		set instance_1 = GetUnitUserData(this_1)
		if instance_1 == 0 then
			set instance_1 = new_UnitIndex(this_1, "when calling new_UnitIndex in UnitIndexer, line 135")
		endif
		set wurst_stack_depth = wurst_stack_depth - 1
		call dispatch_UnitIndex_destroyUnitIndex(instance_1, "when calling dispatch_UnitIndex_destroyUnitIndex in UnitIndexer, line 169")
		set wurst_stack_depth = wurst_stack_depth - 1
		return true
	endif
endfunction

function code__onLeave_UnitIndexer takes string w__wurst_stackPos returns nothing
	set wurst_stack[wurst_stack_depth] = w__wurst_stackPos
	set wurst_stack_depth = wurst_stack_depth + 1
	call unit_deindex(OnUnitEnterLeave_tempUnits[OnUnitEnterLeave_tempUnitsCount - 1], "when calling deindex in UnitIndexer, line 197")
	set wurst_stack_depth = wurst_stack_depth - 1
endfunction

function bridge_code__onLeave_UnitIndexer takes nothing returns nothing
	set wurst_stack_depth = 0
	call code__onLeave_UnitIndexer("via function reference UnitIndexer, line 197")
endfunction

function dispatch_HashMap_HashMap_HashMap_get takes integer this_1, integer key, string w__wurst_stackPos returns integer
	local integer parentKey
	set wurst_stack[wurst_stack_depth] = w__wurst_stackPos
	set wurst_stack_depth = wurst_stack_depth + 1
	if Table_typeId[this_1] == 0 then
		if this_1 == 0 then
			call error("Nullpointer exception when calling HashMap.get", "when calling error in HashMap, line 23")
		else
			call error("Called HashMap.get on invalid object.", "when calling error in HashMap, line 23")
		endif
	endif
	set wurst_stack[wurst_stack_depth] = "when calling get in HashMap, line 23"
	set wurst_stack_depth = wurst_stack_depth + 1
	set parentKey = key
	set wurst_stack[wurst_stack_depth] = "when calling loadInt in HashMap, line 24"
	set wurst_stack_depth = wurst_stack_depth + 1
	if Table_typeId[this_1] == 0 then
		if this_1 == 0 then
			call error("Nullpointer exception when calling Table.loadInt", "when calling error in Table, line 40")
		else
			call error("Called Table.loadInt on invalid object.", "when calling error in Table, line 40")
		endif
	endif
	set this_1 = LoadInteger(Table_ht, this_1, parentKey)
	set wurst_stack_depth = wurst_stack_depth - 1
	set key = this_1
	set wurst_stack_depth = wurst_stack_depth - 1 - 1
	return key
endfunction

function dispatch_HashMap_HashMap_HashMap_has takes integer this_1, integer key, string w__wurst_stackPos returns boolean
	local integer parentKey
	local boolean Table_Table_hasInt_result
	set wurst_stack[wurst_stack_depth] = w__wurst_stackPos
	set wurst_stack_depth = wurst_stack_depth + 1
	if Table_typeId[this_1] == 0 then
		if this_1 == 0 then
			call error("Nullpointer exception when calling HashMap.has", "when calling error in HashMap, line 13")
		else
			call error("Called HashMap.has on invalid object.", "when calling error in HashMap, line 13")
		endif
	endif
	set wurst_stack[wurst_stack_depth] = "when calling has in HashMap, line 13"
	set wurst_stack_depth = wurst_stack_depth + 1
	set parentKey = key
	set wurst_stack[wurst_stack_depth] = "when calling hasInt in HashMap, line 14"
	set wurst_stack_depth = wurst_stack_depth + 1
	if Table_typeId[this_1] == 0 then
		if this_1 == 0 then
			call error("Nullpointer exception when calling Table.hasInt", "when calling error in Table, line 10")
		else
			call error("Called Table.hasInt on invalid object.", "when calling error in Table, line 10")
		endif
	endif
	set Table_Table_hasInt_result = HaveSavedInteger(Table_ht, this_1, parentKey)
	set wurst_stack_depth = wurst_stack_depth - 1 - 1 - 1
	return Table_Table_hasInt_result
endfunction

function HashMap_put takes integer this_1, integer key, integer value, string w__wurst_stackPos returns nothing
	local integer parentKey
	local integer value_1
	set wurst_stack[wurst_stack_depth] = w__wurst_stackPos
	set wurst_stack_depth = wurst_stack_depth + 1
	if  not dispatch_HashMap_HashMap_HashMap_has(this_1, key, "when calling has in HashMap, line 18") then
		set HashMap_size[this_1] = HashMap_size[this_1] + 1
	endif
	set parentKey = key
	set value_1 = value
	set wurst_stack[wurst_stack_depth] = "when calling saveInt in HashMap, line 20"
	set wurst_stack_depth = wurst_stack_depth + 1
	if Table_typeId[this_1] == 0 then
		if this_1 == 0 then
			call error("Nullpointer exception when calling Table.saveInt", "when calling error in Table, line 43")
		else
			call error("Called Table.saveInt on invalid object.", "when calling error in Table, line 43")
		endif
	endif
	call SaveInteger(Table_ht, this_1, parentKey, value_1)
	set wurst_stack_depth = wurst_stack_depth - 1 - 1
endfunction

function HashList_incrOccurences takes integer this_1, integer elem, string w__wurst_stackPos returns nothing
	local hashtable this_2
	local integer parentKey
	local integer childKey
	set wurst_stack[wurst_stack_depth] = w__wurst_stackPos
	set wurst_stack_depth = wurst_stack_depth + 1
	set this_2 = HashList_occurences
	set parentKey = this_1
	set childKey = elem
	set wurst_stack[wurst_stack_depth] = "when calling count in HashList, line 35"
	set wurst_stack_depth = wurst_stack_depth + 1
	if HashList_typeId[this_1] == 0 then
		if this_1 == 0 then
			call error("Nullpointer exception when calling HashList.count", "when calling error in HashList, line 28")
		else
			call error("Called HashList.count on invalid object.", "when calling error in HashList, line 28")
		endif
	endif
	set this_1 = LoadInteger(HashList_occurences, this_1, elem)
	set wurst_stack_depth = wurst_stack_depth - 1
	call SaveInteger(this_2, parentKey, childKey, this_1 + 1)
	set wurst_stack_depth = wurst_stack_depth - 1
endfunction

function HashList_add_1 takes integer this_1, integer elems_0, string w__wurst_stackPos returns nothing
	set wurst_stack[wurst_stack_depth] = w__wurst_stackPos
	set wurst_stack_depth = wurst_stack_depth + 1
	call SaveInteger(HashList_ht, this_1, HashList_size[this_1], elems_0)
	set wurst_stack[wurst_stack_depth] = "when calling incrOccurences in HashList, line 44"
	set wurst_stack_depth = wurst_stack_depth + 1
	if HashList_typeId[this_1] == 0 then
		if this_1 == 0 then
			call error("Nullpointer exception when calling HashList.incrOccurences", "when calling error in HashList, line 34")
		else
			call error("Called HashList.incrOccurences on invalid object.", "when calling error in HashList, line 34")
		endif
	endif
	call HashList_incrOccurences(this_1, elems_0, "when calling incrOccurences in HashList, line 34")
	set wurst_stack_depth = wurst_stack_depth - 1
	set HashList_size[this_1] = HashList_size[this_1] + 1
	set wurst_stack_depth = wurst_stack_depth - 1
endfunction

function HashSet_add_1 takes integer this_1, integer elems_0, string w__wurst_stackPos returns nothing
	local hashtable this_2
	local integer parentKey
	local integer childKey
	local integer HashList_HashList_size_result
	set wurst_stack[wurst_stack_depth] = w__wurst_stackPos
	set wurst_stack_depth = wurst_stack_depth + 1
	set wurst_stack[wurst_stack_depth] = "when calling count in HashSet, line 11"
	set wurst_stack_depth = wurst_stack_depth + 1
	if HashList_typeId[this_1] == 0 then
		if this_1 == 0 then
			call error("Nullpointer exception when calling HashList.count", "when calling error in HashList, line 28")
		else
			call error("Called HashList.count on invalid object.", "when calling error in HashList, line 28")
		endif
	endif
	set parentKey = LoadInteger(HashList_occurences, this_1, elems_0)
	set wurst_stack_depth = wurst_stack_depth - 1
	if parentKey <= 0 then
		set this_2 = HashSet_position
		set parentKey = this_1
		set childKey = elems_0
		set wurst_stack[wurst_stack_depth] = "when calling size in HashSet, line 12"
		set wurst_stack_depth = wurst_stack_depth + 1
		if HashList_typeId[this_1] == 0 then
			if this_1 == 0 then
				call error("Nullpointer exception when calling HashList.size", "when calling error in HashList, line 96")
			else
				call error("Called HashList.size on invalid object.", "when calling error in HashList, line 96")
			endif
		endif
		set HashList_HashList_size_result = HashList_size[this_1]
		set wurst_stack_depth = wurst_stack_depth - 1
		call SaveInteger(this_2, parentKey, childKey, HashList_HashList_size_result)
		call HashList_add_1(this_1, elems_0, "when calling add in HashSet, line 13")
	endif
	set wurst_stack_depth = wurst_stack_depth - 1
endfunction

function dispatch_HashList_HashList_HashList_add_1 takes integer this_1, integer elems_0, string w__wurst_stackPos returns nothing
	set wurst_stack[wurst_stack_depth] = w__wurst_stackPos
	set wurst_stack_depth = wurst_stack_depth + 1
	if HashList_typeId[this_1] == 0 then
		if this_1 == 0 then
			call error("Nullpointer exception when calling HashList.add", "when calling error in HashList, line 41")
		else
			call error("Called HashList.add on invalid object.", "when calling error in HashList, line 41")
		endif
	endif
	if HashList_typeId[this_1] <= 2302 then
		call HashList_add_1(this_1, elems_0, "when calling add in HashList, line 41")
	else
		call HashSet_add_1(this_1, elems_0, "when calling add in HashList, line 41")
	endif
	set wurst_stack_depth = wurst_stack_depth - 1
endfunction

function dispatch_HashList_HashList_HashList_has takes integer this_1, integer elem, string w__wurst_stackPos returns boolean
	set wurst_stack[wurst_stack_depth] = w__wurst_stackPos
	set wurst_stack_depth = wurst_stack_depth + 1
	if HashList_typeId[this_1] == 0 then
		if this_1 == 0 then
			call error("Nullpointer exception when calling HashList.has", "when calling error in HashList, line 108")
		else
			call error("Called HashList.has on invalid object.", "when calling error in HashList, line 108")
		endif
	endif
	set wurst_stack[wurst_stack_depth] = "when calling has in HashList, line 108"
	set wurst_stack_depth = wurst_stack_depth + 1
	set wurst_stack[wurst_stack_depth] = "when calling count in HashList, line 109"
	set wurst_stack_depth = wurst_stack_depth + 1
	if HashList_typeId[this_1] == 0 then
		if this_1 == 0 then
			call error("Nullpointer exception when calling HashList.count", "when calling error in HashList, line 28")
		else
			call error("Called HashList.count on invalid object.", "when calling error in HashList, line 28")
		endif
	endif
	set this_1 = LoadInteger(HashList_occurences, this_1, elem)
	set wurst_stack_depth = wurst_stack_depth - 1
	set wurst_stack_depth = wurst_stack_depth - 1 - 1
	return this_1 > 0
endfunction

function IterableMap_put takes integer this_1, integer key, integer value, string w__wurst_stackPos returns nothing
	local boolean stackTrace_tempReturn
	set wurst_stack[wurst_stack_depth] = w__wurst_stackPos
	set wurst_stack_depth = wurst_stack_depth + 1
	call HashMap_put(this_1, key, value, "when calling put in HashMap, line 60")
	set wurst_stack[wurst_stack_depth] = "when calling hasKey in HashMap, line 61"
	set wurst_stack_depth = wurst_stack_depth + 1
	if Table_typeId[this_1] == 0 then
		if this_1 == 0 then
			call error("Nullpointer exception when calling IterableMap.hasKey", "when calling error in HashMap, line 87")
		else
			call error("Called IterableMap.hasKey on invalid object.", "when calling error in HashMap, line 87")
		endif
	endif
	set wurst_stack[wurst_stack_depth] = "when calling hasKey in HashMap, line 87"
	set wurst_stack_depth = wurst_stack_depth + 1
	set stackTrace_tempReturn = dispatch_HashList_HashList_HashList_has(IterableMap_keys[this_1], key, "when calling has in HashMap, line 88")
	set wurst_stack_depth = wurst_stack_depth - 1 - 1
	if  not stackTrace_tempReturn then
		call dispatch_HashList_HashList_HashList_add_1(IterableMap_keys[this_1], key, "when calling add in HashMap, line 62")
	endif
	set wurst_stack_depth = wurst_stack_depth - 1
endfunction

function dispatch_HashMap_HashMap_HashMap_put takes integer this_1, integer key, integer value, string w__wurst_stackPos returns nothing
	set wurst_stack[wurst_stack_depth] = w__wurst_stackPos
	set wurst_stack_depth = wurst_stack_depth + 1
	if Table_typeId[this_1] == 0 then
		if this_1 == 0 then
			call error("Nullpointer exception when calling HashMap.put", "when calling error in HashMap, line 17")
		else
			call error("Called HashMap.put on invalid object.", "when calling error in HashMap, line 17")
		endif
	endif
	if Table_typeId[this_1] <= 4108 then
		call HashMap_put(this_1, key, value, "when calling put in HashMap, line 17")
	else
		call IterableMap_put(this_1, key, value, "when calling put in HashMap, line 17")
	endif
	set wurst_stack_depth = wurst_stack_depth - 1
endfunction

function HashMap_remove takes integer this_1, integer key, string w__wurst_stackPos returns nothing
	local integer parentKey
	set wurst_stack[wurst_stack_depth] = w__wurst_stackPos
	set wurst_stack_depth = wurst_stack_depth + 1
	if dispatch_HashMap_HashMap_HashMap_has(this_1, key, "when calling has in HashMap, line 28") then
		set HashMap_size[this_1] = HashMap_size[this_1] - 1
	endif
	set parentKey = key
	set wurst_stack[wurst_stack_depth] = "when calling removeInt in HashMap, line 30"
	set wurst_stack_depth = wurst_stack_depth + 1
	if Table_typeId[this_1] == 0 then
		if this_1 == 0 then
			call error("Nullpointer exception when calling Table.removeInt", "when calling error in Table, line 25")
		else
			call error("Called Table.removeInt on invalid object.", "when calling error in Table, line 25")
		endif
	endif
	call RemoveSavedInteger(Table_ht, this_1, parentKey)
	set wurst_stack_depth = wurst_stack_depth - 1 - 1
endfunction

function HashList_decrOccurences takes integer this_1, integer elem, string w__wurst_stackPos returns nothing
	local hashtable this_2
	local integer parentKey
	local integer childKey
	set wurst_stack[wurst_stack_depth] = w__wurst_stackPos
	set wurst_stack_depth = wurst_stack_depth + 1
	set this_2 = HashList_occurences
	set parentKey = this_1
	set childKey = elem
	set wurst_stack[wurst_stack_depth] = "when calling count in HashList, line 38"
	set wurst_stack_depth = wurst_stack_depth + 1
	if HashList_typeId[this_1] == 0 then
		if this_1 == 0 then
			call error("Nullpointer exception when calling HashList.count", "when calling error in HashList, line 28")
		else
			call error("Called HashList.count on invalid object.", "when calling error in HashList, line 28")
		endif
	endif
	set this_1 = LoadInteger(HashList_occurences, this_1, elem)
	set wurst_stack_depth = wurst_stack_depth - 1
	call SaveInteger(this_2, parentKey, childKey, this_1 - 1)
	set wurst_stack_depth = wurst_stack_depth - 1
endfunction

function HashList_removeAt takes integer this_1, integer index, string w__wurst_stackPos returns integer
	local integer tmp
	local integer temp
	set wurst_stack[wurst_stack_depth] = w__wurst_stackPos
	set wurst_stack_depth = wurst_stack_depth + 1
	set tmp = LoadInteger(HashList_ht, this_1, index)
	set wurst_stack[wurst_stack_depth] = "when calling decrOccurences in HashList, line 77"
	set wurst_stack_depth = wurst_stack_depth + 1
	if HashList_typeId[this_1] == 0 then
		if this_1 == 0 then
			call error("Nullpointer exception when calling HashList.decrOccurences", "when calling error in HashList, line 37")
		else
			call error("Called HashList.decrOccurences on invalid object.", "when calling error in HashList, line 37")
		endif
	endif
	call HashList_decrOccurences(this_1, tmp, "when calling decrOccurences in HashList, line 37")
	set wurst_stack_depth = wurst_stack_depth - 1
	set tmp = LoadInteger(HashList_ht, this_1, index)
	set temp = HashList_size[this_1]
	loop
		exitwhen index > temp
		call SaveInteger(HashList_ht, this_1, index, LoadInteger(HashList_ht, this_1, index + 1))
		set index = index + 1
	endloop
	set HashList_size[this_1] = HashList_size[this_1] - 1
	set wurst_stack_depth = wurst_stack_depth - 1
	return tmp
endfunction

function HashSet_removeAt takes integer this_1, integer index, string w__wurst_stackPos returns integer
	local integer i
	local integer temp
	local hashtable this_2
	local integer parentKey
	local integer childKey
	local hashtable this_3
	local integer parentKey_1
	local integer HashList_HashList_get_result
	set wurst_stack[wurst_stack_depth] = w__wurst_stackPos
	set wurst_stack_depth = wurst_stack_depth + 1
	set this_3 = HashSet_position
	set i = this_1
	set wurst_stack[wurst_stack_depth] = "when calling get in HashSet, line 25"
	set wurst_stack_depth = wurst_stack_depth + 1
	if HashList_typeId[this_1] == 0 then
		if this_1 == 0 then
			call error("Nullpointer exception when calling HashList.get", "when calling error in HashList, line 104")
		else
			call error("Called HashList.get on invalid object.", "when calling error in HashList, line 104")
		endif
	endif
	set HashList_HashList_get_result = LoadInteger(HashList_ht, this_1, index)
	set wurst_stack_depth = wurst_stack_depth - 1
	call RemoveSavedInteger(this_3, i, HashList_HashList_get_result)
	set i = index + 1
	set wurst_stack[wurst_stack_depth] = "when calling size in HashSet, line 26"
	set wurst_stack_depth = wurst_stack_depth + 1
	if HashList_typeId[this_1] == 0 then
		if this_1 == 0 then
			call error("Nullpointer exception when calling HashList.size", "when calling error in HashList, line 96")
		else
			call error("Called HashList.size on invalid object.", "when calling error in HashList, line 96")
		endif
	endif
	set temp = HashList_size[this_1]
	set wurst_stack_depth = wurst_stack_depth - 1
	loop
		exitwhen i > temp
		set this_2 = HashSet_position
		set parentKey = this_1
		set wurst_stack[wurst_stack_depth] = "when calling get in HashSet, line 27"
		set wurst_stack_depth = wurst_stack_depth + 1
		if HashList_typeId[this_1] == 0 then
			if this_1 == 0 then
				call error("Nullpointer exception when calling HashList.get", "when calling error in HashList, line 104")
			else
				call error("Called HashList.get on invalid object.", "when calling error in HashList, line 104")
			endif
		endif
		set HashList_HashList_get_result = LoadInteger(HashList_ht, this_1, i)
		set wurst_stack_depth = wurst_stack_depth - 1
		set childKey = HashList_HashList_get_result
		set this_3 = HashSet_position
		set parentKey_1 = this_1
		set wurst_stack[wurst_stack_depth] = "when calling get in HashSet, line 27"
		set wurst_stack_depth = wurst_stack_depth + 1
		if HashList_typeId[this_1] == 0 then
			if this_1 == 0 then
				call error("Nullpointer exception when calling HashList.get", "when calling error in HashList, line 104")
			else
				call error("Called HashList.get on invalid object.", "when calling error in HashList, line 104")
			endif
		endif
		set HashList_HashList_get_result = LoadInteger(HashList_ht, this_1, i)
		set wurst_stack_depth = wurst_stack_depth - 1
		call SaveInteger(this_2, parentKey, childKey, LoadInteger(this_3, parentKey_1, HashList_HashList_get_result) - 1)
		set i = i + 1
	endloop
	set HashList_HashList_get_result = HashList_removeAt(this_1, index, "when calling removeAt in HashSet, line 28")
	set wurst_stack_depth = wurst_stack_depth - 1
	return HashList_HashList_get_result
endfunction

function HashSet_remove takes integer this_1, integer elem, string w__wurst_stackPos returns boolean
	local boolean result_1
	local integer HashList_HashList_count_result
	set wurst_stack[wurst_stack_depth] = w__wurst_stackPos
	set wurst_stack_depth = wurst_stack_depth + 1
	set result_1 = false
	set wurst_stack[wurst_stack_depth] = "when calling count in HashSet, line 18"
	set wurst_stack_depth = wurst_stack_depth + 1
	if HashList_typeId[this_1] == 0 then
		if this_1 == 0 then
			call error("Nullpointer exception when calling HashList.count", "when calling error in HashList, line 28")
		else
			call error("Called HashList.count on invalid object.", "when calling error in HashList, line 28")
		endif
	endif
	set HashList_HashList_count_result = LoadInteger(HashList_occurences, this_1, elem)
	set wurst_stack_depth = wurst_stack_depth - 1
	if HashList_HashList_count_result > 0 then
		set HashList_HashList_count_result = LoadInteger(HashSet_position, this_1, elem)
		set wurst_stack[wurst_stack_depth] = "when calling removeAt in HashSet, line 19"
		set wurst_stack_depth = wurst_stack_depth + 1
		if HashList_typeId[this_1] == 0 then
			if this_1 == 0 then
				call error("Nullpointer exception when calling HashSet.removeAt", "when calling error in HashSet, line 24")
			else
				call error("Called HashSet.removeAt on invalid object.", "when calling error in HashSet, line 24")
			endif
		endif
		call HashSet_removeAt(this_1, HashList_HashList_count_result, "when calling removeAt in HashSet, line 24")
		set wurst_stack_depth = wurst_stack_depth - 1
		set result_1 = true
	endif
	set wurst_stack_depth = wurst_stack_depth - 1
	return result_1
endfunction

function dispatch_HashList_HashList_HashList_removeAt takes integer this_1, integer index, string w__wurst_stackPos returns integer
	local integer HashList_HashList_removeAt_result
	set wurst_stack[wurst_stack_depth] = w__wurst_stackPos
	set wurst_stack_depth = wurst_stack_depth + 1
	if HashList_typeId[this_1] == 0 then
		if this_1 == 0 then
			call error("Nullpointer exception when calling HashList.removeAt", "when calling error in HashList, line 76")
		else
			call error("Called HashList.removeAt on invalid object.", "when calling error in HashList, line 76")
		endif
	endif
	if HashList_typeId[this_1] <= 2302 then
		set HashList_HashList_removeAt_result = HashList_removeAt(this_1, index, "when calling removeAt in HashList, line 76")
	else
		set HashList_HashList_removeAt_result = HashSet_removeAt(this_1, index, "when calling removeAt in HashList, line 76")
	endif
	set wurst_stack_depth = wurst_stack_depth - 1
	return HashList_HashList_removeAt_result
endfunction

function dispatch_HashList_HashList_HashList_remove takes integer this_1, integer t, string w__wurst_stackPos returns boolean
	local integer this_2
	local boolean result_1
	local integer i
	set wurst_stack[wurst_stack_depth] = w__wurst_stackPos
	set wurst_stack_depth = wurst_stack_depth + 1
	if HashList_typeId[this_1] == 0 then
		if this_1 == 0 then
			call error("Nullpointer exception when calling HashList.remove", "when calling error in HashList, line 86")
		else
			call error("Called HashList.remove on invalid object.", "when calling error in HashList, line 86")
		endif
	endif
	if HashList_typeId[this_1] <= 2302 then
		set this_2 = this_1
		set wurst_stack[wurst_stack_depth] = "when calling remove in HashList, line 86"
		set wurst_stack_depth = wurst_stack_depth + 1
		set result_1 = false
		set i = 0
		set this_1 = HashList_size[this_1] - 1
		loop
			exitwhen i > this_1
			if t == LoadInteger(HashList_ht, this_2, i) then
				set result_1 = true
				call dispatch_HashList_HashList_HashList_removeAt(this_2, i, "when calling removeAt in HashList, line 91")
				exitwhen true
			endif
			set i = i + 1
		endloop
		set wurst_stack_depth = wurst_stack_depth - 1
	else
		set result_1 = HashSet_remove(this_1, t, "when calling remove in HashList, line 86")
	endif
	set wurst_stack_depth = wurst_stack_depth - 1
	return result_1
endfunction

function IterableMap_remove takes integer this_1, integer key, string w__wurst_stackPos returns nothing
	local boolean stackTrace_tempReturn
	set wurst_stack[wurst_stack_depth] = w__wurst_stackPos
	set wurst_stack_depth = wurst_stack_depth + 1
	call HashMap_remove(this_1, key, "when calling remove in HashMap, line 66")
	set wurst_stack[wurst_stack_depth] = "when calling hasKey in HashMap, line 67"
	set wurst_stack_depth = wurst_stack_depth + 1
	if Table_typeId[this_1] == 0 then
		if this_1 == 0 then
			call error("Nullpointer exception when calling IterableMap.hasKey", "when calling error in HashMap, line 87")
		else
			call error("Called IterableMap.hasKey on invalid object.", "when calling error in HashMap, line 87")
		endif
	endif
	set wurst_stack[wurst_stack_depth] = "when calling hasKey in HashMap, line 87"
	set wurst_stack_depth = wurst_stack_depth + 1
	set stackTrace_tempReturn = dispatch_HashList_HashList_HashList_has(IterableMap_keys[this_1], key, "when calling has in HashMap, line 88")
	set wurst_stack_depth = wurst_stack_depth - 1 - 1
	if stackTrace_tempReturn then
		call dispatch_HashList_HashList_HashList_remove(IterableMap_keys[this_1], key, "when calling remove in HashMap, line 68")
	endif
	set wurst_stack_depth = wurst_stack_depth - 1
endfunction

function dispatch_HashMap_HashMap_HashMap_remove takes integer this_1, integer key, string w__wurst_stackPos returns nothing
	set wurst_stack[wurst_stack_depth] = w__wurst_stackPos
	set wurst_stack_depth = wurst_stack_depth + 1
	if Table_typeId[this_1] == 0 then
		if this_1 == 0 then
			call error("Nullpointer exception when calling HashMap.remove", "when calling error in HashMap, line 27")
		else
			call error("Called HashMap.remove on invalid object.", "when calling error in HashMap, line 27")
		endif
	endif
	if Table_typeId[this_1] <= 4108 then
		call HashMap_remove(this_1, key, "when calling remove in HashMap, line 27")
	else
		call IterableMap_remove(this_1, key, "when calling remove in HashMap, line 27")
	endif
	set wurst_stack_depth = wurst_stack_depth - 1
endfunction

function OnCastListener_onDestroy takes integer this_1, string w__wurst_stackPos returns nothing
	local integer index
	set wurst_stack[wurst_stack_depth] = w__wurst_stackPos
	set wurst_stack_depth = wurst_stack_depth + 1
	if OnCastListener_eventUnit[this_1] != null then
		set index = GetUnitUserData(OnCastListener_eventUnit[this_1])
		if EventListener_castMapCasters[index] == this_1 then
			if OnCastListener_next[this_1] != 0 then
				set EventListener_castMapCasters[index] = OnCastListener_next[this_1]
			else
				set EventListener_castMapCasters[index] = 0
			endif
		elseif OnCastListener_prev[this_1] != 0 then
			set OnCastListener_next[OnCastListener_prev[this_1]] = OnCastListener_next[this_1]
		endif
	elseif dispatch_HashMap_HashMap_HashMap_get(EventListener_castMap, OnCastListener_abilId[this_1], "when calling get in ClosureEvents, line 70") == this_1 then
		if OnCastListener_next[this_1] != 0 then
			call dispatch_HashMap_HashMap_HashMap_put(EventListener_castMap, OnCastListener_abilId[this_1], OnCastListener_next[this_1], "when calling put in ClosureEvents, line 73")
		else
			call dispatch_HashMap_HashMap_HashMap_remove(EventListener_castMap, OnCastListener_abilId[this_1], "when calling remove in ClosureEvents, line 75")
		endif
	elseif OnCastListener_prev[this_1] != 0 then
		set OnCastListener_next[OnCastListener_prev[this_1]] = OnCastListener_next[this_1]
	endif
	set OnCastListener_prev[OnCastListener_next[this_1]] = OnCastListener_prev[this_1]
	set OnCastListener_next[this_1] = 0
	set OnCastListener_prev[this_1] = 0
	set wurst_stack_depth = wurst_stack_depth - 1
endfunction

function dispatch_OnCastListener_destroyOnCastListener takes integer this_1, string w__wurst_stackPos returns nothing
	set wurst_stack[wurst_stack_depth] = w__wurst_stackPos
	set wurst_stack_depth = wurst_stack_depth + 1
	if OnCastListener_typeId[this_1] == 0 then
		if this_1 == 0 then
			call error("Nullpointer exception when calling OnCastListener.OnCastListener", "when calling error in ClosureEvents, line 50")
		else
			call error("Called OnCastListener.OnCastListener on invalid object.", "when calling error in ClosureEvents, line 50")
		endif
	endif
	set wurst_stack[wurst_stack_depth] = "when calling destroyOnCastListener in ClosureEvents, line 50"
	set wurst_stack_depth = wurst_stack_depth + 1
	call OnCastListener_onDestroy(this_1, "when calling OnCastListener_onDestroy in ClosureEvents, line 58")
	set wurst_stack[wurst_stack_depth] = "when calling dealloc_OnCastListener in ClosureEvents, line 58"
	set wurst_stack_depth = wurst_stack_depth + 1
	if OnCastListener_typeId[this_1] == 0 then
		call error("Double free: object of type OnCastListener", "when calling error in ClosureEvents, line 50")
	else
		set OnCastListener_firstFree = OnCastListener_firstFree + 1
		set OnCastListener_typeId[this_1] = 0
	endif
	set wurst_stack_depth = wurst_stack_depth - 1 - 1 - 1
endfunction

function destroyEventListener takes integer this_1, string w__wurst_stackPos returns nothing
	set wurst_stack[wurst_stack_depth] = w__wurst_stackPos
	set wurst_stack_depth = wurst_stack_depth + 1
	if EventListener_uid[this_1] < 0 then
		if EventListener_generalListenersFirsts[EventListener_eventId[this_1]] == this_1 then
			set EventListener_generalListenersFirsts[EventListener_eventId[this_1]] = EventListener_next[this_1]
		elseif EventListener_prev[this_1] != 0 then
			set EventListener_next[EventListener_prev[this_1]] = EventListener_next[this_1]
		endif
	elseif EventListener_unitListenersFirsts[EventListener_uid[this_1]] == this_1 then
		set EventListener_unitListenersFirsts[EventListener_uid[this_1]] = EventListener_next[this_1]
	elseif EventListener_prev[this_1] != 0 then
		set EventListener_next[EventListener_prev[this_1]] = EventListener_next[this_1]
	endif
	if EventListener_next[this_1] != 0 then
		set EventListener_prev[EventListener_next[this_1]] = EventListener_prev[this_1]
	endif
	set EventListener_next[this_1] = 0
	set EventListener_prev[this_1] = 0
	set wurst_stack[wurst_stack_depth] = "when calling dealloc_EventListener in ClosureEvents, line 217"
	set wurst_stack_depth = wurst_stack_depth + 1
	if EventListener_typeId[this_1] == 0 then
		call error("Double free: object of type EventListener", "when calling error in ClosureEvents, line 105")
	else
		set EventListener_nextFree[EventListener_firstFree] = this_1
		set EventListener_firstFree = EventListener_firstFree + 1
		set EventListener_typeId[this_1] = 0
	endif
	set wurst_stack_depth = wurst_stack_depth - 1 - 1
endfunction

function unregisterEvents takes integer id_1, string w__wurst_stackPos returns nothing
	local integer listener_1
	local player showTo
	set wurst_stack[wurst_stack_depth] = w__wurst_stackPos
	set wurst_stack_depth = wurst_stack_depth + 1
	if id_1 > 0 then
		if EventListener_unitListenersFirsts[id_1] != 0 then
			set w__wurst_stackPos = "unregister unit has listeners. startid: " + I2S(id_1)
			set showTo = Player_localPlayer
			if 2 <= 0 then
				call DisplayTimedTextToPlayer(showTo, 0., 0., 45., Loglevel_getTag(0) + " - " + w__wurst_stackPos)
			endif
			set listener_1 = EventListener_unitListenersFirsts[id_1]
			set EventListener_unitListenersFirsts[id_1] = 0
			loop
				exitwhen listener_1 == 0
				set id_1 = listener_1
				set listener_1 = EventListener_next[listener_1]
				set wurst_stack[wurst_stack_depth] = "when calling dispatch_EventListener_destroyEventListener in ClosureEvents, line 290"
				set wurst_stack_depth = wurst_stack_depth + 1
				if EventListener_typeId[id_1] == 0 then
					if id_1 == 0 then
						call error("Nullpointer exception when calling EventListener.EventListener", "when calling error in ClosureEvents, line 105")
					else
						call error("Called EventListener.EventListener on invalid object.", "when calling error in ClosureEvents, line 105")
					endif
				endif
				call destroyEventListener(id_1, "when calling destroyEventListener in ClosureEvents, line 105")
				set wurst_stack_depth = wurst_stack_depth - 1
			endloop
		endif
	endif
	set wurst_stack_depth = wurst_stack_depth - 1
endfunction

function unregisterEventsForUnit takes unit u_1, string w__wurst_stackPos returns nothing
	local integer index
	local integer listener_1
	set wurst_stack[wurst_stack_depth] = w__wurst_stackPos
	set wurst_stack_depth = wurst_stack_depth + 1
	set index = GetUnitUserData(u_1)
	call unregisterEvents(index, "when calling unregisterEvents in ClosureEvents, line 272")
	if EventListener_castMapCasters[index] != 0 then
		set listener_1 = EventListener_castMapCasters[index]
		set EventListener_castMapCasters[index] = 0
		loop
			exitwhen listener_1 == 0
			set index = listener_1
			set listener_1 = OnCastListener_next[listener_1]
			call dispatch_OnCastListener_destroyOnCastListener(index, "when calling dispatch_OnCastListener_destroyOnCastListener in ClosureEvents, line 279")
		endloop
	endif
	set wurst_stack_depth = wurst_stack_depth - 1
endfunction

function bridge_code__onUnitDeindex_ClosureEvents takes nothing returns nothing
	set wurst_stack_depth = 0
	set wurst_stack[wurst_stack_depth] = "via function reference ClosureEvents, line 296"
	set wurst_stack_depth = wurst_stack_depth + 1
	call unregisterEventsForUnit(UnitIndexer_tempUnits[UnitIndexer_tempUnitsCount - 1], "when calling unregisterEventsForUnit in ClosureEvents, line 296")
	set wurst_stack_depth = wurst_stack_depth - 1
endfunction

function unit_clearLastOrders takes unit this_1, string w__wurst_stackPos returns nothing
	local integer index
	local integer this_2
	set wurst_stack[wurst_stack_depth] = w__wurst_stackPos
	set wurst_stack_depth = wurst_stack_depth + 1
	set index = GetUnitUserData(this_1)
	if LastOrder_lastOrder[index] != 0 then
		set this_2 = LastOrder_lastOrder[index]
		set wurst_stack[wurst_stack_depth] = "when calling dispatch_Order_destroyOrder in LastOrder, line 18"
		set wurst_stack_depth = wurst_stack_depth + 1
		if Order_typeId[this_2] == 0 then
			if this_2 == 0 then
				call error("Nullpointer exception when calling Order.Order", "when calling error in LastOrder, line 33")
			else
				call error("Called Order.Order on invalid object.", "when calling error in LastOrder, line 33")
			endif
		endif
		call destroyOrder(this_2, "when calling destroyOrder in LastOrder, line 33")
		set wurst_stack_depth = wurst_stack_depth - 1
		set LastOrder_lastOrder[index] = 0
	endif
	set wurst_stack_depth = wurst_stack_depth - 1
endfunction

function bridge_code__onUnitDeindex_LastOrder takes nothing returns nothing
	set wurst_stack_depth = 0
	set wurst_stack[wurst_stack_depth] = "via function reference LastOrder, line 166"
	set wurst_stack_depth = wurst_stack_depth + 1
	call unit_clearLastOrders(UnitIndexer_tempUnits[UnitIndexer_tempUnitsCount - 1], "when calling clearLastOrders in LastOrder, line 167")
	set wurst_stack_depth = wurst_stack_depth - 1
endfunction

function triggerFromIndex takes integer index, string w__wurst_stackPos returns trigger
	local integer this_1
	local fogstate value
	local trigger Table_Table_loadTrigger_result
	set wurst_stack[wurst_stack_depth] = w__wurst_stackPos
	set wurst_stack_depth = wurst_stack_depth + 1
	set this_1 = TypeCasting_typecastdata
	set value = ConvertFogState(index)
	set wurst_stack[wurst_stack_depth] = "when calling saveFogState in TypeCasting, line 95"
	set wurst_stack_depth = wurst_stack_depth + 1
	if Table_typeId[this_1] == 0 then
		if this_1 == 0 then
			call error("Nullpointer exception when calling Table.saveFogState", "when calling error in Table, line 169")
		else
			call error("Called Table.saveFogState on invalid object.", "when calling error in Table, line 169")
		endif
	endif
	call SaveFogStateHandle(Table_ht, this_1, 0, value)
	set wurst_stack_depth = wurst_stack_depth - 1
	set index = TypeCasting_typecastdata
	set wurst_stack[wurst_stack_depth] = "when calling loadTrigger in TypeCasting, line 96"
	set wurst_stack_depth = wurst_stack_depth + 1
	if Table_typeId[index] == 0 then
		if index == 0 then
			call error("Nullpointer exception when calling Table.loadTrigger", "when calling error in Table, line 112")
		else
			call error("Called Table.loadTrigger on invalid object.", "when calling error in Table, line 112")
		endif
	endif
	set Table_Table_loadTrigger_result = LoadTriggerHandle(Table_ht, index, 0)
	set wurst_stack_depth = wurst_stack_depth - 1 - 1
	return Table_Table_loadTrigger_result
endfunction

function code__registerPlayerUnitEvent_RegisterEvents takes string w__wurst_stackPos returns boolean
	local boolean stackTrace_tempReturn
	set wurst_stack[wurst_stack_depth] = w__wurst_stackPos
	set wurst_stack_depth = wurst_stack_depth + 1
	set stackTrace_tempReturn = TriggerEvaluate(triggerFromIndex(dispatch_HashMap_HashMap_HashMap_get(RegisterEvents_onCastMap, GetSpellAbilityId(), "when calling get in RegisterEvents, line 58"), "when calling triggerFromIndex in RegisterEvents, line 58"))
	set wurst_stack_depth = wurst_stack_depth - 1
	return stackTrace_tempReturn
endfunction

function bridge_code__registerPlayerUnitEvent_RegisterEvents takes nothing returns boolean
	set wurst_stack_depth = 0
	return code__registerPlayerUnitEvent_RegisterEvents("via function reference RegisterEvents, line 58")
endfunction

function dispatch_OnCastListener_ClosureEvents_OnCastListener_fire takes integer this_1, unit caster, string w__wurst_stackPos returns nothing
	set wurst_stack[wurst_stack_depth] = w__wurst_stackPos
	set wurst_stack_depth = wurst_stack_depth + 1
	if OnCastListener_typeId[this_1] == 0 then
		if this_1 == 0 then
			call error("Nullpointer exception when calling OnCastListener.fire", "when calling error in ClosureEvents, line 56")
		else
			call error("Called OnCastListener.fire on invalid object.", "when calling error in ClosureEvents, line 56")
		endif
	endif
	set wurst_stack_depth = wurst_stack_depth - 1
endfunction

function EventListener_onSpellEffect takes string w__wurst_stackPos returns nothing
	local unit trigUnit
	local integer abilId
	local integer listener_1
	local integer nextListener
	set wurst_stack[wurst_stack_depth] = w__wurst_stackPos
	set wurst_stack_depth = wurst_stack_depth + 1
	set trigUnit = GetTriggerUnit()
	set abilId = GetSpellAbilityId()
	set listener_1 = GetUnitUserData(trigUnit)
	if EventListener_castMapCasters[listener_1] != 0 then
		set listener_1 = EventListener_castMapCasters[listener_1]
		loop
			exitwhen listener_1 == 0
			set nextListener = OnCastListener_next[listener_1]
			if OnCastListener_abilId[listener_1] == -1 or OnCastListener_abilId[listener_1] == abilId then
				call dispatch_OnCastListener_ClosureEvents_OnCastListener_fire(listener_1, GetSpellAbilityUnit(), "when calling fire in ClosureEvents, line 207")
			endif
			set listener_1 = nextListener
		endloop
	endif
	if dispatch_HashMap_HashMap_HashMap_has(EventListener_castMap, abilId, "when calling has in ClosureEvents, line 209") then
		set listener_1 = dispatch_HashMap_HashMap_HashMap_get(EventListener_castMap, abilId, "when calling get in ClosureEvents, line 210")
		loop
			exitwhen listener_1 == 0
			set abilId = OnCastListener_next[listener_1]
			if OnCastListener_eventUnit[listener_1] == null or OnCastListener_eventUnit[listener_1] == trigUnit then
				call dispatch_OnCastListener_ClosureEvents_OnCastListener_fire(listener_1, GetSpellAbilityUnit(), "when calling fire in ClosureEvents, line 214")
			endif
			set listener_1 = abilId
		endloop
	endif
	set wurst_stack_depth = wurst_stack_depth - 1
endfunction

function bridge_code__registerPlayerUnitEvent_nullTimer_ClosureEvents takes nothing returns nothing
	set wurst_stack_depth = 0
	set wurst_stack[wurst_stack_depth] = "via function reference ClosureEvents, line 316"
	set wurst_stack_depth = wurst_stack_depth + 1
	call EventListener_onSpellEffect("when calling onSpellEffect in ClosureEvents, line 316")
	set wurst_stack_depth = wurst_stack_depth - 1
endfunction

function timer_getData takes timer this_1, string w__wurst_stackPos returns integer
	local integer this_2
	local integer parentKey
	set wurst_stack[wurst_stack_depth] = w__wurst_stackPos
	set wurst_stack_depth = wurst_stack_depth + 1
	set this_2 = TimerUtils_timerData
	set parentKey = GetHandleId(this_1)
	set wurst_stack[wurst_stack_depth] = "when calling loadInt in TimerUtils, line 22"
	set wurst_stack_depth = wurst_stack_depth + 1
	if Table_typeId[this_2] == 0 then
		if this_2 == 0 then
			call error("Nullpointer exception when calling Table.loadInt", "when calling error in Table, line 40")
		else
			call error("Called Table.loadInt on invalid object.", "when calling error in Table, line 40")
		endif
	endif
	set this_2 = LoadInteger(Table_ht, this_2, parentKey)
	set wurst_stack_depth = wurst_stack_depth - 1 - 1
	return this_2
endfunction

function timer_setData takes timer this_1, integer data_1, string w__wurst_stackPos returns nothing
	local integer this_2
	local integer parentKey
	set wurst_stack[wurst_stack_depth] = w__wurst_stackPos
	set wurst_stack_depth = wurst_stack_depth + 1
	set this_2 = TimerUtils_timerData
	set parentKey = GetHandleId(this_1)
	set wurst_stack[wurst_stack_depth] = "when calling saveInt in TimerUtils, line 18"
	set wurst_stack_depth = wurst_stack_depth + 1
	if Table_typeId[this_2] == 0 then
		if this_2 == 0 then
			call error("Nullpointer exception when calling Table.saveInt", "when calling error in Table, line 43")
		else
			call error("Called Table.saveInt on invalid object.", "when calling error in Table, line 43")
		endif
	endif
	call SaveInteger(Table_ht, this_2, parentKey, data_1)
	set wurst_stack_depth = wurst_stack_depth - 1 - 1
endfunction

function timer_release takes timer this_1, string w__wurst_stackPos returns nothing
	set wurst_stack[wurst_stack_depth] = w__wurst_stackPos
	set wurst_stack_depth = wurst_stack_depth + 1
	if this_1 == null then
		call error("Trying to release a null timer", "when calling error in TimerUtils, line 38")
		set wurst_stack_depth = wurst_stack_depth - 1
		return
	endif
	if timer_getData(this_1, "when calling getData in TimerUtils, line 40") == 679645218 then
		call error("ReleaseTimer: Double free!", "when calling error in TimerUtils, line 41")
		set wurst_stack_depth = wurst_stack_depth - 1
		return
	endif
	call timer_setData(this_1, 679645218, "when calling setData in TimerUtils, line 43")
	call PauseTimer(this_1)
	set TimerUtils_freeTimers[TimerUtils_freeTimersCount] = this_1
	set TimerUtils_freeTimersCount = TimerUtils_freeTimersCount + 1
	set wurst_stack_depth = wurst_stack_depth - 1
endfunction

function destroyCallbackSingle takes integer this_1, string w__wurst_stackPos returns nothing
	set wurst_stack[wurst_stack_depth] = w__wurst_stackPos
	set wurst_stack_depth = wurst_stack_depth + 1
	set wurst_stack[wurst_stack_depth] = "when calling CallbackSingle_onDestroy in ClosureTimers, line 144"
	set wurst_stack_depth = wurst_stack_depth + 1
	call timer_release(CallbackSingle_t[this_1], "when calling release in ClosureTimers, line 145")
	set wurst_stack_depth = wurst_stack_depth - 1
	set wurst_stack[wurst_stack_depth] = "when calling dealloc_CallbackSingle in ClosureTimers, line 144"
	set wurst_stack_depth = wurst_stack_depth + 1
	if CallbackSingle_typeId[this_1] == 0 then
		call error("Double free: object of type CallbackSingle", "when calling error in ClosureTimers, line 128")
	else
		set CallbackSingle_nextFree[CallbackSingle_firstFree] = this_1
		set CallbackSingle_firstFree = CallbackSingle_firstFree + 1
		set CallbackSingle_typeId[this_1] = 0
	endif
	set wurst_stack_depth = wurst_stack_depth - 1 - 1
endfunction

function Cinematic_fadeIn takes real duration_seconds_1 returns nothing
	call EnableUserUI(true)
	call SetCineFilterTexture("ReplaceableTextures\\CameraMasks\\White_mask.blp")
	call SetCineFilterBlendMode(BLEND_MODE_BLEND)
	call SetCineFilterTexMapFlags(TEXMAP_FLAG_NONE)
	call SetCineFilterStartUV(0., 0., 1., 1.)
	call SetCineFilterEndUV(0., 0., 1., 1.)
	call SetCineFilterStartColor(0, 0, 0, 255)
	call SetCineFilterEndColor(0, 0, 0, 0)
	call SetCineFilterDuration(duration_seconds_1)
	call DisplayCineFilter(true)
endfunction

function Cinematic_endCinematic takes integer this_1 returns nothing
	set Cinematic_running[this_1] = false
	call ShowInterface(true, .5)
	call EnableUserControl(true)
	call Cinematic_fadeIn(0.)
endfunction

function CallbackSingle_start takes integer this_1, timer whichTimer, real time, string w__wurst_stackPos returns nothing
	set wurst_stack[wurst_stack_depth] = w__wurst_stackPos
	set wurst_stack_depth = wurst_stack_depth + 1
	call timer_setData(whichTimer, this_1, "when calling setData in ClosureTimers, line 134")
	call TimerStart(whichTimer, time, false, ref_function_bridge_code__start_CallbackSingle_ClosureTimers)
	set CallbackSingle_t[this_1] = whichTimer
	set wurst_stack_depth = wurst_stack_depth - 1
endfunction

function dispatch_CallbackSingle_ClosureTimers_CallbackSingle_start takes integer this_1, timer whichTimer, real time, string w__wurst_stackPos returns nothing
	set wurst_stack[wurst_stack_depth] = w__wurst_stackPos
	set wurst_stack_depth = wurst_stack_depth + 1
	if CallbackSingle_typeId[this_1] == 0 then
		if this_1 == 0 then
			call error("Nullpointer exception when calling CallbackSingle.start", "when calling error in ClosureTimers, line 132")
		else
			call error("Called CallbackSingle.start on invalid object.", "when calling error in ClosureTimers, line 132")
		endif
	endif
	call CallbackSingle_start(this_1, whichTimer, time, "when calling start in ClosureTimers, line 132")
	set wurst_stack_depth = wurst_stack_depth - 1
endfunction

function Cinematic_fadeOut takes real duration_seconds_1 returns nothing
	call EnableUserUI(false)
	call SetCineFilterTexture("ReplaceableTextures\\CameraMasks\\White_mask.blp")
	call SetCineFilterBlendMode(BLEND_MODE_BLEND)
	call SetCineFilterTexMapFlags(TEXMAP_FLAG_NONE)
	call SetCineFilterStartUV(0., 0., 1., 1.)
	call SetCineFilterEndUV(0., 0., 1., 1.)
	call SetCineFilterStartColor(0, 0, 0, 0)
	call SetCineFilterEndColor(0, 0, 0, 255)
	call SetCineFilterDuration(duration_seconds_1)
	call DisplayCineFilter(true)
endfunction

function dispatch_CineSeq_Cinematic_CineSeq_apply takes integer this_1, string w__wurst_stackPos returns real
	local real tuple_temp
	set wurst_stack[wurst_stack_depth] = w__wurst_stackPos
	set wurst_stack_depth = wurst_stack_depth + 1
	if CineSeq_typeId[this_1] == 0 then
		if this_1 == 0 then
			call error("Nullpointer exception when calling CineSeq.apply", "when calling error in Cinematic, line 17")
		else
			call error("Called CineSeq.apply on invalid object.", "when calling error in Cinematic, line 17")
		endif
	endif
	if CineSeq_typeId[this_1] <= 1212 then
		if CineSeq_typeId[this_1] <= 1211 then
			if CineSeq_typeId[this_1] <= 1210 then
				call Cinematic_fadeOut(duration_seconds[this_1])
				set tuple_temp = duration_seconds[this_1]
			else
				call Cinematic_fadeIn(duration_seconds_314[this_1])
				set tuple_temp = duration_seconds_314[this_1]
			endif
		else
			call CameraSetupApply(setup[this_1], true, true)
			set tuple_temp = 0.
		endif
	elseif CineSeq_typeId[this_1] <= 1213 then
		set tuple_temp = pos_x[this_1]
		call SetCameraPosition(tuple_temp, pos_y[this_1])
		set tuple_temp = 0.
	else
		set tuple_temp = duration_seconds_315[this_1]
	endif
	set wurst_stack_depth = wurst_stack_depth - 1
	set dispatch_CineSeq_Cinematic_CineSeq_apply_return_seconds = tuple_temp
	return dispatch_CineSeq_Cinematic_CineSeq_apply_return_seconds
endfunction

function getTimer takes string w__wurst_stackPos returns timer
	local timer receiver
	set wurst_stack[wurst_stack_depth] = w__wurst_stackPos
	set wurst_stack_depth = wurst_stack_depth + 1
	if TimerUtils_freeTimersCount > 0 then
		set TimerUtils_freeTimersCount = TimerUtils_freeTimersCount - 1
		call timer_setData(TimerUtils_freeTimers[TimerUtils_freeTimersCount], 0, "when calling setData in TimerUtils, line 30")
		set wurst_stack_depth = wurst_stack_depth - 1
		return TimerUtils_freeTimers[TimerUtils_freeTimersCount]
	else
		set receiver = CreateTimer()
		call timer_setData(receiver, 0, "when calling setData in TimerUtils, line 33")
		set wurst_stack_depth = wurst_stack_depth - 1
		return receiver
	endif
endfunction

function Cinematic_controller takes integer this_1, integer sequence_1, integer ending_1, string w__wurst_stackPos returns nothing
	local integer this_2
	local timer this_3
	local boolean andLeft
	local real tuple_temp
	set wurst_stack[wurst_stack_depth] = w__wurst_stackPos
	set wurst_stack_depth = wurst_stack_depth + 1
	if Cinematic_running[this_1] then
		set wurst_stack[wurst_stack_depth] = "when calling isEmpty in Cinematic, line 48"
		set wurst_stack_depth = wurst_stack_depth + 1
		if LinkedList_typeId[sequence_1] == 0 then
			if sequence_1 == 0 then
				call error("Nullpointer exception when calling LinkedList.isEmpty", "when calling error in LinkedList, line 162")
			else
				call error("Called LinkedList.isEmpty on invalid object.", "when calling error in LinkedList, line 162")
			endif
		endif
		set andLeft = LinkedList_size[sequence_1] == 0
		set wurst_stack_depth = wurst_stack_depth - 1
		set andLeft =  not andLeft
	else
		set andLeft = false
	endif
	if andLeft then
		set tuple_temp = dispatch_CineSeq_Cinematic_CineSeq_apply(dispatch_LinkedList_LinkedList_LinkedList_dequeue(sequence_1, "when calling dequeue in Cinematic, line 49"), "when calling apply in Cinematic, line 50")
		set wurst_stack[wurst_stack_depth] = "when calling alloc_CallbackSingle_doAfter_Cinematic_Cinematic in Cinematic, line 51"
		set wurst_stack_depth = wurst_stack_depth + 1
		if CallbackSingle_firstFree == 0 then
			if CallbackSingle_maxIndex < 32768 then
				set CallbackSingle_maxIndex = CallbackSingle_maxIndex + 1
				set this_2 = CallbackSingle_maxIndex
				set CallbackSingle_typeId[this_2] = 1105
			else
				call error("Out of memory: Could not create CallbackSingle_doAfter_Cinematic_Cinematic.", "when calling error in Cinematic, line 51")
				set this_2 = 0
			endif
		else
			set CallbackSingle_firstFree = CallbackSingle_firstFree - 1
			set this_2 = CallbackSingle_nextFree[CallbackSingle_firstFree]
			set CallbackSingle_typeId[this_2] = 1105
		endif
		set wurst_stack_depth = wurst_stack_depth - 1
		set this_460[this_2] = this_1
		set sequence[this_2] = sequence_1
		set ending[this_2] = ending_1
		set wurst_stack[wurst_stack_depth] = "when calling doAfter in Cinematic, line 51"
		set wurst_stack_depth = wurst_stack_depth + 1
		set this_3 = getTimer("when calling getTimer in ClosureTimers, line 28")
		set wurst_stack[wurst_stack_depth] = "when calling doAfter in ClosureTimers, line 28"
		set wurst_stack_depth = wurst_stack_depth + 1
		call dispatch_CallbackSingle_ClosureTimers_CallbackSingle_start(this_2, this_3, tuple_temp, "when calling start in ClosureTimers, line 17")
		set wurst_stack_depth = wurst_stack_depth - 1 - 1
	else
		set wurst_stack[wurst_stack_depth] = "when calling endCinematic in Cinematic, line 54"
		set wurst_stack_depth = wurst_stack_depth + 1
		if Cinematic_typeId[this_1] == 0 then
			if this_1 == 0 then
				call error("Nullpointer exception when calling Cinematic.endCinematic", "when calling error in Cinematic, line 67")
			else
				call error("Called Cinematic.endCinematic on invalid object.", "when calling error in Cinematic, line 67")
			endif
		endif
		call Cinematic_endCinematic(this_1)
		set wurst_stack_depth = wurst_stack_depth - 1
		call dispatch_CineSeq_Cinematic_CineSeq_apply(ending_1, "when calling apply in Cinematic, line 55")
	endif
	set wurst_stack_depth = wurst_stack_depth - 1
endfunction

function DummyRecycler_recycle takes unit u_1, string w__wurst_stackPos returns nothing
	local integer smallestQueue
	local integer i
	local integer temp
	local integer LinkedList_LinkedList_size_result
	local integer LinkedList_LinkedList_size_result_1
	local integer elem
	local real tuple_temp
	local real tuple_temp_1
	set wurst_stack[wurst_stack_depth] = w__wurst_stackPos
	set wurst_stack_depth = wurst_stack_depth + 1
	set smallestQueue = 0
	set i = 1
	set temp = 7
	loop
		exitwhen i > temp
		set LinkedList_LinkedList_size_result = DummyRecycler_angleQueues[smallestQueue]
		set wurst_stack[wurst_stack_depth] = "when calling size in DummyRecycler, line 51"
		set wurst_stack_depth = wurst_stack_depth + 1
		if LinkedList_typeId[LinkedList_LinkedList_size_result] == 0 then
			if LinkedList_LinkedList_size_result == 0 then
				call error("Nullpointer exception when calling LinkedList.size", "when calling error in LinkedList, line 158")
			else
				call error("Called LinkedList.size on invalid object.", "when calling error in LinkedList, line 158")
			endif
		endif
		set LinkedList_LinkedList_size_result = LinkedList_size[LinkedList_LinkedList_size_result]
		set wurst_stack_depth = wurst_stack_depth - 1
		set LinkedList_LinkedList_size_result_1 = DummyRecycler_angleQueues[i]
		set wurst_stack[wurst_stack_depth] = "when calling size in DummyRecycler, line 51"
		set wurst_stack_depth = wurst_stack_depth + 1
		if LinkedList_typeId[LinkedList_LinkedList_size_result_1] == 0 then
			if LinkedList_LinkedList_size_result_1 == 0 then
				call error("Nullpointer exception when calling LinkedList.size", "when calling error in LinkedList, line 158")
			else
				call error("Called LinkedList.size on invalid object.", "when calling error in LinkedList, line 158")
			endif
		endif
		set LinkedList_LinkedList_size_result_1 = LinkedList_size[LinkedList_LinkedList_size_result_1]
		set wurst_stack_depth = wurst_stack_depth - 1
		if LinkedList_LinkedList_size_result > LinkedList_LinkedList_size_result_1 then
			set smallestQueue = i
		endif
		set i = i + 1
	endloop
	set temp = DummyRecycler_angleQueues[smallestQueue]
	set wurst_stack[wurst_stack_depth] = "when calling size in DummyRecycler, line 53"
	set wurst_stack_depth = wurst_stack_depth + 1
	if LinkedList_typeId[temp] == 0 then
		if temp == 0 then
			call error("Nullpointer exception when calling LinkedList.size", "when calling error in LinkedList, line 158")
		else
			call error("Called LinkedList.size on invalid object.", "when calling error in LinkedList, line 158")
		endif
	endif
	set temp = LinkedList_size[temp]
	set wurst_stack_depth = wurst_stack_depth - 1
	if temp >= 6 then
		call RemoveUnit(u_1)
	else
		set temp = DummyRecycler_angleQueues[smallestQueue]
		set elem = GetHandleId(u_1)
		set wurst_stack[wurst_stack_depth] = "when calling enqueue in DummyRecycler, line 56"
		set wurst_stack_depth = wurst_stack_depth + 1
		if LinkedList_typeId[temp] == 0 then
			if temp == 0 then
				call error("Nullpointer exception when calling LinkedList.enqueue", "when calling error in LinkedList, line 195")
			else
				call error("Called LinkedList.enqueue on invalid object.", "when calling error in LinkedList, line 195")
			endif
		endif
		set wurst_stack[wurst_stack_depth] = "when calling enqueue in LinkedList, line 195"
		set wurst_stack_depth = wurst_stack_depth + 1
		call dispatch_LinkedList_LinkedList_LinkedList_add_1(temp, elem, "when calling add in LinkedList, line 196")
		set wurst_stack_depth = wurst_stack_depth - 1 - 1
		set tuple_temp_1 = MapBounds_boundMax_x
		set tuple_temp = MapBounds_boundMax_y
		set tuple_temp_1 = tuple_temp_1 - 16.
		set tuple_temp = tuple_temp - 16.
		call SetUnitX(u_1, tuple_temp_1)
		call SetUnitY(u_1, tuple_temp)
		call PauseUnit(u_1, true)
		set tuple_temp_1 = smallestQueue * DummyRecycler_ANGLE_DEGREE * 0.017453293
		call SetUnitFacing(u_1, tuple_temp_1 * 57.295779513)
		call SetUnitScale(u_1, 1., 1., 1.)
		call SetUnitVertexColor(u_1, 255, 255, 255, 255)
		call SetUnitOwner(u_1, Basics_DUMMY_PLAYER, true)
	endif
	set wurst_stack_depth = wurst_stack_depth - 1
endfunction

function SoundDefinition_playSound takes integer this_1, integer instance_1, string w__wurst_stackPos returns nothing
	local real temp
	local integer this_2
	local timer this_3
	set wurst_stack[wurst_stack_depth] = w__wurst_stackPos
	set wurst_stack_depth = wurst_stack_depth + 1
	if SoundInstance_onUnit[instance_1] != null then
		call AttachSoundToUnit(SoundInstance_snd[instance_1], SoundInstance_onUnit[instance_1])
	endif
	if SoundInstance_pos_x[instance_1] != 0. or SoundInstance_pos_y[instance_1] != 0. then
		call SetSoundPosition(SoundInstance_snd[instance_1], SoundInstance_pos_x[instance_1], SoundInstance_pos_y[instance_1], SoundInstance_pos_z[instance_1])
	endif
	if SoundInstance_p[instance_1] != null then
		if GetLocalPlayer() == SoundInstance_p[instance_1] then
			call StartSound(SoundInstance_snd[instance_1])
		endif
	else
		call StartSound(SoundInstance_snd[instance_1])
	endif
	set temp = SoundDefinition_duration[SoundInstance_soundDef[instance_1]] * 0.001
	set wurst_stack[wurst_stack_depth] = "when calling alloc_CallbackSingle_doAfter_SoundDefinition_SoundUtils in SoundUtils, line 160"
	set wurst_stack_depth = wurst_stack_depth + 1
	if CallbackSingle_firstFree == 0 then
		if CallbackSingle_maxIndex < 32768 then
			set CallbackSingle_maxIndex = CallbackSingle_maxIndex + 1
			set this_2 = CallbackSingle_maxIndex
			set CallbackSingle_typeId[this_2] = 1114
		else
			call error("Out of memory: Could not create CallbackSingle_doAfter_SoundDefinition_SoundUtils.", "when calling error in SoundUtils, line 160")
			set this_2 = 0
		endif
	else
		set CallbackSingle_firstFree = CallbackSingle_firstFree - 1
		set this_2 = CallbackSingle_nextFree[CallbackSingle_firstFree]
		set CallbackSingle_typeId[this_2] = 1114
	endif
	set wurst_stack_depth = wurst_stack_depth - 1
	set this_466[this_2] = this_1
	set instance[this_2] = instance_1
	set wurst_stack[wurst_stack_depth] = "when calling doAfter in SoundUtils, line 160"
	set wurst_stack_depth = wurst_stack_depth + 1
	set this_3 = getTimer("when calling getTimer in ClosureTimers, line 28")
	set wurst_stack[wurst_stack_depth] = "when calling doAfter in ClosureTimers, line 28"
	set wurst_stack_depth = wurst_stack_depth + 1
	call dispatch_CallbackSingle_ClosureTimers_CallbackSingle_start(this_2, this_3, temp, "when calling start in ClosureTimers, line 17")
	set wurst_stack_depth = wurst_stack_depth - 1
	set wurst_stack_depth = wurst_stack_depth - 1 - 1
endfunction

function dispatch_Sim3DSound_destroySim3DSound takes integer this_1, string w__wurst_stackPos returns nothing
	set wurst_stack[wurst_stack_depth] = w__wurst_stackPos
	set wurst_stack_depth = wurst_stack_depth + 1
	if Sim3DSound_typeId[this_1] == 0 then
		if this_1 == 0 then
			call error("Nullpointer exception when calling Sim3DSound.Sim3DSound", "when calling error in Simulate3dSound, line 87")
		else
			call error("Called Sim3DSound.Sim3DSound on invalid object.", "when calling error in Simulate3dSound, line 87")
		endif
	endif
	set wurst_stack[wurst_stack_depth] = "when calling destroySim3DSound in Simulate3dSound, line 87"
	set wurst_stack_depth = wurst_stack_depth + 1
	set wurst_stack[wurst_stack_depth] = "when calling dealloc_Sim3DSound in Simulate3dSound, line 87"
	set wurst_stack_depth = wurst_stack_depth + 1
	if Sim3DSound_typeId[this_1] == 0 then
		call error("Double free: object of type Sim3DSound", "when calling error in Simulate3dSound, line 87")
	else
		set Sim3DSound_firstFree = Sim3DSound_firstFree + 1
		set Sim3DSound_typeId[this_1] = 0
	endif
	set wurst_stack_depth = wurst_stack_depth - 1 - 1 - 1
endfunction

function dispatch_SoundInstance_destroySoundInstance takes integer this_1, string w__wurst_stackPos returns nothing
	set wurst_stack[wurst_stack_depth] = w__wurst_stackPos
	set wurst_stack_depth = wurst_stack_depth + 1
	if SoundInstance_typeId[this_1] == 0 then
		if this_1 == 0 then
			call error("Nullpointer exception when calling SoundInstance.SoundInstance", "when calling error in SoundUtils, line 37")
		else
			call error("Called SoundInstance.SoundInstance on invalid object.", "when calling error in SoundUtils, line 37")
		endif
	endif
	set wurst_stack[wurst_stack_depth] = "when calling destroySoundInstance in SoundUtils, line 37"
	set wurst_stack_depth = wurst_stack_depth + 1
	call StopSound(SoundInstance_snd[this_1], true, false)
	set wurst_stack[wurst_stack_depth] = "when calling dealloc_SoundInstance in SoundUtils, line 45"
	set wurst_stack_depth = wurst_stack_depth + 1
	if SoundInstance_typeId[this_1] == 0 then
		call error("Double free: object of type SoundInstance", "when calling error in SoundUtils, line 37")
	else
		set SoundInstance_firstFree = SoundInstance_firstFree + 1
		set SoundInstance_typeId[this_1] = 0
	endif
	set wurst_stack_depth = wurst_stack_depth - 1 - 1 - 1
endfunction

function SoundDefinition_recycle takes integer this_1, integer instance_1, string w__wurst_stackPos returns nothing
	set wurst_stack[wurst_stack_depth] = w__wurst_stackPos
	set wurst_stack_depth = wurst_stack_depth + 1
	set SoundInstance_p[instance_1] = null
	if SoundInstance_s3s[instance_1] != 0 then
		call dispatch_Sim3DSound_destroySim3DSound(SoundInstance_s3s[instance_1], "when calling dispatch_Sim3DSound_destroySim3DSound in SoundUtils, line 166")
	endif
	set this_1 = SoundDefinition_soundStack[SoundInstance_soundDef[instance_1]]
	set wurst_stack[wurst_stack_depth] = "when calling size in SoundUtils, line 167"
	set wurst_stack_depth = wurst_stack_depth + 1
	if LinkedList_typeId[this_1] == 0 then
		if this_1 == 0 then
			call error("Nullpointer exception when calling LinkedList.size", "when calling error in LinkedList, line 158")
		else
			call error("Called LinkedList.size on invalid object.", "when calling error in LinkedList, line 158")
		endif
	endif
	set this_1 = LinkedList_size[this_1]
	set wurst_stack_depth = wurst_stack_depth - 1
	if this_1 < 4 then
		set this_1 = SoundDefinition_soundStack[SoundInstance_soundDef[instance_1]]
		set wurst_stack[wurst_stack_depth] = "when calling push in SoundUtils, line 168"
		set wurst_stack_depth = wurst_stack_depth + 1
		if LinkedList_typeId[this_1] == 0 then
			if this_1 == 0 then
				call error("Nullpointer exception when calling LinkedList.push", "when calling error in LinkedList, line 84")
			else
				call error("Called LinkedList.push on invalid object.", "when calling error in LinkedList, line 84")
			endif
		endif
		set wurst_stack[wurst_stack_depth] = "when calling push in LinkedList, line 84"
		set wurst_stack_depth = wurst_stack_depth + 1
		call dispatch_LinkedList_LinkedList_LinkedList_add_1(this_1, instance_1, "when calling add in LinkedList, line 85")
		set wurst_stack_depth = wurst_stack_depth - 1 - 1
	else
		call dispatch_SoundInstance_destroySoundInstance(instance_1, "when calling dispatch_SoundInstance_destroySoundInstance in SoundUtils, line 170")
	endif
	set wurst_stack_depth = wurst_stack_depth - 1
endfunction

function dispatch_DummyCaster_destroyDummyCaster takes integer this_1, string w__wurst_stackPos returns nothing
	set wurst_stack[wurst_stack_depth] = w__wurst_stackPos
	set wurst_stack_depth = wurst_stack_depth + 1
	if DummyCaster_typeId[this_1] == 0 then
		if this_1 == 0 then
			call error("Nullpointer exception when calling DummyCaster.DummyCaster", "when calling error in DummyCaster, line 28")
		else
			call error("Called DummyCaster.DummyCaster on invalid object.", "when calling error in DummyCaster, line 28")
		endif
	endif
	set wurst_stack[wurst_stack_depth] = "when calling destroyDummyCaster in DummyCaster, line 28"
	set wurst_stack_depth = wurst_stack_depth + 1
	set wurst_stack[wurst_stack_depth] = "when calling dealloc_DummyCaster in DummyCaster, line 27"
	set wurst_stack_depth = wurst_stack_depth + 1
	if DummyCaster_typeId[this_1] == 0 then
		call error("Double free: object of type DummyCaster", "when calling error in DummyCaster, line 28")
	else
		set DummyCaster_firstFree = DummyCaster_firstFree + 1
		set DummyCaster_typeId[this_1] = 0
	endif
	set wurst_stack_depth = wurst_stack_depth - 1 - 1 - 1
endfunction

function call_doAfter_DummyCaster_DummyCaster takes integer this_1, string w__wurst_stackPos returns nothing
	local integer this_2
	local unit dummy_1
	local integer id_1
	set wurst_stack[wurst_stack_depth] = w__wurst_stackPos
	set wurst_stack_depth = wurst_stack_depth + 1
	set this_2 = this[this_1]
	set dummy_1 = dummy[this_1]
	set id_1 = id[this_1]
	set wurst_stack[wurst_stack_depth] = "when calling recycleDummy in DummyCaster, line 90"
	set wurst_stack_depth = wurst_stack_depth + 1
	if DummyCaster_typeId[this_2] == 0 then
		if this_2 == 0 then
			call error("Nullpointer exception when calling DummyCaster.recycleDummy", "when calling error in DummyCaster, line 95")
		else
			call error("Called DummyCaster.recycleDummy on invalid object.", "when calling error in DummyCaster, line 95")
		endif
	endif
	set wurst_stack[wurst_stack_depth] = "when calling recycleDummy in DummyCaster, line 95"
	set wurst_stack_depth = wurst_stack_depth + 1
	call UnitRemoveAbility(dummy_1, id_1)
	call DummyRecycler_recycle(dummy_1, "when calling recycle in DummyCaster, line 97")
	set wurst_stack_depth = wurst_stack_depth - 1 - 1
	set DummyCaster_castCount[this[this_1]] = DummyCaster_castCount[this[this_1]] - 1
	if DummyCaster_castCount[this[this_1]] == 0 then
		call dispatch_DummyCaster_destroyDummyCaster(this[this_1], "when calling dispatch_DummyCaster_destroyDummyCaster in DummyCaster, line 93")
	endif
	set wurst_stack_depth = wurst_stack_depth - 1
endfunction

function call_nullTimer_ClosureEvents takes integer this_1 returns nothing
	local integer temp
	local trigger receiver
	call TriggerAddAction(ClosureEvents_unitTrig, ref_function_bridge_code__addAction_nullTimer_ClosureEvents)
	call TriggerAddAction(ClosureEvents_leaveTrig, ref_function_bridge_code__addAction_nullTimer_ClosureEvents_336)
	call TriggerAddAction(ClosureEvents_keyTrig, ref_function_bridge_code__addAction_nullTimer_ClosureEvents_337)
	set this_1 = 0
	set temp = bj_MAX_PLAYERS - 1
	loop
		exitwhen this_1 > temp
		call TriggerRegisterPlayerEvent(ClosureEvents_leaveTrig, Player_players[this_1], EVENT_PLAYER_LEAVE)
		set receiver = ClosureEvents_keyTrig
		call TriggerRegisterPlayerEvent(receiver, Player_players[this_1], EVENT_PLAYER_ARROW_DOWN_DOWN)
		call TriggerRegisterPlayerEvent(receiver, Player_players[this_1], EVENT_PLAYER_ARROW_DOWN_UP)
		call TriggerRegisterPlayerEvent(receiver, Player_players[this_1], EVENT_PLAYER_ARROW_UP_DOWN)
		call TriggerRegisterPlayerEvent(receiver, Player_players[this_1], EVENT_PLAYER_ARROW_UP_UP)
		call TriggerRegisterPlayerEvent(receiver, Player_players[this_1], EVENT_PLAYER_ARROW_LEFT_DOWN)
		call TriggerRegisterPlayerEvent(receiver, Player_players[this_1], EVENT_PLAYER_ARROW_LEFT_UP)
		call TriggerRegisterPlayerEvent(receiver, Player_players[this_1], EVENT_PLAYER_ARROW_RIGHT_DOWN)
		call TriggerRegisterPlayerEvent(receiver, Player_players[this_1], EVENT_PLAYER_ARROW_RIGHT_UP)
		call TriggerRegisterPlayerEvent(receiver, Player_players[this_1], EVENT_PLAYER_END_CINEMATIC)
		call TriggerRegisterPlayerChatEvent(receiver, Player_players[this_1], "", false)
		set this_1 = this_1 + 1
	endloop
	call registerPlayerUnitEvent(EVENT_PLAYER_UNIT_SPELL_EFFECT, null, ref_function_bridge_code__registerPlayerUnitEvent_nullTimer_ClosureEvents, null)
endfunction

function call_nullTimer_OnUnitEnterLeave takes integer this_1 returns nothing
	local group receiver
	call TriggerRegisterEnterRegion(CreateTrigger(), MapBounds_boundRegion, Filter(ref_function_code__Filter_registerEnterRegion_nullTimer_OnUnitEnterLeave))
	call registerPlayerUnitEvent(EVENT_PLAYER_UNIT_ISSUED_ORDER, null, ref_function_code__registerPlayerUnitEvent_nullTimer_OnUnitEnterLeave, null)
	set receiver = OnUnitEnterLeave_preplacedUnits
	call GroupEnumUnitsInRect(receiver, MapBounds_boundRect, null)
	call ForGroup(OnUnitEnterLeave_preplacedUnits, ref_function_code__ForGroup_nullTimer_OnUnitEnterLeave)
	set receiver = OnUnitEnterLeave_preplacedUnits
	call GroupClear(receiver)
	call DestroyGroup(receiver)
endfunction

function dispatch_Callback_destroyCallback takes integer this_1, string w__wurst_stackPos returns nothing
	set wurst_stack[wurst_stack_depth] = w__wurst_stackPos
	set wurst_stack_depth = wurst_stack_depth + 1
	if Callback_typeId[this_1] == 0 then
		if this_1 == 0 then
			call error("Nullpointer exception when calling Callback.Callback", "when calling error in ClosureTimers, line 125")
		else
			call error("Called Callback.Callback on invalid object.", "when calling error in ClosureTimers, line 125")
		endif
	endif
	set wurst_stack[wurst_stack_depth] = "when calling destroyCallback in ClosureTimers, line 125"
	set wurst_stack_depth = wurst_stack_depth + 1
	set wurst_stack[wurst_stack_depth] = "when calling dealloc_Callback in ClosureTimers, line 125"
	set wurst_stack_depth = wurst_stack_depth + 1
	if Callback_typeId[this_1] == 0 then
		call error("Double free: object of type Callback", "when calling error in ClosureTimers, line 125")
	else
		set Callback_firstFree = Callback_firstFree + 1
		set Callback_typeId[this_1] = 0
	endif
	set wurst_stack_depth = wurst_stack_depth - 1 - 1 - 1
endfunction

function effect_destrHidden takes effect this_1 returns nothing
	call BlzSetSpecialEffectColor(this_1, 0, 0, 0)
	call BlzSetSpecialEffectAlpha(this_1, 0)
	call BlzSetSpecialEffectPosition(this_1, MapBounds_boundMin_x, MapBounds_boundMin_y, 5000.)
	call BlzSetSpecialEffectTime(this_1, 1.)
	call BlzSetSpecialEffectTimeScale(this_1, 10.)
	call DestroyEffect(this_1)
endfunction

function dispatch_ForGroupCallback_destroyForGroupCallback takes integer this_1, string w__wurst_stackPos returns nothing
	set wurst_stack[wurst_stack_depth] = w__wurst_stackPos
	set wurst_stack_depth = wurst_stack_depth + 1
	if ForGroupCallback_typeId[this_1] == 0 then
		if this_1 == 0 then
			call error("Nullpointer exception when calling ForGroupCallback.ForGroupCallback", "when calling error in ClosureForGroups, line 3")
		else
			call error("Called ForGroupCallback.ForGroupCallback on invalid object.", "when calling error in ClosureForGroups, line 3")
		endif
	endif
	set wurst_stack[wurst_stack_depth] = "when calling destroyForGroupCallback in ClosureForGroups, line 3"
	set wurst_stack_depth = wurst_stack_depth + 1
	set wurst_stack[wurst_stack_depth] = "when calling dealloc_ForGroupCallback in ClosureForGroups, line 3"
	set wurst_stack_depth = wurst_stack_depth + 1
	if ForGroupCallback_typeId[this_1] == 0 then
		call error("Double free: object of type ForGroupCallback", "when calling error in ClosureForGroups, line 3")
	else
		set ForGroupCallback_nextFree[ForGroupCallback_firstFree] = this_1
		set ForGroupCallback_firstFree = ForGroupCallback_firstFree + 1
		set ForGroupCallback_typeId[this_1] = 0
	endif
	set wurst_stack_depth = wurst_stack_depth - 1 - 1 - 1
endfunction

function group_forEachFrom takes group this_1, integer cb_1, string w__wurst_stackPos returns nothing
	local unit iterUnit
	set wurst_stack[wurst_stack_depth] = w__wurst_stackPos
	set wurst_stack_depth = wurst_stack_depth + 1
	loop
		exitwhen FirstOfGroup(this_1) == null
		set iterUnit = FirstOfGroup(this_1)
		call GroupRemoveUnit(this_1, iterUnit)
		call dispatch_ForGroupCallback_ClosureForGroups_ForGroupCallback_callback(cb_1, iterUnit, "when calling callback in ClosureForGroups, line 40")
	endloop
	call dispatch_ForGroupCallback_destroyForGroupCallback(cb_1, "when calling dispatch_ForGroupCallback_destroyForGroupCallback in ClosureForGroups, line 41")
	set wurst_stack_depth = wurst_stack_depth - 1
endfunction

function finishPreload takes string w__wurst_stackPos returns nothing
	local group temp
	local integer this_1
	set wurst_stack[wurst_stack_depth] = w__wurst_stackPos
	set wurst_stack_depth = wurst_stack_depth + 1
	call RemoveUnit(Preloader_dum)
	set temp = Preloader_dumg
	set wurst_stack[wurst_stack_depth] = "when calling alloc_ForGroupCallback_forEachFrom_Preloader in Preloader, line 48"
	set wurst_stack_depth = wurst_stack_depth + 1
	if ForGroupCallback_firstFree == 0 then
		if ForGroupCallback_maxIndex < 32768 then
			set ForGroupCallback_maxIndex = ForGroupCallback_maxIndex + 1
			set this_1 = ForGroupCallback_maxIndex
			set ForGroupCallback_typeId[this_1] = 2072
		else
			call error("Out of memory: Could not create ForGroupCallback_forEachFrom_Preloader.", "when calling error in Preloader, line 48")
			set this_1 = 0
		endif
	else
		set ForGroupCallback_firstFree = ForGroupCallback_firstFree - 1
		set this_1 = ForGroupCallback_nextFree[ForGroupCallback_firstFree]
		set ForGroupCallback_typeId[this_1] = 2072
	endif
	set wurst_stack_depth = wurst_stack_depth - 1
	call group_forEachFrom(temp, this_1, "when calling forEachFrom in Preloader, line 48")
	call DestroyGroup(Preloader_dumg)
	set Preloader_dumg = null
	set wurst_stack_depth = wurst_stack_depth - 1
endfunction

function testFail takes string msg returns nothing
endfunction

function dispatch_CallbackSingle_ClosureTimers_CallbackSingle_call takes integer this_1, string w__wurst_stackPos returns nothing
	local integer this_2
	set wurst_stack[wurst_stack_depth] = w__wurst_stackPos
	set wurst_stack_depth = wurst_stack_depth + 1
	if CallbackSingle_typeId[this_1] == 0 then
		if this_1 == 0 then
			call error("Nullpointer exception when calling CallbackSingle.call", "when calling error in ClosureTimers, line 130")
		else
			call error("Called CallbackSingle.call on invalid object.", "when calling error in ClosureTimers, line 130")
		endif
	endif
	if CallbackSingle_typeId[this_1] <= 1112 then
		if CallbackSingle_typeId[this_1] <= 1108 then
			if CallbackSingle_typeId[this_1] <= 1106 then
				if CallbackSingle_typeId[this_1] <= 1105 then
					set wurst_stack[wurst_stack_depth] = "when calling call_doAfter_Cinematic_Cinematic in ClosureTimers, line 130"
					set wurst_stack_depth = wurst_stack_depth + 1
					call Cinematic_controller(this_460[this_1], sequence[this_1], ending[this_1], "when calling controller in Cinematic, line 52")
					set wurst_stack_depth = wurst_stack_depth - 1
				else
					set wurst_stack[wurst_stack_depth] = "when calling call_doAfter_ClosureTimers in ClosureTimers, line 130"
					set wurst_stack_depth = wurst_stack_depth + 1
					call dispatch_Callback_destroyCallback(cb[this_1], "when calling dispatch_Callback_destroyCallback in ClosureTimers, line 44")
					call DestroyTimerDialog(dia[this_1])
					set wurst_stack_depth = wurst_stack_depth - 1
				endif
			elseif CallbackSingle_typeId[this_1] <= 1107 then
				set ClosureTimers_x = ClosureTimers_x + 50
			else
				set ClosureTimers_x = ClosureTimers_x * 2
			endif
		elseif CallbackSingle_typeId[this_1] <= 1110 then
			if CallbackSingle_typeId[this_1] <= 1109 then
				set ClosureTimers_x = ClosureTimers_x / 2
				set this_1 = ClosureTimers_x
				if this_1 != 250 then
					call testFail("Expected <" + I2S(250) + ">, Actual <" + I2S(this_1) + ">")
				endif
			else
				call call_doAfter_DummyCaster_DummyCaster(this_1, "when calling call_doAfter_DummyCaster_DummyCaster in ClosureTimers, line 130")
			endif
		elseif CallbackSingle_typeId[this_1] <= 1111 then
			set wurst_stack[wurst_stack_depth] = "when calling call_doAfter_DummyRecycler_DummyRecycler in ClosureTimers, line 130"
			set wurst_stack_depth = wurst_stack_depth + 1
			call DummyRecycler_recycle(u[this_1], "when calling recycle in DummyRecycler, line 66")
			set wurst_stack_depth = wurst_stack_depth - 1
		else
			call DestroyEffect(this_461[this_1])
		endif
	elseif CallbackSingle_typeId[this_1] <= 1116 then
		if CallbackSingle_typeId[this_1] <= 1114 then
			if CallbackSingle_typeId[this_1] <= 1113 then
				call effect_destrHidden(this_462[this_1])
			else
				set wurst_stack[wurst_stack_depth] = "when calling call_doAfter_SoundDefinition_SoundUtils in ClosureTimers, line 130"
				set wurst_stack_depth = wurst_stack_depth + 1
				set this_2 = this_466[this_1]
				set this_1 = instance[this_1]
				set wurst_stack[wurst_stack_depth] = "when calling recycle in SoundUtils, line 161"
				set wurst_stack_depth = wurst_stack_depth + 1
				if SoundDefinition_typeId[this_2] == 0 then
					if this_2 == 0 then
						call error("Nullpointer exception when calling SoundDefinition.recycle", "when calling error in SoundUtils, line 163")
					else
						call error("Called SoundDefinition.recycle on invalid object.", "when calling error in SoundUtils, line 163")
					endif
				endif
				call SoundDefinition_recycle(this_2, this_1, "when calling recycle in SoundUtils, line 163")
				set wurst_stack_depth = wurst_stack_depth - 1 - 1
			endif
		elseif CallbackSingle_typeId[this_1] <= 1115 then
			call call_nullTimer_ClosureEvents(this_1)
		else
			call call_nullTimer_OnUnitEnterLeave(this_1)
		endif
	elseif CallbackSingle_typeId[this_1] <= 1118 then
		if CallbackSingle_typeId[this_1] <= 1117 then
			set wurst_stack[wurst_stack_depth] = "when calling call_nullTimer_Preloader in ClosureTimers, line 130"
			set wurst_stack_depth = wurst_stack_depth + 1
			call finishPreload("when calling finishPreload in Preloader, line 58")
			set wurst_stack_depth = wurst_stack_depth - 1
		else
			set wurst_stack[wurst_stack_depth] = "when calling call_nullTimer_SoundDefinition_SoundUtils in ClosureTimers, line 130"
			set wurst_stack_depth = wurst_stack_depth + 1
			set this_2 = this_463[this_1]
			set this_1 = snd[this_1]
			set wurst_stack[wurst_stack_depth] = "when calling playSound in SoundUtils, line 120"
			set wurst_stack_depth = wurst_stack_depth + 1
			if SoundDefinition_typeId[this_2] == 0 then
				if this_2 == 0 then
					call error("Nullpointer exception when calling SoundDefinition.playSound", "when calling error in SoundUtils, line 149")
				else
					call error("Called SoundDefinition.playSound on invalid object.", "when calling error in SoundUtils, line 149")
				endif
			endif
			call SoundDefinition_playSound(this_2, this_1, "when calling playSound in SoundUtils, line 149")
			set wurst_stack_depth = wurst_stack_depth - 1 - 1
		endif
	else
		set wurst_stack[wurst_stack_depth] = "when calling call_nullTimer_SoundDefinition_SoundUtils in ClosureTimers, line 130"
		set wurst_stack_depth = wurst_stack_depth + 1
		if CallbackSingle_typeId[this_1] <= 1119 then
			set this_2 = this_464[this_1]
			set this_1 = snd_455[this_1]
			set wurst_stack[wurst_stack_depth] = "when calling playSound in SoundUtils, line 135"
			set wurst_stack_depth = wurst_stack_depth + 1
			if SoundDefinition_typeId[this_2] == 0 then
				if this_2 == 0 then
					call error("Nullpointer exception when calling SoundDefinition.playSound", "when calling error in SoundUtils, line 149")
				else
					call error("Called SoundDefinition.playSound on invalid object.", "when calling error in SoundUtils, line 149")
				endif
			endif
			call SoundDefinition_playSound(this_2, this_1, "when calling playSound in SoundUtils, line 149")
			set wurst_stack_depth = wurst_stack_depth - 1 - 1
		else
			set this_2 = this_465[this_1]
			set this_1 = snd_456[this_1]
			set wurst_stack[wurst_stack_depth] = "when calling playSound in SoundUtils, line 146"
			set wurst_stack_depth = wurst_stack_depth + 1
			if SoundDefinition_typeId[this_2] == 0 then
				if this_2 == 0 then
					call error("Nullpointer exception when calling SoundDefinition.playSound", "when calling error in SoundUtils, line 149")
				else
					call error("Called SoundDefinition.playSound on invalid object.", "when calling error in SoundUtils, line 149")
				endif
			endif
			call SoundDefinition_playSound(this_2, this_1, "when calling playSound in SoundUtils, line 149")
			set wurst_stack_depth = wurst_stack_depth - 1 - 1
		endif
	endif
	set wurst_stack_depth = wurst_stack_depth - 1
endfunction

function CallbackSingle_staticCallback takes string w__wurst_stackPos returns nothing
	local integer cb_1
	set wurst_stack[wurst_stack_depth] = w__wurst_stackPos
	set wurst_stack_depth = wurst_stack_depth + 1
	set cb_1 = timer_getData(GetExpiredTimer(), "when calling getData in ClosureTimers, line 140")
	call dispatch_CallbackSingle_ClosureTimers_CallbackSingle_call(cb_1, "when calling call in ClosureTimers, line 141")
	set wurst_stack[wurst_stack_depth] = "when calling dispatch_CallbackSingle_destroyCallbackSingle in ClosureTimers, line 142"
	set wurst_stack_depth = wurst_stack_depth + 1
	if CallbackSingle_typeId[cb_1] == 0 then
		if cb_1 == 0 then
			call error("Nullpointer exception when calling CallbackSingle.CallbackSingle", "when calling error in ClosureTimers, line 128")
		else
			call error("Called CallbackSingle.CallbackSingle on invalid object.", "when calling error in ClosureTimers, line 128")
		endif
	endif
	call destroyCallbackSingle(cb_1, "when calling destroyCallbackSingle in ClosureTimers, line 128")
	set wurst_stack_depth = wurst_stack_depth - 1 - 1
endfunction

function bridge_code__start_CallbackSingle_ClosureTimers takes nothing returns nothing
	set wurst_stack_depth = 0
	set wurst_stack[wurst_stack_depth] = "via function reference ClosureTimers, line 135"
	set wurst_stack_depth = wurst_stack_depth + 1
	call CallbackSingle_staticCallback("when calling staticCallback in ClosureTimers, line 135")
	set wurst_stack_depth = wurst_stack_depth - 1
endfunction

function push takes group g, string w__wurst_stackPos returns nothing
	set wurst_stack[wurst_stack_depth] = w__wurst_stackPos
	set wurst_stack_depth = wurst_stack_depth + 1
	set GroupUtils_stack[GroupUtils_numStack] = g
	set g = GroupUtils_stack[GroupUtils_numStack]
	call dispatch_HashMap_HashMap_HashMap_put(GroupUtils_used, GetHandleId(g), 0, "when calling put in GroupUtils, line 118")
	set GroupUtils_numStack = GroupUtils_numStack + 1
	set wurst_stack_depth = wurst_stack_depth - 1
endfunction

function char takes string s returns integer
	local integer a
	if s == "/" then
		set char_return_c = 47
		return char_return_c
	elseif "\\" == s then
		set char_return_c = 92
		return char_return_c
	endif
	set a = StringUtils_s2c[StringHash(s) / 2033480 + 1002]
	if s != StringUtils_c2s[a] then
		set char_return_c = a + 32
		return char_return_c
	endif
	set char_return_c = a
	return char_return_c
endfunction

function dispatch_ByteBuffer_ByteBuffer_ByteBuffer_flushBuffer takes integer this_1, string w__wurst_stackPos returns nothing
	local integer this_2
	local integer parentKey
	local integer value
	set wurst_stack[wurst_stack_depth] = w__wurst_stackPos
	set wurst_stack_depth = wurst_stack_depth + 1
	if ByteBuffer_typeId[this_1] == 0 then
		if this_1 == 0 then
			call error("Nullpointer exception when calling ByteBuffer.flushBuffer", "when calling error in ByteBuffer, line 30")
		else
			call error("Called ByteBuffer.flushBuffer on invalid object.", "when calling error in ByteBuffer, line 30")
		endif
	endif
	set wurst_stack[wurst_stack_depth] = "when calling flushBuffer in ByteBuffer, line 30"
	set wurst_stack_depth = wurst_stack_depth + 1
	set this_2 = ByteBuffer_storage[this_1]
	set parentKey = ByteBuffer_intCount[this_1]
	set value = ByteBuffer_buffer[this_1]
	set wurst_stack[wurst_stack_depth] = "when calling saveInt in ByteBuffer, line 31"
	set wurst_stack_depth = wurst_stack_depth + 1
	if Table_typeId[this_2] == 0 then
		if this_2 == 0 then
			call error("Nullpointer exception when calling Table.saveInt", "when calling error in Table, line 43")
		else
			call error("Called Table.saveInt on invalid object.", "when calling error in Table, line 43")
		endif
	endif
	call SaveInteger(Table_ht, this_2, parentKey, value)
	set wurst_stack_depth = wurst_stack_depth - 1
	set ByteBuffer_intCount[this_1] = ByteBuffer_intCount[this_1] + 1
	set ByteBuffer_buffer[this_1] = 0
	set ByteBuffer_bufferLength[this_1] = 0
	set wurst_stack_depth = wurst_stack_depth - 1 - 1
endfunction

function ByteBuffer_writeByteUnsafe takes integer this_1, integer n, string w__wurst_stackPos returns nothing
	set wurst_stack[wurst_stack_depth] = w__wurst_stackPos
	set wurst_stack_depth = wurst_stack_depth + 1
	if n < 0 or n > 255 then
		call error("ByteBuffer#writeByteUnsafe ERROR: provided argument (" + I2S(n) + ") is not in the range [0, 255].", "when calling error in ByteBuffer, line 43")
	endif
	set ByteBuffer_buffer[this_1] = ByteBuffer_buffer[this_1] + n * BitwiseInit_powShift[8 * ByteBuffer_bufferLength[this_1]]
	set ByteBuffer_bufferLength[this_1] = ByteBuffer_bufferLength[this_1] + 1
	if ByteBuffer_bufferLength[this_1] > 3 then
		call dispatch_ByteBuffer_ByteBuffer_ByteBuffer_flushBuffer(this_1, "when calling flushBuffer in ByteBuffer, line 47")
	endif
	set wurst_stack_depth = wurst_stack_depth - 1
endfunction

function dispatch_ByteBuffer_ByteBuffer_ByteBuffer_writeByte takes integer this_1, integer n, string w__wurst_stackPos returns nothing
	set wurst_stack[wurst_stack_depth] = w__wurst_stackPos
	set wurst_stack_depth = wurst_stack_depth + 1
	if ByteBuffer_typeId[this_1] == 0 then
		if this_1 == 0 then
			call error("Nullpointer exception when calling ByteBuffer.writeByte", "when calling error in ByteBuffer, line 58")
		else
			call error("Called ByteBuffer.writeByte on invalid object.", "when calling error in ByteBuffer, line 58")
		endif
	endif
	set wurst_stack[wurst_stack_depth] = "when calling writeByte in ByteBuffer, line 58"
	set wurst_stack_depth = wurst_stack_depth + 1
	set n = BlzBitAnd(n, 255)
	set wurst_stack[wurst_stack_depth] = "when calling writeByteUnsafe in ByteBuffer, line 59"
	set wurst_stack_depth = wurst_stack_depth + 1
	if ByteBuffer_typeId[this_1] == 0 then
		if this_1 == 0 then
			call error("Nullpointer exception when calling ByteBuffer.writeByteUnsafe", "when calling error in ByteBuffer, line 41")
		else
			call error("Called ByteBuffer.writeByteUnsafe on invalid object.", "when calling error in ByteBuffer, line 41")
		endif
	endif
	call ByteBuffer_writeByteUnsafe(this_1, n, "when calling writeByteUnsafe in ByteBuffer, line 41")
	set wurst_stack_depth = wurst_stack_depth - 1 - 1 - 1
endfunction

function Base64Decoder_writeBytes takes integer this_1, string chars, string w__wurst_stackPos returns nothing
	local integer data_1
	local integer this_2
	local integer isNegative
	local integer this_3
	local integer value
	set wurst_stack[wurst_stack_depth] = w__wurst_stackPos
	set wurst_stack_depth = wurst_stack_depth + 1
	set w__wurst_stackPos = SubString(chars, 0, 1)
	set data_1 = char(w__wurst_stackPos)
	set data_1 = Base64_REVERSE_CHARMAP[data_1] * BitwiseInit_powShift[18]
	set w__wurst_stackPos = SubString(chars, 1, 2)
	set value = char(w__wurst_stackPos)
	set value = Base64_REVERSE_CHARMAP[value]
	set data_1 = data_1 + value * BitwiseInit_powShift[12]
	set w__wurst_stackPos = SubString(chars, 2, 3)
	set value = char(w__wurst_stackPos)
	set value = Base64_REVERSE_CHARMAP[value]
	set data_1 = data_1 + value * BitwiseInit_powShift[6]
	set chars = SubString(chars, 3, 4)
	set value = char(chars)
	set data_1 = data_1 + Base64_REVERSE_CHARMAP[value]
	set this_3 = Base64Decoder_byteBuffer[this_1]
	set this_2 = BlzBitAnd(data_1, 16777215)
	set value = this_2
	set isNegative = 0
	if this_2 < 0 then
		set value = -2147483648 + this_2
		set isNegative = 1
	endif
	call dispatch_ByteBuffer_ByteBuffer_ByteBuffer_writeByte(this_3, isNegative * BitwiseInit_powShift[15] + value / BitwiseInit_powShift[16], "when calling writeByte in Base64, line 243")
	set data_1 = data_1 * BitwiseInit_powShift[8]
	set isNegative = Base64Decoder_byteBuffer[this_1]
	set this_3 = BlzBitAnd(data_1, 16777215)
	set value = this_3
	set this_2 = 0
	if this_3 < 0 then
		set value = -2147483648 + this_3
		set this_2 = 1
	endif
	call dispatch_ByteBuffer_ByteBuffer_ByteBuffer_writeByte(isNegative, this_2 * BitwiseInit_powShift[15] + value / BitwiseInit_powShift[16], "when calling writeByte in Base64, line 246")
	set data_1 = data_1 * BitwiseInit_powShift[8]
	set this_1 = Base64Decoder_byteBuffer[this_1]
	set data_1 = BlzBitAnd(data_1, 16777215)
	set value = data_1
	set this_2 = 0
	if data_1 < 0 then
		set value = -2147483648 + data_1
		set this_2 = 1
	endif
	call dispatch_ByteBuffer_ByteBuffer_ByteBuffer_writeByte(this_1, this_2 * BitwiseInit_powShift[15] + value / BitwiseInit_powShift[16], "when calling writeByte in Base64, line 249")
	set wurst_stack_depth = wurst_stack_depth - 1
endfunction

function Base64Decoder_append takes integer this_1, string data_1, string w__wurst_stackPos returns nothing
	local integer len
	local integer i
	set wurst_stack[wurst_stack_depth] = w__wurst_stackPos
	set wurst_stack_depth = wurst_stack_depth + 1
	set len = StringLength(data_1)
	if Base64Decoder_bufferLength[this_1] + len < 4 then
		set Base64Decoder_buffer[this_1] = Base64Decoder_buffer[this_1] + data_1
		set Base64Decoder_bufferLength[this_1] = Base64Decoder_bufferLength[this_1] + len
		set wurst_stack_depth = wurst_stack_depth - 1
		return
	endif
	set i = 4 - Base64Decoder_bufferLength[this_1]
	set w__wurst_stackPos = Base64Decoder_buffer[this_1] + SubString(data_1, 0, i)
	set wurst_stack[wurst_stack_depth] = "when calling writeBytes in Base64, line 216"
	set wurst_stack_depth = wurst_stack_depth + 1
	if Base64Decoder_typeId[this_1] == 0 then
		if this_1 == 0 then
			call error("Nullpointer exception when calling Base64Decoder.writeBytes", "when calling error in Base64, line 238")
		else
			call error("Called Base64Decoder.writeBytes on invalid object.", "when calling error in Base64, line 238")
		endif
	endif
	call Base64Decoder_writeBytes(this_1, w__wurst_stackPos, "when calling writeBytes in Base64, line 238")
	set wurst_stack_depth = wurst_stack_depth - 1
	loop
		exitwhen i + 4 > len
		set w__wurst_stackPos = SubString(data_1, i, i + 4)
		set wurst_stack[wurst_stack_depth] = "when calling writeBytes in Base64, line 218"
		set wurst_stack_depth = wurst_stack_depth + 1
		if Base64Decoder_typeId[this_1] == 0 then
			if this_1 == 0 then
				call error("Nullpointer exception when calling Base64Decoder.writeBytes", "when calling error in Base64, line 238")
			else
				call error("Called Base64Decoder.writeBytes on invalid object.", "when calling error in Base64, line 238")
			endif
		endif
		call Base64Decoder_writeBytes(this_1, w__wurst_stackPos, "when calling writeBytes in Base64, line 238")
		set wurst_stack_depth = wurst_stack_depth - 1
		set i = i + 4
	endloop
	set Base64Decoder_buffer[this_1] = SubString(data_1, i, StringLength(data_1))
	set Base64Decoder_bufferLength[this_1] = len - i
	set wurst_stack_depth = wurst_stack_depth - 1
endfunction

function dispatch_ForForceCallback_destroyForForceCallback takes integer this_1, string w__wurst_stackPos returns nothing
	set wurst_stack[wurst_stack_depth] = w__wurst_stackPos
	set wurst_stack_depth = wurst_stack_depth + 1
	if ForForceCallback_typeId[this_1] == 0 then
		if this_1 == 0 then
			call error("Nullpointer exception when calling ForForceCallback.ForForceCallback", "when calling error in Execute, line 9")
		else
			call error("Called ForForceCallback.ForForceCallback on invalid object.", "when calling error in Execute, line 9")
		endif
	endif
	set wurst_stack[wurst_stack_depth] = "when calling destroyForForceCallback in Execute, line 9"
	set wurst_stack_depth = wurst_stack_depth + 1
	set wurst_stack[wurst_stack_depth] = "when calling dealloc_ForForceCallback in Execute, line 9"
	set wurst_stack_depth = wurst_stack_depth + 1
	if ForForceCallback_typeId[this_1] == 0 then
		call error("Double free: object of type ForForceCallback", "when calling error in Execute, line 9")
	else
		set ForForceCallback_nextFree[ForForceCallback_firstFree] = this_1
		set ForForceCallback_firstFree = ForForceCallback_firstFree + 1
		set ForForceCallback_typeId[this_1] = 0
	endif
	set wurst_stack_depth = wurst_stack_depth - 1 - 1 - 1
endfunction

function try takes integer c, string w__wurst_stackPos returns boolean
	local boolean suppressErrors
	set wurst_stack[wurst_stack_depth] = w__wurst_stackPos
	set wurst_stack_depth = wurst_stack_depth + 1
	set Execute_tempCallbacks[Execute_tempCallbacksCount] = c
	set Execute_tempCallbacksSuccess[Execute_tempCallbacksCount] = false
	set Execute_tempCallbacksCount = Execute_tempCallbacksCount + 1
	set suppressErrors = ErrorHandling_suppressErrorMessages
	set ErrorHandling_suppressErrorMessages = true
	call ForForce(Execute_executeForce, ref_function_bridge_executeCurrentCallback)
	set ErrorHandling_suppressErrorMessages = suppressErrors
	set wurst_stack[wurst_stack_depth] = "when calling popCallback in Execute, line 101"
	set wurst_stack_depth = wurst_stack_depth + 1
	set Execute_tempCallbacksCount = Execute_tempCallbacksCount - 1
	call dispatch_ForForceCallback_destroyForForceCallback(Execute_tempCallbacks[Execute_tempCallbacksCount], "when calling dispatch_ForForceCallback_destroyForForceCallback in Execute, line 33")
	set wurst_stack_depth = wurst_stack_depth - 1
	set suppressErrors = Execute_tempCallbacksSuccess[Execute_tempCallbacksCount]
	set wurst_stack_depth = wurst_stack_depth - 1
	return suppressErrors
endfunction

function Base64Decoder_appendData takes integer this_1, integer data_1, string w__wurst_stackPos returns nothing
	local integer this_2
	set wurst_stack[wurst_stack_depth] = w__wurst_stackPos
	set wurst_stack_depth = wurst_stack_depth + 1
	set wurst_stack[wurst_stack_depth] = "when calling alloc_ForForceCallback_execute_Base64Decoder_Base64 in Base64, line 199"
	set wurst_stack_depth = wurst_stack_depth + 1
	if ForForceCallback_firstFree == 0 then
		if ForForceCallback_maxIndex < 32768 then
			set ForForceCallback_maxIndex = ForForceCallback_maxIndex + 1
			set this_2 = ForForceCallback_maxIndex
			set ForForceCallback_typeId[this_2] = 2065
		else
			call error("Out of memory: Could not create ForForceCallback_execute_Base64Decoder_Base64.", "when calling error in Base64, line 199")
			set this_2 = 0
		endif
	else
		set ForForceCallback_firstFree = ForForceCallback_firstFree - 1
		set this_2 = ForForceCallback_nextFree[ForForceCallback_firstFree]
		set ForForceCallback_typeId[this_2] = 2065
	endif
	set wurst_stack_depth = wurst_stack_depth - 1
	set data_309[this_2] = data_1
	set this_459[this_2] = this_1
	set wurst_stack[wurst_stack_depth] = "when calling execute in Base64, line 199"
	set wurst_stack_depth = wurst_stack_depth + 1
	if  not try(this_2, "when calling try in Execute, line 78") then
		call error("execute: thread has crashed. caused by:\n| - " + ErrorHandling_lastError, "when calling error in Execute, line 79")
	endif
	set wurst_stack_depth = wurst_stack_depth - 1 - 1
endfunction

function run_execute_Base64Decoder_Base64 takes integer this_1, string w__wurst_stackPos returns nothing
	local integer i
	local integer this_2
	local boolean ChunkedString_ChunkedString_hasChunk_result
	set wurst_stack[wurst_stack_depth] = w__wurst_stackPos
	set wurst_stack_depth = wurst_stack_depth + 1
	set i = 0
	loop
		set this_2 = data_309[this_1]
		set wurst_stack[wurst_stack_depth] = "when calling hasChunk in Base64, line 201"
		set wurst_stack_depth = wurst_stack_depth + 1
		if ChunkedString_typeId[this_2] == 0 then
			if this_2 == 0 then
				call error("Nullpointer exception when calling ChunkedString.hasChunk", "when calling error in ChunkedString, line 61")
			else
				call error("Called ChunkedString.hasChunk on invalid object.", "when calling error in ChunkedString, line 61")
			endif
		endif
		set ChunkedString_ChunkedString_hasChunk_result = ChunkedString_readIndex[this_2] < ChunkedString_chunkCount[this_2]
		set wurst_stack_depth = wurst_stack_depth - 1
		exitwhen ( not ChunkedString_ChunkedString_hasChunk_result) or i >= 25
		set this_2 = this_459[this_1]
		set w__wurst_stackPos = dispatch_ChunkedString_ChunkedString_ChunkedString_readChunk(data_309[this_1], "when calling readChunk in Base64, line 202")
		set wurst_stack[wurst_stack_depth] = "when calling append in Base64, line 202"
		set wurst_stack_depth = wurst_stack_depth + 1
		if Base64Decoder_typeId[this_2] == 0 then
			if this_2 == 0 then
				call error("Nullpointer exception when calling Base64Decoder.append", "when calling error in Base64, line 209")
			else
				call error("Called Base64Decoder.append on invalid object.", "when calling error in Base64, line 209")
			endif
		endif
		call Base64Decoder_append(this_2, w__wurst_stackPos, "when calling append in Base64, line 209")
		set wurst_stack_depth = wurst_stack_depth - 1
		set i = i + 1
	endloop
	set i = data_309[this_1]
	set wurst_stack[wurst_stack_depth] = "when calling hasChunk in Base64, line 205"
	set wurst_stack_depth = wurst_stack_depth + 1
	if ChunkedString_typeId[i] == 0 then
		if i == 0 then
			call error("Nullpointer exception when calling ChunkedString.hasChunk", "when calling error in ChunkedString, line 61")
		else
			call error("Called ChunkedString.hasChunk on invalid object.", "when calling error in ChunkedString, line 61")
		endif
	endif
	set ChunkedString_ChunkedString_hasChunk_result = ChunkedString_readIndex[i] < ChunkedString_chunkCount[i]
	set wurst_stack_depth = wurst_stack_depth - 1
	if ChunkedString_ChunkedString_hasChunk_result then
		call Base64Decoder_appendData(this_459[this_1], data_309[this_1], "when calling appendData in Base64, line 206")
	endif
	set wurst_stack_depth = wurst_stack_depth - 1
endfunction

function dispatch_Base64Encoder_Base64_Base64Encoder_flushStringBuffer takes integer this_1, string w__wurst_stackPos returns nothing
	local integer this_2
	set wurst_stack[wurst_stack_depth] = w__wurst_stackPos
	set wurst_stack_depth = wurst_stack_depth + 1
	if Base64Encoder_typeId[this_1] == 0 then
		if this_1 == 0 then
			call error("Nullpointer exception when calling Base64Encoder.flushStringBuffer", "when calling error in Base64, line 112")
		else
			call error("Called Base64Encoder.flushStringBuffer on invalid object.", "when calling error in Base64, line 112")
		endif
	endif
	set wurst_stack[wurst_stack_depth] = "when calling flushStringBuffer in Base64, line 112"
	set wurst_stack_depth = wurst_stack_depth + 1
	set this_2 = Base64Encoder_chunkedString[this_1]
	set w__wurst_stackPos = Base64Encoder_stringBuffer[this_1]
	set wurst_stack[wurst_stack_depth] = "when calling append in Base64, line 113"
	set wurst_stack_depth = wurst_stack_depth + 1
	if ChunkedString_typeId[this_2] == 0 then
		if this_2 == 0 then
			call error("Nullpointer exception when calling ChunkedString.append", "when calling error in ChunkedString, line 41")
		else
			call error("Called ChunkedString.append on invalid object.", "when calling error in ChunkedString, line 41")
		endif
	endif
	call ChunkedString_append(this_2, w__wurst_stackPos, "when calling append in ChunkedString, line 41")
	set wurst_stack_depth = wurst_stack_depth - 1
	set Base64Encoder_stringBuffer[this_1] = ""
	set Base64Encoder_chars[this_1] = 0
	set wurst_stack_depth = wurst_stack_depth - 1 - 1
endfunction

function dispatch_Base64Encoder_Base64_Base64Encoder_append takes integer this_1, string char_1, string w__wurst_stackPos returns nothing
	set wurst_stack[wurst_stack_depth] = w__wurst_stackPos
	set wurst_stack_depth = wurst_stack_depth + 1
	if Base64Encoder_typeId[this_1] == 0 then
		if this_1 == 0 then
			call error("Nullpointer exception when calling Base64Encoder.append", "when calling error in Base64, line 117")
		else
			call error("Called Base64Encoder.append on invalid object.", "when calling error in Base64, line 117")
		endif
	endif
	set wurst_stack[wurst_stack_depth] = "when calling append in Base64, line 117"
	set wurst_stack_depth = wurst_stack_depth + 1
	set Base64Encoder_stringBuffer[this_1] = Base64Encoder_stringBuffer[this_1] + char_1
	set Base64Encoder_chars[this_1] = Base64Encoder_chars[this_1] + 1
	if Base64Encoder_chars[this_1] == 32 then
		call dispatch_Base64Encoder_Base64_Base64Encoder_flushStringBuffer(this_1, "when calling flushStringBuffer in Base64, line 121")
	endif
	set wurst_stack_depth = wurst_stack_depth - 1 - 1
endfunction

function Base64Encoder_encode takes integer this_1, integer byte, integer count, string w__wurst_stackPos returns nothing
	local integer i
	local integer temp
	local integer value
	local integer isNegative
	set wurst_stack[wurst_stack_depth] = w__wurst_stackPos
	set wurst_stack_depth = wurst_stack_depth + 1
	set i = 0
	set temp = count
	loop
		exitwhen i > temp
		set count = BlzBitAnd(byte, 16515072)
		set value = count
		set isNegative = 0
		if count < 0 then
			set value = -2147483648 + count
			set isNegative = 1
		endif
		call dispatch_Base64Encoder_Base64_Base64Encoder_append(this_1, Base64_CHARMAP[isNegative * BitwiseInit_powShift[13] + value / BitwiseInit_powShift[18]], "when calling append in Base64, line 128")
		set byte = byte * BitwiseInit_powShift[6]
		set i = i + 1
	endloop
	set wurst_stack_depth = wurst_stack_depth - 1
endfunction

function Base64Encoder_writeByteUnsafe takes integer this_1, integer n, string w__wurst_stackPos returns nothing
	set wurst_stack[wurst_stack_depth] = w__wurst_stackPos
	set wurst_stack_depth = wurst_stack_depth + 1
	set Base64Encoder_buffer[this_1] = Base64Encoder_buffer[this_1] * BitwiseInit_powShift[8] + n
	set Base64Encoder_bytes[this_1] = Base64Encoder_bytes[this_1] + 1
	if Base64Encoder_bytes[this_1] == 3 then
		set n = Base64Encoder_buffer[this_1]
		set wurst_stack[wurst_stack_depth] = "when calling encode in Base64, line 137"
		set wurst_stack_depth = wurst_stack_depth + 1
		if Base64Encoder_typeId[this_1] == 0 then
			if this_1 == 0 then
				call error("Nullpointer exception when calling Base64Encoder.encode", "when calling error in Base64, line 123")
			else
				call error("Called Base64Encoder.encode on invalid object.", "when calling error in Base64, line 123")
			endif
		endif
		call Base64Encoder_encode(this_1, n, 3, "when calling encode in Base64, line 123")
		set wurst_stack_depth = wurst_stack_depth - 1
		set Base64Encoder_bytes[this_1] = 0
	endif
	set wurst_stack_depth = wurst_stack_depth - 1
endfunction

function Base64Encoder_writeData takes integer this_1, integer data_1, string w__wurst_stackPos returns nothing
	local integer this_2
	set wurst_stack[wurst_stack_depth] = w__wurst_stackPos
	set wurst_stack_depth = wurst_stack_depth + 1
	set wurst_stack[wurst_stack_depth] = "when calling alloc_ForForceCallback_execute_Base64Encoder_Base64 in Base64, line 103"
	set wurst_stack_depth = wurst_stack_depth + 1
	if ForForceCallback_firstFree == 0 then
		if ForForceCallback_maxIndex < 32768 then
			set ForForceCallback_maxIndex = ForForceCallback_maxIndex + 1
			set this_2 = ForForceCallback_maxIndex
			set ForForceCallback_typeId[this_2] = 2066
		else
			call error("Out of memory: Could not create ForForceCallback_execute_Base64Encoder_Base64.", "when calling error in Base64, line 103")
			set this_2 = 0
		endif
	else
		set ForForceCallback_firstFree = ForForceCallback_firstFree - 1
		set this_2 = ForForceCallback_nextFree[ForForceCallback_firstFree]
		set ForForceCallback_typeId[this_2] = 2066
	endif
	set wurst_stack_depth = wurst_stack_depth - 1
	set data[this_2] = data_1
	set this_458[this_2] = this_1
	set wurst_stack[wurst_stack_depth] = "when calling execute in Base64, line 103"
	set wurst_stack_depth = wurst_stack_depth + 1
	if  not try(this_2, "when calling try in Execute, line 78") then
		call error("execute: thread has crashed. caused by:\n| - " + ErrorHandling_lastError, "when calling error in Execute, line 79")
	endif
	set wurst_stack_depth = wurst_stack_depth - 1 - 1
endfunction

function ByteBuffer_selectByte takes integer n, integer byte returns integer
	local integer amount = 8 * byte
	local integer isNegative
	set byte = n
	set isNegative = 0
	if n < 0 then
		set byte = -2147483648 + n
		set isNegative = 1
	endif
	return BlzBitAnd(isNegative * BitwiseInit_powShift[31 - amount] + byte / BitwiseInit_powShift[amount], 255)
endfunction

function ByteBuffer_readByte takes integer this_1, string w__wurst_stackPos returns integer
	local integer this_2
	local integer parentKey
	set wurst_stack[wurst_stack_depth] = w__wurst_stackPos
	set wurst_stack_depth = wurst_stack_depth + 1
	if ByteBuffer_readBufferIndex[this_1] == 4 then
		set ByteBuffer_readIndex[this_1] = ByteBuffer_readIndex[this_1] + 1
		if ByteBuffer_readIndex[this_1] < ByteBuffer_intCount[this_1] then
			set this_2 = ByteBuffer_storage[this_1]
			set parentKey = ByteBuffer_readIndex[this_1]
			set wurst_stack[wurst_stack_depth] = "when calling loadInt in ByteBuffer, line 77"
			set wurst_stack_depth = wurst_stack_depth + 1
			if Table_typeId[this_2] == 0 then
				if this_2 == 0 then
					call error("Nullpointer exception when calling Table.loadInt", "when calling error in Table, line 40")
				else
					call error("Called Table.loadInt on invalid object.", "when calling error in Table, line 40")
				endif
			endif
			set this_2 = LoadInteger(Table_ht, this_2, parentKey)
			set wurst_stack_depth = wurst_stack_depth - 1
		else
			set this_2 = ByteBuffer_buffer[this_1]
		endif
		set ByteBuffer_readBuffer[this_1] = this_2
		set ByteBuffer_readBufferIndex[this_1] = 0
	endif
	set this_2 = ByteBuffer_selectByte(ByteBuffer_readBuffer[this_1], ByteBuffer_readBufferIndex[this_1])
	set ByteBuffer_readBufferIndex[this_1] = ByteBuffer_readBufferIndex[this_1] + 1
	set wurst_stack_depth = wurst_stack_depth - 1
	return this_2
endfunction

function run_execute_Base64Encoder_Base64 takes integer this_1, string w__wurst_stackPos returns nothing
	local integer i
	local integer this_2
	local integer this_3
	local boolean ByteBuffer_ByteBuffer_hasByte_result
	set wurst_stack[wurst_stack_depth] = w__wurst_stackPos
	set wurst_stack_depth = wurst_stack_depth + 1
	set i = 0
	loop
		set this_2 = data[this_1]
		set wurst_stack[wurst_stack_depth] = "when calling hasByte in Base64, line 105"
		set wurst_stack_depth = wurst_stack_depth + 1
		if ByteBuffer_typeId[this_2] == 0 then
			if this_2 == 0 then
				call error("Nullpointer exception when calling ByteBuffer.hasByte", "when calling error in ByteBuffer, line 70")
			else
				call error("Called ByteBuffer.hasByte on invalid object.", "when calling error in ByteBuffer, line 70")
			endif
		endif
		set ByteBuffer_ByteBuffer_hasByte_result = ByteBuffer_readIndex[this_2] < ByteBuffer_intCount[this_2] or ByteBuffer_readBufferIndex[this_2] < ByteBuffer_bufferLength[this_2]
		set wurst_stack_depth = wurst_stack_depth - 1
		exitwhen ( not ByteBuffer_ByteBuffer_hasByte_result) or i >= 1000
		set this_2 = this_458[this_1]
		set this_3 = data[this_1]
		set wurst_stack[wurst_stack_depth] = "when calling readByte in Base64, line 106"
		set wurst_stack_depth = wurst_stack_depth + 1
		if ByteBuffer_typeId[this_3] == 0 then
			if this_3 == 0 then
				call error("Nullpointer exception when calling ByteBuffer.readByte", "when calling error in ByteBuffer, line 74")
			else
				call error("Called ByteBuffer.readByte on invalid object.", "when calling error in ByteBuffer, line 74")
			endif
		endif
		set this_3 = ByteBuffer_readByte(this_3, "when calling readByte in ByteBuffer, line 74")
		set wurst_stack_depth = wurst_stack_depth - 1
		set wurst_stack[wurst_stack_depth] = "when calling writeByteUnsafe in Base64, line 106"
		set wurst_stack_depth = wurst_stack_depth + 1
		if Base64Encoder_typeId[this_2] == 0 then
			if this_2 == 0 then
				call error("Nullpointer exception when calling Base64Encoder.writeByteUnsafe", "when calling error in Base64, line 133")
			else
				call error("Called Base64Encoder.writeByteUnsafe on invalid object.", "when calling error in Base64, line 133")
			endif
		endif
		call Base64Encoder_writeByteUnsafe(this_2, this_3, "when calling writeByteUnsafe in Base64, line 133")
		set wurst_stack_depth = wurst_stack_depth - 1
		set i = i + 1
	endloop
	set i = data[this_1]
	set wurst_stack[wurst_stack_depth] = "when calling hasByte in Base64, line 109"
	set wurst_stack_depth = wurst_stack_depth + 1
	if ByteBuffer_typeId[i] == 0 then
		if i == 0 then
			call error("Nullpointer exception when calling ByteBuffer.hasByte", "when calling error in ByteBuffer, line 70")
		else
			call error("Called ByteBuffer.hasByte on invalid object.", "when calling error in ByteBuffer, line 70")
		endif
	endif
	set ByteBuffer_ByteBuffer_hasByte_result = ByteBuffer_readIndex[i] < ByteBuffer_intCount[i] or ByteBuffer_readBufferIndex[i] < ByteBuffer_bufferLength[i]
	set wurst_stack_depth = wurst_stack_depth - 1
	if ByteBuffer_ByteBuffer_hasByte_result then
		call Base64Encoder_writeData(this_458[this_1], data[this_1], "when calling writeData in Base64, line 110")
	endif
	set wurst_stack_depth = wurst_stack_depth - 1
endfunction

function run_execute_Execute takes integer this_1, string w__wurst_stackPos returns nothing
	set wurst_stack[wurst_stack_depth] = w__wurst_stackPos
	set wurst_stack_depth = wurst_stack_depth + 1
	loop
		exitwhen true
	endloop
	set wurst_stack_depth = wurst_stack_depth - 1
endfunction

function dispatch_ForForceCallback_Execute_ForForceCallback_run takes integer this_1, string w__wurst_stackPos returns nothing
	local integer i
	set wurst_stack[wurst_stack_depth] = w__wurst_stackPos
	set wurst_stack_depth = wurst_stack_depth + 1
	if ForForceCallback_typeId[this_1] == 0 then
		if this_1 == 0 then
			call error("Nullpointer exception when calling ForForceCallback.run", "when calling error in Execute, line 10")
		else
			call error("Called ForForceCallback.run on invalid object.", "when calling error in Execute, line 10")
		endif
	endif
	if ForForceCallback_typeId[this_1] <= 2067 then
		if ForForceCallback_typeId[this_1] <= 2066 then
			if ForForceCallback_typeId[this_1] <= 2065 then
				call run_execute_Base64Decoder_Base64(this_1, "when calling run_execute_Base64Decoder_Base64 in Execute, line 10")
			else
				call run_execute_Base64Encoder_Base64(this_1, "when calling run_execute_Base64Encoder_Base64 in Execute, line 10")
			endif
		else
			call run_execute_Execute(this_1, "when calling run_execute_Execute in Execute, line 10")
		endif
	elseif ForForceCallback_typeId[this_1] <= 2068 then
		set this_1 = ForceTests_testInt
		if this_1 != 0 then
			call testFail("Expected <" + I2S(0) + ">, Actual <" + I2S(this_1) + ">")
		endif
		set ForceTests_testInt = 10
	else
		set wurst_stack[wurst_stack_depth] = "when calling run_execute_GroupUtils in Execute, line 10"
		set wurst_stack_depth = wurst_stack_depth + 1
		set GroupUtils_numTotal = GroupUtils_numTotal + createNow[this_1]
		set i = 1
		set this_1 = createNow[this_1]
		loop
			exitwhen i > this_1
			call push(CreateGroup(), "when calling push in GroupUtils, line 93")
			set i = i + 1
		endloop
		set wurst_stack_depth = wurst_stack_depth - 1
	endif
	set wurst_stack_depth = wurst_stack_depth - 1
endfunction

function bridge_executeCurrentCallback takes nothing returns nothing
	set wurst_stack_depth = 0
	set wurst_stack[wurst_stack_depth] = "via function reference Execute, line 99"
	set wurst_stack_depth = wurst_stack_depth + 1
	set ErrorHandling_lastError = ""
	call dispatch_ForForceCallback_Execute_ForForceCallback_run(Execute_tempCallbacks[Execute_tempCallbacksCount - 1], "when calling run in Execute, line 19")
	set Execute_tempCallbacksSuccess[Execute_tempCallbacksCount - 1] = true
	set wurst_stack_depth = wurst_stack_depth - 1
endfunction

function bridge_init_ChannelAbilityPreset takes nothing returns boolean
	set wurst_stack_depth = 0
	set wurst_stack[wurst_stack_depth] = "via function reference ChannelAbilityPreset, line 1"
	set wurst_stack_depth = wurst_stack_depth + 1
	set wurst_stack[wurst_stack_depth] = "when calling new_OrderStringFactory in ChannelAbilityPreset, line 11"
	set wurst_stack_depth = wurst_stack_depth + 1
	set wurst_stack[wurst_stack_depth] = "when calling alloc_OrderStringFactory in OrderStringFactory, line 9"
	set wurst_stack_depth = wurst_stack_depth + 1
	if OrderStringFactory_firstFree == 0 then
		if OrderStringFactory_maxIndex < 32768 then
			set OrderStringFactory_maxIndex = OrderStringFactory_maxIndex + 1
		else
			call error("Out of memory: Could not create OrderStringFactory.", "when calling error in OrderStringFactory, line 9")
		endif
	else
		set OrderStringFactory_firstFree = OrderStringFactory_firstFree - 1
	endif
	set wurst_stack_depth = wurst_stack_depth - 1
	set wurst_stack_depth = wurst_stack_depth - 1 - 1
	return true
endfunction

function new_HashMap takes string w__wurst_stackPos returns integer
	local integer this_1
	set wurst_stack[wurst_stack_depth] = w__wurst_stackPos
	set wurst_stack_depth = wurst_stack_depth + 1
	set wurst_stack[wurst_stack_depth] = "when calling alloc_HashMap in HashMap, line 7"
	set wurst_stack_depth = wurst_stack_depth + 1
	if Table_firstFree == 0 then
		if Table_maxIndex < 32768 then
			set Table_maxIndex = Table_maxIndex + 1
			set this_1 = Table_maxIndex
			set Table_typeId[this_1] = 4108
		else
			call error("Out of memory: Could not create HashMap.", "when calling error in HashMap, line 8")
			set this_1 = 0
		endif
	else
		set Table_firstFree = Table_firstFree - 1
		set this_1 = Table_nextFree[Table_firstFree]
		set Table_typeId[this_1] = 4108
	endif
	set wurst_stack_depth = wurst_stack_depth - 1
	set HashMap_size[this_1] = 0
	set wurst_stack_depth = wurst_stack_depth - 1
	return this_1
endfunction

function init_ClosureEvents takes string w__wurst_stackPos returns boolean
	local integer this_1
	local timer this_2
	set wurst_stack[wurst_stack_depth] = w__wurst_stackPos
	set wurst_stack_depth = wurst_stack_depth + 1
	set ClosureEvents_EVENT_PLAYER_CHAT_FILTER = ConvertPlayerEvent(96)
	set EventListener_castMap = new_HashMap("when calling new_HashMap in ClosureEvents, line 106")
	set ClosureEvents_unitTrig = CreateTrigger()
	set ClosureEvents_leaveTrig = CreateTrigger()
	set ClosureEvents_keyTrig = CreateTrigger()
	call TriggerAddCondition(UnitIndexer_onIndexTrigger, Condition(ref_function_code__onUnitIndex_ClosureEvents))
	call TriggerAddCondition(UnitIndexer_onDeindexTrigger, Condition(ref_function_bridge_code__onUnitDeindex_ClosureEvents))
	set wurst_stack[wurst_stack_depth] = "when calling alloc_CallbackSingle_nullTimer_ClosureEvents in ClosureEvents, line 298"
	set wurst_stack_depth = wurst_stack_depth + 1
	if CallbackSingle_firstFree == 0 then
		if CallbackSingle_maxIndex < 32768 then
			set CallbackSingle_maxIndex = CallbackSingle_maxIndex + 1
			set this_1 = CallbackSingle_maxIndex
			set CallbackSingle_typeId[this_1] = 1115
		else
			call error("Out of memory: Could not create CallbackSingle_nullTimer_ClosureEvents.", "when calling error in ClosureEvents, line 298")
			set this_1 = 0
		endif
	else
		set CallbackSingle_firstFree = CallbackSingle_firstFree - 1
		set this_1 = CallbackSingle_nextFree[CallbackSingle_firstFree]
		set CallbackSingle_typeId[this_1] = 1115
	endif
	set wurst_stack_depth = wurst_stack_depth - 1
	set wurst_stack[wurst_stack_depth] = "when calling nullTimer in ClosureEvents, line 298"
	set wurst_stack_depth = wurst_stack_depth + 1
	set wurst_stack[wurst_stack_depth] = "when calling doAfter in ClosureTimers, line 51"
	set wurst_stack_depth = wurst_stack_depth + 1
	set this_2 = getTimer("when calling getTimer in ClosureTimers, line 28")
	set wurst_stack[wurst_stack_depth] = "when calling doAfter in ClosureTimers, line 28"
	set wurst_stack_depth = wurst_stack_depth + 1
	call dispatch_CallbackSingle_ClosureTimers_CallbackSingle_start(this_1, this_2, 0., "when calling start in ClosureTimers, line 17")
	set wurst_stack_depth = wurst_stack_depth - 1 - 1
	set wurst_stack_depth = wurst_stack_depth - 1 - 1
	return true
endfunction

function bridge_init_ClosureEvents takes nothing returns boolean
	set wurst_stack_depth = 0
	return init_ClosureEvents("via function reference ClosureEvents, line 1")
endfunction

function init_ClosureFrames takes string w__wurst_stackPos returns boolean
	set wurst_stack[wurst_stack_depth] = w__wurst_stackPos
	set wurst_stack_depth = wurst_stack_depth + 1
	call TriggerAddAction(CreateTrigger(), ref_function_bridge_onEvent)
	set ClosureFrames_FRAME_MAP = new_HashMap("when calling new_HashMap in ClosureFrames, line 23")
	set wurst_stack_depth = wurst_stack_depth - 1
	return true
endfunction

function bridge_init_ClosureFrames takes nothing returns boolean
	set wurst_stack_depth = 0
	return init_ClosureFrames("via function reference ClosureFrames, line 1")
endfunction

function init_ClosureKeyPresses takes string w__wurst_stackPos returns boolean
	set wurst_stack[wurst_stack_depth] = w__wurst_stackPos
	set wurst_stack_depth = wurst_stack_depth + 1
	call TriggerAddAction(CreateTrigger(), ref_function_bridge_onEvent_370)
	set ClosureKeyPresses_KEY_MAP = new_HashMap("when calling new_HashMap in ClosureKeyPresses, line 30")
	set wurst_stack_depth = wurst_stack_depth - 1
	return true
endfunction

function bridge_init_ClosureKeyPresses takes nothing returns boolean
	set wurst_stack_depth = 0
	return init_ClosureKeyPresses("via function reference ClosureKeyPresses, line 1")
endfunction

function initializeTable takes string w__wurst_stackPos returns nothing
	local integer i
	local integer this_1
	local integer parentKey
	set wurst_stack[wurst_stack_depth] = w__wurst_stackPos
	set wurst_stack_depth = wurst_stack_depth + 1
	set i = 0
	loop
		exitwhen i > 15
		set this_1 = Colors_decs
		set parentKey = StringHash(Colors_hexs[i])
		set wurst_stack[wurst_stack_depth] = "when calling saveInt in Colors, line 299"
		set wurst_stack_depth = wurst_stack_depth + 1
		if Table_typeId[this_1] == 0 then
			if this_1 == 0 then
				call error("Nullpointer exception when calling Table.saveInt", "when calling error in Table, line 43")
			else
				call error("Called Table.saveInt on invalid object.", "when calling error in Table, line 43")
			endif
		endif
		call SaveInteger(Table_ht, this_1, parentKey, i)
		set wurst_stack_depth = wurst_stack_depth - 1
		set i = i + 1
	endloop
	set wurst_stack_depth = wurst_stack_depth - 1
endfunction

function new_Table takes string w__wurst_stackPos returns integer
	local integer this_1
	set wurst_stack[wurst_stack_depth] = w__wurst_stackPos
	set wurst_stack_depth = wurst_stack_depth + 1
	set wurst_stack[wurst_stack_depth] = "when calling alloc_Table in Table, line 6"
	set wurst_stack_depth = wurst_stack_depth + 1
	if Table_firstFree == 0 then
		if Table_maxIndex < 32768 then
			set Table_maxIndex = Table_maxIndex + 1
			set this_1 = Table_maxIndex
			set Table_typeId[this_1] = 4107
		else
			call error("Out of memory: Could not create Table.", "when calling error in Table, line 7")
			set this_1 = 0
		endif
	else
		set Table_firstFree = Table_firstFree - 1
		set this_1 = Table_nextFree[Table_firstFree]
		set Table_typeId[this_1] = 4107
	endif
	set wurst_stack_depth = wurst_stack_depth - 1 - 1
	return this_1
endfunction

function init_Colors takes string w__wurst_stackPos returns boolean
	set wurst_stack[wurst_stack_depth] = w__wurst_stackPos
	set wurst_stack_depth = wurst_stack_depth + 1
	set Colors_hexs[0] = "0"
	set Colors_hexs[1] = "1"
	set Colors_hexs[2] = "2"
	set Colors_hexs[3] = "3"
	set Colors_hexs[4] = "4"
	set Colors_hexs[5] = "5"
	set Colors_hexs[6] = "6"
	set Colors_hexs[7] = "7"
	set Colors_hexs[8] = "8"
	set Colors_hexs[9] = "9"
	set Colors_hexs[10] = "A"
	set Colors_hexs[11] = "B"
	set Colors_hexs[12] = "C"
	set Colors_hexs[13] = "D"
	set Colors_hexs[14] = "E"
	set Colors_hexs[15] = "F"
	set Colors_decs = new_Table("when calling new_Table in Colors, line 15")
	call initializeTable("when calling initializeTable in Colors, line 302")
	set wurst_stack_depth = wurst_stack_depth - 1
	return true
endfunction

function bridge_init_Colors takes nothing returns boolean
	set wurst_stack_depth = 0
	return init_Colors("via function reference Colors, line 1")
endfunction

function new_DamageElement takes string name, integer color_red, integer color_green, integer color_blue, integer color_alpha, string w__wurst_stackPos returns integer
	set wurst_stack[wurst_stack_depth] = w__wurst_stackPos
	set wurst_stack_depth = wurst_stack_depth + 1
	set wurst_stack[wurst_stack_depth] = "when calling alloc_DamageElement in DamageEvent, line 101"
	set wurst_stack_depth = wurst_stack_depth + 1
	if DamageElement_firstFree == 0 then
		if DamageElement_maxIndex < 32768 then
			set DamageElement_maxIndex = DamageElement_maxIndex + 1
			set color_red = DamageElement_maxIndex
		else
			call error("Out of memory: Could not create DamageElement.", "when calling error in DamageEvent, line 97")
			set color_red = 0
		endif
	else
		set DamageElement_firstFree = DamageElement_firstFree - 1
		set color_red = DamageElement_nextFree[DamageElement_firstFree]
	endif
	set wurst_stack_depth = wurst_stack_depth - 1 - 1
	return color_red
endfunction

function init_DamageEvent takes string w__wurst_stackPos returns boolean
	local playerunitevent temp
	local integer this_1
	local integer this_2
	set wurst_stack[wurst_stack_depth] = w__wurst_stackPos
	set wurst_stack_depth = wurst_stack_depth + 1
	set DamageEvent_DAMAGE_ELEMENT_ATTACK = new_DamageElement("Physical", 223, 59, 33, 255, "when calling new_DamageElement in DamageEvent, line 72")
	set DamageInstance_current = 0
	set DamageEvent_nextDamageType = 4
	set DamageEvent_nextDamageElement = 0
	set temp = EVENT_PLAYER_UNIT_DAMAGING
	set wurst_stack[wurst_stack_depth] = "when calling alloc_EventListener_add_DamageEvent in DamageEvent, line 474"
	set wurst_stack_depth = wurst_stack_depth + 1
	if EventListener_firstFree == 0 then
		if EventListener_maxIndex < 32768 then
			set EventListener_maxIndex = EventListener_maxIndex + 1
			set this_1 = EventListener_maxIndex
			set EventListener_typeId[this_1] = 1920
		else
			call error("Out of memory: Could not create EventListener_add_DamageEvent.", "when calling error in DamageEvent, line 474")
			set this_1 = 0
		endif
	else
		set EventListener_firstFree = EventListener_firstFree - 1
		set this_1 = EventListener_nextFree[EventListener_firstFree]
		set EventListener_typeId[this_1] = 1920
	endif
	set wurst_stack_depth = wurst_stack_depth - 1
	set EventListener_eventId[this_1] = 0
	set EventListener_uid[this_1] = -1
	set EventListener_next[this_1] = 0
	set EventListener_prev[this_1] = 0
	set wurst_stack[wurst_stack_depth] = "when calling add in DamageEvent, line 474"
	set wurst_stack_depth = wurst_stack_depth + 1
	set wurst_stack[wurst_stack_depth] = "when calling toIntId in ClosureEvents, line 120"
	set wurst_stack_depth = wurst_stack_depth + 1
	set this_2 = ClosureEvents_eventidToIndex[GetHandleId(temp)]
	if this_2 == 0 then
		set this_2 = registerEventId(temp, "when calling registerEventId in ClosureEvents, line 243")
	endif
	set wurst_stack_depth = wurst_stack_depth - 1
	set EventListener_eventId[this_1] = this_2
	if EventListener_generalListenersFirsts[EventListener_eventId[this_1]] != 0 then
		set EventListener_prev[EventListener_generalListenersFirsts[EventListener_eventId[this_1]]] = this_1
		set EventListener_next[this_1] = EventListener_generalListenersFirsts[EventListener_eventId[this_1]]
	endif
	set EventListener_generalListenersFirsts[EventListener_eventId[this_1]] = this_1
	set wurst_stack_depth = wurst_stack_depth - 1
	set temp = EVENT_PLAYER_UNIT_DAMAGED
	set wurst_stack[wurst_stack_depth] = "when calling alloc_EventListener_add_DamageEvent in DamageEvent, line 475"
	set wurst_stack_depth = wurst_stack_depth + 1
	if EventListener_firstFree == 0 then
		if EventListener_maxIndex < 32768 then
			set EventListener_maxIndex = EventListener_maxIndex + 1
			set this_2 = EventListener_maxIndex
			set EventListener_typeId[this_2] = 1921
		else
			call error("Out of memory: Could not create EventListener_add_DamageEvent.", "when calling error in DamageEvent, line 475")
			set this_2 = 0
		endif
	else
		set EventListener_firstFree = EventListener_firstFree - 1
		set this_2 = EventListener_nextFree[EventListener_firstFree]
		set EventListener_typeId[this_2] = 1921
	endif
	set wurst_stack_depth = wurst_stack_depth - 1
	set EventListener_eventId[this_2] = 0
	set EventListener_uid[this_2] = -1
	set EventListener_next[this_2] = 0
	set EventListener_prev[this_2] = 0
	set wurst_stack[wurst_stack_depth] = "when calling add in DamageEvent, line 475"
	set wurst_stack_depth = wurst_stack_depth + 1
	set wurst_stack[wurst_stack_depth] = "when calling toIntId in ClosureEvents, line 120"
	set wurst_stack_depth = wurst_stack_depth + 1
	set this_1 = ClosureEvents_eventidToIndex[GetHandleId(temp)]
	if this_1 == 0 then
		set this_1 = registerEventId(temp, "when calling registerEventId in ClosureEvents, line 243")
	endif
	set wurst_stack_depth = wurst_stack_depth - 1
	set EventListener_eventId[this_2] = this_1
	if EventListener_generalListenersFirsts[EventListener_eventId[this_2]] != 0 then
		set EventListener_prev[EventListener_generalListenersFirsts[EventListener_eventId[this_2]]] = this_2
		set EventListener_next[this_2] = EventListener_generalListenersFirsts[EventListener_eventId[this_2]]
	endif
	set EventListener_generalListenersFirsts[EventListener_eventId[this_2]] = this_2
	set wurst_stack_depth = wurst_stack_depth - 1 - 1
	return true
endfunction

function bridge_init_DamageEvent takes nothing returns boolean
	set wurst_stack_depth = 0
	return init_DamageEvent("via function reference DamageEvent, line 61")
endfunction

function bridge_init_DialogBox takes nothing returns boolean
	set wurst_stack_depth = 0
	set wurst_stack[wurst_stack_depth] = "via function reference DialogBox, line 1"
	set wurst_stack_depth = wurst_stack_depth + 1
	call new_HashMap("when calling new_HashMap in DialogBox, line 25")
	set wurst_stack_depth = wurst_stack_depth - 1
	return true
endfunction

function createDummy takes real pos_x_1, real pos_y_1, real facing_radians returns unit
	local unit u_1 = CreateUnit(Basics_DUMMY_PLAYER, 2016423985, pos_x_1, pos_y_1, facing_radians * 57.295779513)
	call UnitAddAbility(u_1, 1097691750)
	call UnitRemoveAbility(u_1, 1097691750)
	call UnitAddAbility(u_1, 1095577649)
	call UnitRemoveAbility(u_1, 1095577649)
	call SetUnitX(u_1, pos_x_1)
	call SetUnitY(u_1, pos_y_1)
	call SetUnitFacing(u_1, facing_radians * 57.295779513)
	return u_1
endfunction

function new_LinkedList takes string w__wurst_stackPos returns integer
	local integer this_1
	set wurst_stack[wurst_stack_depth] = w__wurst_stackPos
	set wurst_stack_depth = wurst_stack_depth + 1
	set wurst_stack[wurst_stack_depth] = "when calling alloc_LinkedList in LinkedList, line 32"
	set wurst_stack_depth = wurst_stack_depth + 1
	if LinkedList_firstFree == 0 then
		if LinkedList_maxIndex < 32768 then
			set LinkedList_maxIndex = LinkedList_maxIndex + 1
			set this_1 = LinkedList_maxIndex
			set LinkedList_typeId[this_1] = 2757
		else
			call error("Out of memory: Could not create LinkedList.", "when calling error in LinkedList, line 18")
			set this_1 = 0
		endif
	else
		set LinkedList_firstFree = LinkedList_firstFree - 1
		set this_1 = LinkedList_nextFree[LinkedList_firstFree]
		set LinkedList_typeId[this_1] = 2757
	endif
	set wurst_stack_depth = wurst_stack_depth - 1
	set wurst_stack[wurst_stack_depth] = "when calling construct_LinkedList2 in LinkedList, line 32"
	set wurst_stack_depth = wurst_stack_depth + 1
	set wurst_stack[wurst_stack_depth] = "when calling LinkedList_init in LinkedList, line 32"
	set wurst_stack_depth = wurst_stack_depth + 1
	set LinkedList_dummy[this_1] = new_LLEntry(0, 0, 0, "when calling new_LLEntry in LinkedList, line 19")
	set LinkedList_size[this_1] = 0
	set wurst_stack_depth = wurst_stack_depth - 1
	set LLEntry_next[LinkedList_dummy[this_1]] = LinkedList_dummy[this_1]
	set LLEntry_prev[LinkedList_dummy[this_1]] = LinkedList_dummy[this_1]
	set wurst_stack_depth = wurst_stack_depth - 1 - 1
	return this_1
endfunction

function init_DummyRecycler takes string w__wurst_stackPos returns boolean
	local integer i
	local integer temp
	local real facing_radians
	local integer j
	local integer temp_1
	local unit dummy_1
	local integer this_1
	local integer elem
	set wurst_stack[wurst_stack_depth] = w__wurst_stackPos
	set wurst_stack_depth = wurst_stack_depth + 1
	set DummyRecycler_ANGLE_DEGREE = 360 * 1. / 8
	set i = 0
	set temp = 7
	loop
		exitwhen i > temp
		set DummyRecycler_angleQueues[i] = new_LinkedList("when calling new_LinkedList in DummyRecycler, line 79")
		set facing_radians = i * DummyRecycler_ANGLE_DEGREE
		set j = 0
		set temp_1 = 5
		loop
			exitwhen j > temp_1
			set dummy_1 = createDummy(MapBounds_boundMax_x - 16., MapBounds_boundMax_y - 16., facing_radians)
			set this_1 = DummyRecycler_angleQueues[i]
			set elem = GetHandleId(dummy_1)
			set wurst_stack[wurst_stack_depth] = "when calling enqueue in DummyRecycler, line 83"
			set wurst_stack_depth = wurst_stack_depth + 1
			if LinkedList_typeId[this_1] == 0 then
				if this_1 == 0 then
					call error("Nullpointer exception when calling LinkedList.enqueue", "when calling error in LinkedList, line 195")
				else
					call error("Called LinkedList.enqueue on invalid object.", "when calling error in LinkedList, line 195")
				endif
			endif
			set wurst_stack[wurst_stack_depth] = "when calling enqueue in LinkedList, line 195"
			set wurst_stack_depth = wurst_stack_depth + 1
			call dispatch_LinkedList_LinkedList_LinkedList_add_1(this_1, elem, "when calling add in LinkedList, line 196")
			set wurst_stack_depth = wurst_stack_depth - 1 - 1
			set j = j + 1
		endloop
		set i = i + 1
	endloop
	set wurst_stack_depth = wurst_stack_depth - 1
	return true
endfunction

function bridge_init_DummyRecycler takes nothing returns boolean
	set wurst_stack_depth = 0
	return init_DummyRecycler("via function reference DummyRecycler, line 1")
endfunction

function bridge_init_EventHelper takes nothing returns boolean
	set wurst_stack_depth = 0
	set wurst_stack[wurst_stack_depth] = "via function reference EventHelper, line 1"
	set wurst_stack_depth = wurst_stack_depth + 1
	call new_HashMap("when calling new_HashMap in EventHelper, line 7")
	call new_HashMap("when calling new_HashMap in EventHelper, line 8")
	call new_Table("when calling new_Table in EventHelper, line 9")
	set wurst_stack_depth = wurst_stack_depth - 1
	return true
endfunction

function ChunkedString_getUnsafeString takes integer this_1, string w__wurst_stackPos returns string
	local integer i
	local integer ChunkedString_ChunkedString_getChunkCount_result
	local string ChunkedString_ChunkedString_getChunk_result
	set wurst_stack[wurst_stack_depth] = w__wurst_stackPos
	set wurst_stack_depth = wurst_stack_depth + 1
	set w__wurst_stackPos = ""
	set i = 0
	set wurst_stack[wurst_stack_depth] = "when calling getChunkCount in ChunkedString, line 99"
	set wurst_stack_depth = wurst_stack_depth + 1
	if ChunkedString_typeId[this_1] == 0 then
		if this_1 == 0 then
			call error("Nullpointer exception when calling ChunkedString.getChunkCount", "when calling error in ChunkedString, line 77")
		else
			call error("Called ChunkedString.getChunkCount on invalid object.", "when calling error in ChunkedString, line 77")
		endif
	endif
	set ChunkedString_ChunkedString_getChunkCount_result = ChunkedString_chunkCount[this_1] + 1
	set wurst_stack_depth = wurst_stack_depth - 1
	loop
		exitwhen i > ChunkedString_ChunkedString_getChunkCount_result
		set wurst_stack[wurst_stack_depth] = "when calling getChunk in ChunkedString, line 100"
		set wurst_stack_depth = wurst_stack_depth + 1
		if ChunkedString_typeId[this_1] == 0 then
			if this_1 == 0 then
				call error("Nullpointer exception when calling ChunkedString.getChunk", "when calling error in ChunkedString, line 71")
			else
				call error("Called ChunkedString.getChunk on invalid object.", "when calling error in ChunkedString, line 71")
			endif
		endif
		set ChunkedString_ChunkedString_getChunk_result = ChunkedString_getChunk(this_1, i, "when calling getChunk in ChunkedString, line 71")
		set wurst_stack_depth = wurst_stack_depth - 1
		set w__wurst_stackPos = w__wurst_stackPos + ChunkedString_ChunkedString_getChunk_result
		set i = i + 1
	endloop
	set wurst_stack_depth = wurst_stack_depth - 1
	return w__wurst_stackPos
endfunction

function File_readPreload takes integer this_1, integer output, string w__wurst_stackPos returns nothing
	local integer i
	set wurst_stack[wurst_stack_depth] = w__wurst_stackPos
	set wurst_stack_depth = wurst_stack_depth + 1
	call Preloader(File_filename[this_1])
	set i = 0
	set this_1 = 63
	loop
		exitwhen i > this_1
		set w__wurst_stackPos = BlzGetAbilityTooltip(611808108, i)
		exitwhen w__wurst_stackPos == " "
		call BlzSetAbilityTooltip(611808108, " ", i)
		set wurst_stack[wurst_stack_depth] = "when calling append in FileIO, line 87"
		set wurst_stack_depth = wurst_stack_depth + 1
		if ChunkedString_typeId[output] == 0 then
			if output == 0 then
				call error("Nullpointer exception when calling ChunkedString.append", "when calling error in ChunkedString, line 41")
			else
				call error("Called ChunkedString.append on invalid object.", "when calling error in ChunkedString, line 41")
			endif
		endif
		call ChunkedString_append(output, w__wurst_stackPos, "when calling append in ChunkedString, line 41")
		set wurst_stack_depth = wurst_stack_depth - 1
		set i = i + 1
	endloop
	set wurst_stack_depth = wurst_stack_depth - 1
endfunction

function new_ChunkedString_433 takes integer chunkSize, string w__wurst_stackPos returns integer
	local integer this_1
	set wurst_stack[wurst_stack_depth] = w__wurst_stackPos
	set wurst_stack_depth = wurst_stack_depth + 1
	set wurst_stack[wurst_stack_depth] = "when calling alloc_ChunkedString in ChunkedString, line 38"
	set wurst_stack_depth = wurst_stack_depth + 1
	if ChunkedString_firstFree == 0 then
		if ChunkedString_maxIndex < 32768 then
			set ChunkedString_maxIndex = ChunkedString_maxIndex + 1
			set this_1 = ChunkedString_maxIndex
			set ChunkedString_typeId[this_1] = 1208
		else
			call error("Out of memory: Could not create ChunkedString.", "when calling error in ChunkedString, line 29")
			set this_1 = 0
		endif
	else
		set ChunkedString_firstFree = ChunkedString_firstFree - 1
		set this_1 = ChunkedString_nextFree[ChunkedString_firstFree]
		set ChunkedString_typeId[this_1] = 1208
	endif
	set wurst_stack_depth = wurst_stack_depth - 1
	set wurst_stack[wurst_stack_depth] = "when calling construct_ChunkedString2 in ChunkedString, line 38"
	set wurst_stack_depth = wurst_stack_depth + 1
	set wurst_stack[wurst_stack_depth] = "when calling ChunkedString_init in ChunkedString, line 38"
	set wurst_stack_depth = wurst_stack_depth + 1
	set ChunkedString_table[this_1] = new_Table("when calling new_Table in ChunkedString, line 30")
	set ChunkedString_chunkSize[this_1] = 200
	set ChunkedString_chunkCount[this_1] = 0
	set ChunkedString_readIndex[this_1] = -1
	set ChunkedString_buffer[this_1] = ""
	set wurst_stack_depth = wurst_stack_depth - 1
	set ChunkedString_chunkSize[this_1] = chunkSize
	set wurst_stack_depth = wurst_stack_depth - 1 - 1
	return this_1
endfunction

function dispatch_File_FileIO_File_read takes integer this_1, player p, string w__wurst_stackPos returns integer
	local integer out
	set wurst_stack[wurst_stack_depth] = w__wurst_stackPos
	set wurst_stack_depth = wurst_stack_depth + 1
	if File_typeId[this_1] == 0 then
		if this_1 == 0 then
			call error("Nullpointer exception when calling File.read", "when calling error in FileIO, line 49")
		else
			call error("Called File.read on invalid object.", "when calling error in FileIO, line 49")
		endif
	endif
	set wurst_stack[wurst_stack_depth] = "when calling read in FileIO, line 49"
	set wurst_stack_depth = wurst_stack_depth + 1
	set out = new_ChunkedString_433(200, "when calling new_ChunkedString in FileIO, line 50")
	if Player_localPlayer == p then
		set wurst_stack[wurst_stack_depth] = "when calling readPreload in FileIO, line 52"
		set wurst_stack_depth = wurst_stack_depth + 1
		if File_typeId[this_1] == 0 then
			if this_1 == 0 then
				call error("Nullpointer exception when calling File.readPreload", "when calling error in FileIO, line 76")
			else
				call error("Called File.readPreload on invalid object.", "when calling error in FileIO, line 76")
			endif
		endif
		call File_readPreload(this_1, out, "when calling readPreload in FileIO, line 76")
		set wurst_stack_depth = wurst_stack_depth - 1
	endif
	set wurst_stack_depth = wurst_stack_depth - 1 - 1
	return out
endfunction

function File_readAsString takes integer this_1, player p, string w__wurst_stackPos returns string
	set wurst_stack[wurst_stack_depth] = w__wurst_stackPos
	set wurst_stack_depth = wurst_stack_depth + 1
	set this_1 = dispatch_File_FileIO_File_read(this_1, p, "when calling read in FileIO, line 56")
	set wurst_stack[wurst_stack_depth] = "when calling getUnsafeString in FileIO, line 57"
	set wurst_stack_depth = wurst_stack_depth + 1
	if ChunkedString_typeId[this_1] == 0 then
		if this_1 == 0 then
			call error("Nullpointer exception when calling ChunkedString.getUnsafeString", "when calling error in ChunkedString, line 97")
		else
			call error("Called ChunkedString.getUnsafeString on invalid object.", "when calling error in ChunkedString, line 97")
		endif
	endif
	set w__wurst_stackPos = ChunkedString_getUnsafeString(this_1, "when calling getUnsafeString in ChunkedString, line 97")
	set wurst_stack_depth = wurst_stack_depth - 1
	set wurst_stack[wurst_stack_depth] = "when calling dispatch_ChunkedString_destroyChunkedString in FileIO, line 58"
	set wurst_stack_depth = wurst_stack_depth + 1
	if ChunkedString_typeId[this_1] == 0 then
		if this_1 == 0 then
			call error("Nullpointer exception when calling ChunkedString.ChunkedString", "when calling error in ChunkedString, line 29")
		else
			call error("Called ChunkedString.ChunkedString on invalid object.", "when calling error in ChunkedString, line 29")
		endif
	endif
	call destroyChunkedString(this_1, "when calling destroyChunkedString in ChunkedString, line 29")
	set wurst_stack_depth = wurst_stack_depth - 1 - 1
	return w__wurst_stackPos
endfunction

function StringIterator_next takes integer this_1 returns string
	local string wval = SubString(StringIterator_s[this_1], StringIterator_currentpos[this_1], StringIterator_currentpos[this_1] + 1)
	set StringIterator_currentpos[this_1] = StringIterator_currentpos[this_1] + 1
	return wval
endfunction

function dispatch_StringIterator_destroyStringIterator takes integer this_1, string w__wurst_stackPos returns nothing
	set wurst_stack[wurst_stack_depth] = w__wurst_stackPos
	set wurst_stack_depth = wurst_stack_depth + 1
	if StringIterator_typeId[this_1] == 0 then
		if this_1 == 0 then
			call error("Nullpointer exception when calling StringIterator.StringIterator", "when calling error in String, line 226")
		else
			call error("Called StringIterator.StringIterator on invalid object.", "when calling error in String, line 226")
		endif
	endif
	set wurst_stack[wurst_stack_depth] = "when calling destroyStringIterator in String, line 226"
	set wurst_stack_depth = wurst_stack_depth + 1
	set wurst_stack[wurst_stack_depth] = "when calling dealloc_StringIterator in String, line 226"
	set wurst_stack_depth = wurst_stack_depth + 1
	if StringIterator_typeId[this_1] == 0 then
		call error("Double free: object of type StringIterator", "when calling error in String, line 226")
	else
		set StringIterator_nextFree[StringIterator_firstFree] = this_1
		set StringIterator_firstFree = StringIterator_firstFree + 1
		set StringIterator_typeId[this_1] = 0
	endif
	set wurst_stack_depth = wurst_stack_depth - 1 - 1 - 1
endfunction

function new_StringIterator takes string s, integer currentpos, integer stringLen, string w__wurst_stackPos returns integer
	local integer this_1
	set wurst_stack[wurst_stack_depth] = w__wurst_stackPos
	set wurst_stack_depth = wurst_stack_depth + 1
	set wurst_stack[wurst_stack_depth] = "when calling alloc_StringIterator in String, line 231"
	set wurst_stack_depth = wurst_stack_depth + 1
	if StringIterator_firstFree == 0 then
		if StringIterator_maxIndex < 32768 then
			set StringIterator_maxIndex = StringIterator_maxIndex + 1
			set this_1 = StringIterator_maxIndex
			set StringIterator_typeId[this_1] = 4075
		else
			call error("Out of memory: Could not create StringIterator.", "when calling error in String, line 226")
			set this_1 = 0
		endif
	else
		set StringIterator_firstFree = StringIterator_firstFree - 1
		set this_1 = StringIterator_nextFree[StringIterator_firstFree]
		set StringIterator_typeId[this_1] = 4075
	endif
	set wurst_stack_depth = wurst_stack_depth - 1
	set StringIterator_s[this_1] = s
	set StringIterator_currentpos[this_1] = currentpos
	set StringIterator_stringLen[this_1] = stringLen
	set wurst_stack_depth = wurst_stack_depth - 1
	return this_1
endfunction

function File_validateInput takes string content, string w__wurst_stackPos returns string
	local integer stackTrace_tempReturn
	set wurst_stack[wurst_stack_depth] = w__wurst_stackPos
	set wurst_stack_depth = wurst_stack_depth + 1
	set wurst_stack[wurst_stack_depth] = "when calling iterator in FileIO, line 91"
	set wurst_stack_depth = wurst_stack_depth + 1
	set stackTrace_tempReturn = new_StringIterator(content, 0, StringLength(content), "when calling new_StringIterator in String, line 224")
	set wurst_stack_depth = wurst_stack_depth - 1
	loop
		exitwhen StringIterator_currentpos[stackTrace_tempReturn] >= StringIterator_stringLen[stackTrace_tempReturn]
		set content = StringIterator_next(stackTrace_tempReturn)
		if content == "\\" then
			set wurst_stack[wurst_stack_depth] = "when calling close in FileIO, line 91"
			set wurst_stack_depth = wurst_stack_depth + 1
			call dispatch_StringIterator_destroyStringIterator(stackTrace_tempReturn, "when calling dispatch_StringIterator_destroyStringIterator in String, line 249")
			set wurst_stack_depth = wurst_stack_depth - 1 - 1
			return content
		elseif content == "\"" then
			set wurst_stack[wurst_stack_depth] = "when calling close in FileIO, line 91"
			set wurst_stack_depth = wurst_stack_depth + 1
			call dispatch_StringIterator_destroyStringIterator(stackTrace_tempReturn, "when calling dispatch_StringIterator_destroyStringIterator in String, line 249")
			set wurst_stack_depth = wurst_stack_depth - 1 - 1
			return content
		endif
	endloop
	set wurst_stack[wurst_stack_depth] = "when calling close in FileIO, line 91"
	set wurst_stack_depth = wurst_stack_depth + 1
	call dispatch_StringIterator_destroyStringIterator(stackTrace_tempReturn, "when calling dispatch_StringIterator_destroyStringIterator in String, line 249")
	set wurst_stack_depth = wurst_stack_depth - 1 - 1
	return null
endfunction

function File_writePreload takes integer this_1, player p, integer buffer, string w__wurst_stackPos returns nothing
	local integer i
	local integer temp
	set wurst_stack[wurst_stack_depth] = w__wurst_stackPos
	set wurst_stack_depth = wurst_stack_depth + 1
	if Player_localPlayer == p then
		call PreloadGenClear()
		call PreloadGenStart()
		set wurst_stack[wurst_stack_depth] = "when calling getChunkCount in FileIO, line 66"
		set wurst_stack_depth = wurst_stack_depth + 1
		if ChunkedString_typeId[buffer] == 0 then
			if buffer == 0 then
				call error("Nullpointer exception when calling ChunkedString.getChunkCount", "when calling error in ChunkedString, line 77")
			else
				call error("Called ChunkedString.getChunkCount on invalid object.", "when calling error in ChunkedString, line 77")
			endif
		endif
		set i = ChunkedString_chunkCount[buffer] + 1
		set wurst_stack_depth = wurst_stack_depth - 1
		if i >= 64 then
			call error("FileIO(" + File_filename[this_1] + ") ERROR: String's chunk count exceeds the limit (" + I2S(64) + ").|r", "when calling error in FileIO, line 67")
		endif
		set i = 0
		set wurst_stack[wurst_stack_depth] = "when calling getChunkCount in FileIO, line 69"
		set wurst_stack_depth = wurst_stack_depth + 1
		if ChunkedString_typeId[buffer] == 0 then
			if buffer == 0 then
				call error("Nullpointer exception when calling ChunkedString.getChunkCount", "when calling error in ChunkedString, line 77")
			else
				call error("Called ChunkedString.getChunkCount on invalid object.", "when calling error in ChunkedString, line 77")
			endif
		endif
		set temp = ChunkedString_chunkCount[buffer] + 1
		set wurst_stack_depth = wurst_stack_depth - 1
		set temp = temp - 1
		loop
			exitwhen i > temp
			set wurst_stack[wurst_stack_depth] = "when calling getChunk in FileIO, line 70"
			set wurst_stack_depth = wurst_stack_depth + 1
			if ChunkedString_typeId[buffer] == 0 then
				if buffer == 0 then
					call error("Nullpointer exception when calling ChunkedString.getChunk", "when calling error in ChunkedString, line 71")
				else
					call error("Called ChunkedString.getChunk on invalid object.", "when calling error in ChunkedString, line 71")
				endif
			endif
			set w__wurst_stackPos = ChunkedString_getChunk(buffer, i, "when calling getChunk in ChunkedString, line 71")
			set wurst_stack_depth = wurst_stack_depth - 1
			call Preload("\" )\ncall BlzSetAbilityTooltip('" + FileIO_FILE_IO_ABIL_ID_STR + "', \"" + w__wurst_stackPos + "\", " + I2S(i) + ")\n//")
			set i = i + 1
		endloop
		call Preload("\" )\nendfunction\nfunction a takes nothing returns nothing\n //")
		call PreloadGenEnd(File_filename[this_1])
	endif
	set wurst_stack_depth = wurst_stack_depth - 1
endfunction

function File_write_76 takes integer this_1, player p, integer buffer, string w__wurst_stackPos returns nothing
	local integer i
	local integer temp
	set wurst_stack[wurst_stack_depth] = w__wurst_stackPos
	set wurst_stack_depth = wurst_stack_depth + 1
	set i = 0
	set wurst_stack[wurst_stack_depth] = "when calling getChunkCount in FileIO, line 39"
	set wurst_stack_depth = wurst_stack_depth + 1
	if ChunkedString_typeId[buffer] == 0 then
		if buffer == 0 then
			call error("Nullpointer exception when calling ChunkedString.getChunkCount", "when calling error in ChunkedString, line 77")
		else
			call error("Called ChunkedString.getChunkCount on invalid object.", "when calling error in ChunkedString, line 77")
		endif
	endif
	set temp = ChunkedString_chunkCount[buffer] + 1
	set wurst_stack_depth = wurst_stack_depth - 1
	set temp = temp - 1
	loop
		exitwhen i > temp
		set wurst_stack[wurst_stack_depth] = "when calling getChunk in FileIO, line 40"
		set wurst_stack_depth = wurst_stack_depth + 1
		if ChunkedString_typeId[buffer] == 0 then
			if buffer == 0 then
				call error("Nullpointer exception when calling ChunkedString.getChunk", "when calling error in ChunkedString, line 71")
			else
				call error("Called ChunkedString.getChunk on invalid object.", "when calling error in ChunkedString, line 71")
			endif
		endif
		set w__wurst_stackPos = ChunkedString_getChunk(buffer, i, "when calling getChunk in ChunkedString, line 71")
		set wurst_stack_depth = wurst_stack_depth - 1
		if File_validateInput(w__wurst_stackPos, "when calling validateInput in FileIO, line 41") != null then
			call error("FileIO(" + File_filename[this_1] + ") ERROR: Invalid character |cffffcc00" + File_validateInput(w__wurst_stackPos, "when calling validateInput in FileIO, line 42") + "|r", "when calling error in FileIO, line 42")
		endif
		set i = i + 1
	endloop
	set wurst_stack[wurst_stack_depth] = "when calling writePreload in FileIO, line 44"
	set wurst_stack_depth = wurst_stack_depth + 1
	if File_typeId[this_1] == 0 then
		if this_1 == 0 then
			call error("Nullpointer exception when calling File.writePreload", "when calling error in FileIO, line 61")
		else
			call error("Called File.writePreload on invalid object.", "when calling error in FileIO, line 61")
		endif
	endif
	call File_writePreload(this_1, p, buffer, "when calling writePreload in FileIO, line 61")
	set wurst_stack_depth = wurst_stack_depth - 1 - 1
endfunction

function new_ChunkedString takes string w__wurst_stackPos returns integer
	local integer this_1
	set wurst_stack[wurst_stack_depth] = w__wurst_stackPos
	set wurst_stack_depth = wurst_stack_depth + 1
	set wurst_stack[wurst_stack_depth] = "when calling alloc_ChunkedString in ChunkedString, line 36"
	set wurst_stack_depth = wurst_stack_depth + 1
	if ChunkedString_firstFree == 0 then
		if ChunkedString_maxIndex < 32768 then
			set ChunkedString_maxIndex = ChunkedString_maxIndex + 1
			set this_1 = ChunkedString_maxIndex
			set ChunkedString_typeId[this_1] = 1208
		else
			call error("Out of memory: Could not create ChunkedString.", "when calling error in ChunkedString, line 29")
			set this_1 = 0
		endif
	else
		set ChunkedString_firstFree = ChunkedString_firstFree - 1
		set this_1 = ChunkedString_nextFree[ChunkedString_firstFree]
		set ChunkedString_typeId[this_1] = 1208
	endif
	set wurst_stack_depth = wurst_stack_depth - 1
	set wurst_stack[wurst_stack_depth] = "when calling construct_ChunkedString in ChunkedString, line 36"
	set wurst_stack_depth = wurst_stack_depth + 1
	set wurst_stack[wurst_stack_depth] = "when calling ChunkedString_init in ChunkedString, line 36"
	set wurst_stack_depth = wurst_stack_depth + 1
	set ChunkedString_table[this_1] = new_Table("when calling new_Table in ChunkedString, line 30")
	set ChunkedString_chunkSize[this_1] = 200
	set ChunkedString_chunkCount[this_1] = 0
	set ChunkedString_readIndex[this_1] = -1
	set ChunkedString_buffer[this_1] = ""
	set wurst_stack_depth = wurst_stack_depth - 1 - 1 - 1
	return this_1
endfunction

function File_write takes integer this_1, player p, string content, string w__wurst_stackPos returns nothing
	local integer buffer
	set wurst_stack[wurst_stack_depth] = w__wurst_stackPos
	set wurst_stack_depth = wurst_stack_depth + 1
	set buffer = new_ChunkedString("when calling new_ChunkedString in FileIO, line 32")
	set wurst_stack[wurst_stack_depth] = "when calling append in FileIO, line 33"
	set wurst_stack_depth = wurst_stack_depth + 1
	if ChunkedString_typeId[buffer] == 0 then
		if buffer == 0 then
			call error("Nullpointer exception when calling ChunkedString.append", "when calling error in ChunkedString, line 41")
		else
			call error("Called ChunkedString.append on invalid object.", "when calling error in ChunkedString, line 41")
		endif
	endif
	call ChunkedString_append(buffer, content, "when calling append in ChunkedString, line 41")
	set wurst_stack_depth = wurst_stack_depth - 1
	set wurst_stack[wurst_stack_depth] = "when calling write in FileIO, line 34"
	set wurst_stack_depth = wurst_stack_depth + 1
	if File_typeId[this_1] == 0 then
		if this_1 == 0 then
			call error("Nullpointer exception when calling File.write", "when calling error in FileIO, line 37")
		else
			call error("Called File.write on invalid object.", "when calling error in FileIO, line 37")
		endif
	endif
	call File_write_76(this_1, p, buffer, "when calling write in FileIO, line 37")
	set wurst_stack_depth = wurst_stack_depth - 1
	set wurst_stack[wurst_stack_depth] = "when calling dispatch_ChunkedString_destroyChunkedString in FileIO, line 35"
	set wurst_stack_depth = wurst_stack_depth + 1
	if ChunkedString_typeId[buffer] == 0 then
		if buffer == 0 then
			call error("Nullpointer exception when calling ChunkedString.ChunkedString", "when calling error in ChunkedString, line 29")
		else
			call error("Called ChunkedString.ChunkedString on invalid object.", "when calling error in ChunkedString, line 29")
		endif
	endif
	call destroyChunkedString(buffer, "when calling destroyChunkedString in ChunkedString, line 29")
	set wurst_stack_depth = wurst_stack_depth - 1 - 1
endfunction

function new_File takes string filename, string w__wurst_stackPos returns integer
	local integer this_1
	set wurst_stack[wurst_stack_depth] = w__wurst_stackPos
	set wurst_stack_depth = wurst_stack_depth + 1
	set wurst_stack[wurst_stack_depth] = "when calling alloc_File in FileIO, line 28"
	set wurst_stack_depth = wurst_stack_depth + 1
	if File_firstFree == 0 then
		if File_maxIndex < 32768 then
			set File_maxIndex = File_maxIndex + 1
			set this_1 = File_maxIndex
			set File_typeId[this_1] = 2013
		else
			call error("Out of memory: Could not create File.", "when calling error in FileIO, line 25")
			set this_1 = 0
		endif
	else
		set File_firstFree = File_firstFree - 1
		set this_1 = File_nextFree[File_firstFree]
		set File_typeId[this_1] = 2013
	endif
	set wurst_stack_depth = wurst_stack_depth - 1
	set File_filename[this_1] = ""
	set File_filename[this_1] = filename
	set wurst_stack_depth = wurst_stack_depth - 1
	return this_1
endfunction

function init_FileIO takes string w__wurst_stackPos returns boolean
	local integer remainingValue
	local integer byteno
	local integer charValue
	local player p
	set wurst_stack[wurst_stack_depth] = w__wurst_stackPos
	set wurst_stack_depth = wurst_stack_depth + 1
	set w__wurst_stackPos = ""
	set remainingValue = 611808108
	set byteno = 0
	loop
		exitwhen byteno > 3
		set charValue = ModuloInteger(remainingValue, 256)
		set remainingValue = remainingValue / 256
		set w__wurst_stackPos = SubString(".................................!.#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[.]^_`abcdefghijklmnopqrstuvwxyz{|}~.................................................................................................................................", charValue, charValue + 1) + w__wurst_stackPos
		set byteno = byteno + 1
	endloop
	set FileIO_FILE_IO_ABIL_ID_STR = w__wurst_stackPos
	set remainingValue = new_File("FileTester.pld", "when calling new_File in FileIO, line 99")
	set p = Player_localPlayer
	set wurst_stack[wurst_stack_depth] = "when calling write in FileIO, line 99"
	set wurst_stack_depth = wurst_stack_depth + 1
	if File_typeId[remainingValue] == 0 then
		if remainingValue == 0 then
			call error("Nullpointer exception when calling File.write", "when calling error in FileIO, line 31")
		else
			call error("Called File.write on invalid object.", "when calling error in FileIO, line 31")
		endif
	endif
	call File_write(remainingValue, p, "test", "when calling write in FileIO, line 31")
	set wurst_stack_depth = wurst_stack_depth - 1
	set p = Player_localPlayer
	set wurst_stack[wurst_stack_depth] = "when calling readAsString in FileIO, line 99"
	set wurst_stack_depth = wurst_stack_depth + 1
	if File_typeId[remainingValue] == 0 then
		if remainingValue == 0 then
			call error("Nullpointer exception when calling File.readAsString", "when calling error in FileIO, line 55")
		else
			call error("Called File.readAsString on invalid object.", "when calling error in FileIO, line 55")
		endif
	endif
	call File_readAsString(remainingValue, p, "when calling readAsString in FileIO, line 55")
	set wurst_stack_depth = wurst_stack_depth - 1 - 1
	return true
endfunction

function bridge_init_FileIO takes nothing returns boolean
	set wurst_stack_depth = 0
	return init_FileIO("via function reference FileIO, line 1")
endfunction

function verifyFrameNameLength takes string name, string w__wurst_stackPos returns boolean
	set wurst_stack[wurst_stack_depth] = w__wurst_stackPos
	set wurst_stack_depth = wurst_stack_depth + 1
	if StringLength(name) > 560 then
		call error("Trying to address frame with exceeding maximum frame name length (" + I2S(560) + ") for: " + name, "when calling error in Framehandle, line 78")
		set wurst_stack_depth = wurst_stack_depth - 1
		return false
	endif
	set wurst_stack_depth = wurst_stack_depth - 1
	return true
endfunction

function init_Framehandle takes string w__wurst_stackPos returns boolean
	local framehandle owner
	set wurst_stack[wurst_stack_depth] = w__wurst_stackPos
	set wurst_stack_depth = wurst_stack_depth + 1
	set Framehandle_GAME_UI = BlzGetOriginFrame(ORIGIN_FRAME_GAME_UI, 0)
	set owner = Framehandle_GAME_UI
	set wurst_stack[wurst_stack_depth] = "when calling createFrame in Framehandle, line 491"
	set wurst_stack_depth = wurst_stack_depth + 1
	call verifyFrameNameLength("SetMousePositionCage", "when calling verifyFrameNameLength in Framehandle, line 144")
	set owner = BlzCreateFrameByType("FRAME", "SetMousePositionCage", owner, null, 0)
	set wurst_stack_depth = wurst_stack_depth - 1
	call BlzFrameSetSize(owner, 0.0001, 0.0001)
	set wurst_stack_depth = wurst_stack_depth - 1
	return true
endfunction

function bridge_init_Framehandle takes nothing returns boolean
	set wurst_stack_depth = 0
	return init_Framehandle("via function reference Framehandle, line 1")
endfunction

function createGroups takes integer number, string w__wurst_stackPos returns nothing
	local integer maxCreatePerCycle
	local integer cond_result
	local integer cond_result_1
	local player showTo
	set wurst_stack[wurst_stack_depth] = w__wurst_stackPos
	set wurst_stack_depth = wurst_stack_depth + 1
	set maxCreatePerCycle = 256
	set cond_result = JASS_MAX_ARRAY_SIZE - 1
	if cond_result > -2147483648 then
	else
		set cond_result = -2147483648
	endif
	if 1024 > cond_result then
		set cond_result = 1024
	endif
	set number = GroupUtils_numTotal + number
	set cond_result = number - cond_result
	set cond_result_1 = 0
	if cond_result > 0 then
		set cond_result_1 = cond_result
	endif
	set cond_result = number - cond_result_1
	set number = 0
	if cond_result > 0 then
		set number = cond_result
	endif
	loop
		exitwhen number <= 0
		if number < 2147483647 then
			set cond_result_1 = number
		else
			set cond_result_1 = 2147483647
		endif
		if maxCreatePerCycle < cond_result_1 then
			set cond_result_1 = maxCreatePerCycle
		endif
		set number = number - cond_result_1
		set wurst_stack[wurst_stack_depth] = "when calling alloc_ForForceCallback_execute_GroupUtils in GroupUtils, line 90"
		set wurst_stack_depth = wurst_stack_depth + 1
		if ForForceCallback_firstFree == 0 then
			if ForForceCallback_maxIndex < 32768 then
				set ForForceCallback_maxIndex = ForForceCallback_maxIndex + 1
				set cond_result = ForForceCallback_maxIndex
				set ForForceCallback_typeId[cond_result] = 2069
			else
				call error("Out of memory: Could not create ForForceCallback_execute_GroupUtils.", "when calling error in GroupUtils, line 90")
				set cond_result = 0
			endif
		else
			set ForForceCallback_firstFree = ForForceCallback_firstFree - 1
			set cond_result = ForForceCallback_nextFree[ForForceCallback_firstFree]
			set ForForceCallback_typeId[cond_result] = 2069
		endif
		set wurst_stack_depth = wurst_stack_depth - 1
		set createNow[cond_result] = cond_result_1
		set wurst_stack[wurst_stack_depth] = "when calling execute in GroupUtils, line 90"
		set wurst_stack_depth = wurst_stack_depth + 1
		if  not try(cond_result, "when calling try in Execute, line 78") then
			call error("execute: thread has crashed. caused by:\n| - " + ErrorHandling_lastError, "when calling error in Execute, line 79")
		endif
		set wurst_stack_depth = wurst_stack_depth - 1
	endloop
	if GroupUtils_numTotal >= 1024 and ( not GroupUtils_shownMaxError) then
		set w__wurst_stackPos = "Maximum number of GroupUtils groups (" + I2S(1024) + ") created. " + "All newly created groups will be non-recyclable."
		set showTo = Player_localPlayer
		if 2 <= 3 then
			call DisplayTimedTextToPlayer(showTo, 0., 0., 45., Loglevel_getTag(3) + " - " + w__wurst_stackPos)
		endif
		set GroupUtils_shownMaxError = true
	endif
	set wurst_stack_depth = wurst_stack_depth - 1
endfunction

function bridge_init_GroupUtils takes nothing returns boolean
	set wurst_stack_depth = 0
	set wurst_stack[wurst_stack_depth] = "via function reference GroupUtils, line 1"
	set wurst_stack_depth = wurst_stack_depth + 1
	set GroupUtils_used = new_HashMap("when calling new_HashMap in GroupUtils, line 30")
	set wurst_stack[wurst_stack_depth] = "when calling initialize in GroupUtils, line 104"
	set wurst_stack_depth = wurst_stack_depth + 1
	call createGroups(64, "when calling createGroups in GroupUtils, line 101")
	set wurst_stack_depth = wurst_stack_depth - 1 - 1
	return true
endfunction

function new_BackIterator takes boolean destroyOnClose, string w__wurst_stackPos returns integer
	local integer this_1
	set wurst_stack[wurst_stack_depth] = w__wurst_stackPos
	set wurst_stack_depth = wurst_stack_depth + 1
	set wurst_stack[wurst_stack_depth] = "when calling alloc_BackIterator in LinkedListModule, line 97"
	set wurst_stack_depth = wurst_stack_depth + 1
	if BackIterator_firstFree == 0 then
		if BackIterator_maxIndex < 32768 then
			set BackIterator_maxIndex = BackIterator_maxIndex + 1
			set this_1 = BackIterator_maxIndex
		else
			call error("Out of memory: Could not create BackIterator.", "when calling error in LinkedListModule, line 93")
			set this_1 = 0
		endif
	else
		set BackIterator_firstFree = BackIterator_firstFree - 1
		set this_1 = BackIterator_nextFree[BackIterator_firstFree]
	endif
	set wurst_stack_depth = wurst_stack_depth - 1 - 1
	return this_1
endfunction

function new_Iterator takes boolean destroyOnClose, string w__wurst_stackPos returns integer
	local integer this_1
	set wurst_stack[wurst_stack_depth] = w__wurst_stackPos
	set wurst_stack_depth = wurst_stack_depth + 1
	set wurst_stack[wurst_stack_depth] = "when calling alloc_Iterator in LinkedListModule, line 75"
	set wurst_stack_depth = wurst_stack_depth + 1
	if Iterator_firstFree == 0 then
		if Iterator_maxIndex < 32768 then
			set Iterator_maxIndex = Iterator_maxIndex + 1
			set this_1 = Iterator_maxIndex
		else
			call error("Out of memory: Could not create Iterator.", "when calling error in LinkedListModule, line 71")
			set this_1 = 0
		endif
	else
		set Iterator_firstFree = Iterator_firstFree - 1
		set this_1 = Iterator_nextFree[Iterator_firstFree]
	endif
	set wurst_stack_depth = wurst_stack_depth - 1 - 1
	return this_1
endfunction

function init_Knockback3 takes string w__wurst_stackPos returns boolean
	set wurst_stack[wurst_stack_depth] = w__wurst_stackPos
	set wurst_stack_depth = wurst_stack_depth + 1
	set wurst_stack[wurst_stack_depth] = "when calling alloc_TerrainZProvider_Knockback3 in Knockback3, line 51"
	set wurst_stack_depth = wurst_stack_depth + 1
	if TerrainZProvider_firstFree == 0 then
		if TerrainZProvider_maxIndex < 32768 then
			set TerrainZProvider_maxIndex = TerrainZProvider_maxIndex + 1
		else
			call error("Out of memory: Could not create TerrainZProvider_Knockback3.", "when calling error in Knockback3, line 51")
		endif
	else
		set TerrainZProvider_firstFree = TerrainZProvider_firstFree - 1
	endif
	set wurst_stack_depth = wurst_stack_depth - 1
	set wurst_stack[wurst_stack_depth] = "when calling alloc_WallHitTransform_Knockback3 in Knockback3, line 59"
	set wurst_stack_depth = wurst_stack_depth + 1
	if WallHitTransform_firstFree == 0 then
		if WallHitTransform_maxIndex < 32768 then
			set WallHitTransform_maxIndex = WallHitTransform_maxIndex + 1
		else
			call error("Out of memory: Could not create WallHitTransform_Knockback3.", "when calling error in Knockback3, line 59")
		endif
	else
		set WallHitTransform_firstFree = WallHitTransform_firstFree - 1
	endif
	set wurst_stack_depth = wurst_stack_depth - 1
	set wurst_stack[wurst_stack_depth] = "when calling alloc_UnitFilter_Knockback3 in Knockback3, line 79"
	set wurst_stack_depth = wurst_stack_depth + 1
	if UnitFilter_firstFree == 0 then
		if UnitFilter_maxIndex < 32768 then
			set UnitFilter_maxIndex = UnitFilter_maxIndex + 1
		else
			call error("Out of memory: Could not create UnitFilter_Knockback3.", "when calling error in Knockback3, line 79")
		endif
	else
		set UnitFilter_firstFree = UnitFilter_firstFree - 1
	endif
	set wurst_stack_depth = wurst_stack_depth - 1
	call new_Iterator(false, "when calling new_Iterator in LinkedListModule, line 55")
	call new_BackIterator(false, "when calling new_BackIterator in LinkedListModule, line 65")
	call Rect( - 130.0,  - 130.0, 130., 130.)
	call new_HashMap("when calling new_HashMap in Knockback3, line 263")
	call CreateTimer()
	set wurst_stack_depth = wurst_stack_depth - 1
	return true
endfunction

function bridge_init_Knockback3 takes nothing returns boolean
	set wurst_stack_depth = 0
	return init_Knockback3("via function reference Knockback3, line 28")
endfunction

function init_LinkedList takes string w__wurst_stackPos returns boolean
	set wurst_stack[wurst_stack_depth] = w__wurst_stackPos
	set wurst_stack_depth = wurst_stack_depth + 1
	set wurst_stack[wurst_stack_depth] = "when calling alloc_Comparator_LinkedList in LinkedList, line 563"
	set wurst_stack_depth = wurst_stack_depth + 1
	if Comparator_firstFree == 0 then
		if Comparator_maxIndex < 32768 then
			set Comparator_maxIndex = Comparator_maxIndex + 1
		else
			call error("Out of memory: Could not create Comparator_LinkedList.", "when calling error in LinkedList, line 563")
		endif
	else
		set Comparator_firstFree = Comparator_firstFree - 1
	endif
	set wurst_stack_depth = wurst_stack_depth - 1
	set wurst_stack[wurst_stack_depth] = "when calling alloc_Comparator_LinkedList in LinkedList, line 567"
	set wurst_stack_depth = wurst_stack_depth + 1
	if Comparator_firstFree == 0 then
		if Comparator_maxIndex < 32768 then
			set Comparator_maxIndex = Comparator_maxIndex + 1
		else
			call error("Out of memory: Could not create Comparator_LinkedList.", "when calling error in LinkedList, line 567")
		endif
	else
		set Comparator_firstFree = Comparator_firstFree - 1
	endif
	set wurst_stack_depth = wurst_stack_depth - 1 - 1
	return true
endfunction

function bridge_init_LinkedList takes nothing returns boolean
	set wurst_stack_depth = 0
	return init_LinkedList("via function reference LinkedList, line 1")
endfunction

function new_BackIterator_431 takes boolean destroyOnClose, string w__wurst_stackPos returns integer
	local integer this_1
	set wurst_stack[wurst_stack_depth] = w__wurst_stackPos
	set wurst_stack_depth = wurst_stack_depth + 1
	set wurst_stack[wurst_stack_depth] = "when calling alloc_BackIterator in LinkedListModule, line 97"
	set wurst_stack_depth = wurst_stack_depth + 1
	if BackIterator_firstFree_3 == 0 then
		if BackIterator_maxIndex_5 < 32768 then
			set BackIterator_maxIndex_5 = BackIterator_maxIndex_5 + 1
			set this_1 = BackIterator_maxIndex_5
		else
			call error("Out of memory: Could not create BackIterator.", "when calling error in LinkedListModule, line 93")
			set this_1 = 0
		endif
	else
		set BackIterator_firstFree_3 = BackIterator_firstFree_3 - 1
		set this_1 = BackIterator_nextFree_7[BackIterator_firstFree_3]
	endif
	set wurst_stack_depth = wurst_stack_depth - 1 - 1
	return this_1
endfunction

function new_Iterator_440 takes boolean destroyOnClose, string w__wurst_stackPos returns integer
	local integer this_1
	set wurst_stack[wurst_stack_depth] = w__wurst_stackPos
	set wurst_stack_depth = wurst_stack_depth + 1
	set wurst_stack[wurst_stack_depth] = "when calling alloc_Iterator in LinkedListModule, line 75"
	set wurst_stack_depth = wurst_stack_depth + 1
	if Iterator_firstFree_180 == 0 then
		if Iterator_maxIndex_182 < 32768 then
			set Iterator_maxIndex_182 = Iterator_maxIndex_182 + 1
			set this_1 = Iterator_maxIndex_182
		else
			call error("Out of memory: Could not create Iterator.", "when calling error in LinkedListModule, line 71")
			set this_1 = 0
		endif
	else
		set Iterator_firstFree_180 = Iterator_firstFree_180 - 1
		set this_1 = Iterator_nextFree_184[Iterator_firstFree_180]
	endif
	set wurst_stack_depth = wurst_stack_depth - 1 - 1
	return this_1
endfunction

function bridge_init_LinkedListModuleTests takes nothing returns boolean
	set wurst_stack_depth = 0
	set wurst_stack[wurst_stack_depth] = "via function reference LinkedListModuleTests, line 1"
	set wurst_stack_depth = wurst_stack_depth + 1
	call new_Iterator_440(false, "when calling new_Iterator in LinkedListModule, line 55")
	call new_BackIterator_431(false, "when calling new_BackIterator in LinkedListModule, line 65")
	set wurst_stack_depth = wurst_stack_depth - 1
	return true
endfunction

function new_IdGenerator takes integer start, string w__wurst_stackPos returns integer
	set wurst_stack[wurst_stack_depth] = w__wurst_stackPos
	set wurst_stack_depth = wurst_stack_depth + 1
	set wurst_stack[wurst_stack_depth] = "when calling alloc_IdGenerator in ObjectIdGenerator, line 19"
	set wurst_stack_depth = wurst_stack_depth + 1
	if IdGenerator_firstFree == 0 then
		if IdGenerator_maxIndex < 32768 then
			set IdGenerator_maxIndex = IdGenerator_maxIndex + 1
			set start = IdGenerator_maxIndex
		else
			call error("Out of memory: Could not create IdGenerator.", "when calling error in ObjectIdGenerator, line 13")
			set start = 0
		endif
	else
		set IdGenerator_firstFree = IdGenerator_firstFree - 1
		set start = IdGenerator_nextFree[IdGenerator_firstFree]
	endif
	set wurst_stack_depth = wurst_stack_depth - 1 - 1
	return start
endfunction

function bridge_init_ObjectIdGenerator takes nothing returns boolean
	set wurst_stack_depth = 0
	set wurst_stack[wurst_stack_depth] = "via function reference ObjectIdGenerator, line 1"
	set wurst_stack_depth = wurst_stack_depth + 1
	call new_IdGenerator(2016423984, "when calling new_IdGenerator in ObjectIdGenerator, line 6")
	call new_IdGenerator(1213018160, "when calling new_IdGenerator in ObjectIdGenerator, line 7")
	call new_IdGenerator(1095577648, "when calling new_IdGenerator in ObjectIdGenerator, line 8")
	call new_IdGenerator(1112354864, "when calling new_IdGenerator in ObjectIdGenerator, line 9")
	call new_IdGenerator(1229795376, "when calling new_IdGenerator in ObjectIdGenerator, line 10")
	call new_IdGenerator(1380790320, "when calling new_IdGenerator in ObjectIdGenerator, line 11")
	set wurst_stack_depth = wurst_stack_depth - 1
	return true
endfunction

function init_OnUnitEnterLeave takes string w__wurst_stackPos returns boolean
	local integer i
	local integer temp
	local timer this_1
	set wurst_stack[wurst_stack_depth] = w__wurst_stackPos
	set wurst_stack_depth = wurst_stack_depth + 1
	set OnUnitEnterLeave_eventTrigger = CreateTrigger()
	set OnUnitEnterLeave_preplacedUnits = CreateGroup()
	set i = 0
	set temp = bj_MAX_PLAYER_SLOTS - 1
	loop
		exitwhen i > temp
		call SetPlayerAbilityAvailable(Player_players[i], 1095577652, false)
		set i = i + 1
	endloop
	set wurst_stack[wurst_stack_depth] = "when calling alloc_CallbackSingle_nullTimer_OnUnitEnterLeave in OnUnitEnterLeave, line 64"
	set wurst_stack_depth = wurst_stack_depth + 1
	if CallbackSingle_firstFree == 0 then
		if CallbackSingle_maxIndex < 32768 then
			set CallbackSingle_maxIndex = CallbackSingle_maxIndex + 1
			set i = CallbackSingle_maxIndex
			set CallbackSingle_typeId[i] = 1116
		else
			call error("Out of memory: Could not create CallbackSingle_nullTimer_OnUnitEnterLeave.", "when calling error in OnUnitEnterLeave, line 64")
			set i = 0
		endif
	else
		set CallbackSingle_firstFree = CallbackSingle_firstFree - 1
		set i = CallbackSingle_nextFree[CallbackSingle_firstFree]
		set CallbackSingle_typeId[i] = 1116
	endif
	set wurst_stack_depth = wurst_stack_depth - 1
	set wurst_stack[wurst_stack_depth] = "when calling nullTimer in OnUnitEnterLeave, line 64"
	set wurst_stack_depth = wurst_stack_depth + 1
	set wurst_stack[wurst_stack_depth] = "when calling doAfter in ClosureTimers, line 51"
	set wurst_stack_depth = wurst_stack_depth + 1
	set this_1 = getTimer("when calling getTimer in ClosureTimers, line 28")
	set wurst_stack[wurst_stack_depth] = "when calling doAfter in ClosureTimers, line 28"
	set wurst_stack_depth = wurst_stack_depth + 1
	call dispatch_CallbackSingle_ClosureTimers_CallbackSingle_start(i, this_1, 0., "when calling start in ClosureTimers, line 17")
	set wurst_stack_depth = wurst_stack_depth - 1 - 1
	set wurst_stack_depth = wurst_stack_depth - 1 - 1
	return true
endfunction

function bridge_init_OnUnitEnterLeave takes nothing returns boolean
	set wurst_stack_depth = 0
	return init_OnUnitEnterLeave("via function reference OnUnitEnterLeave, line 1")
endfunction

function init_Preloader takes string w__wurst_stackPos returns boolean
	local integer this_1
	local timer this_2
	set wurst_stack[wurst_stack_depth] = w__wurst_stackPos
	set wurst_stack_depth = wurst_stack_depth + 1
	set Preloader_dumg = CreateGroup()
	set Preloader_dum = CreateUnit(Basics_DUMMY_PLAYER, 1970497636, MapBounds_playableMin_x, MapBounds_playableMin_y, 0.0)
	call SetUnitInvulnerable(Preloader_dum, true)
	if Preloader_dum == null then
		call error("DUMMY_UNITID not added correctly to the map.", "when calling error in Preloader, line 56")
	endif
	set wurst_stack[wurst_stack_depth] = "when calling alloc_CallbackSingle_nullTimer_Preloader in Preloader, line 58"
	set wurst_stack_depth = wurst_stack_depth + 1
	if CallbackSingle_firstFree == 0 then
		if CallbackSingle_maxIndex < 32768 then
			set CallbackSingle_maxIndex = CallbackSingle_maxIndex + 1
			set this_1 = CallbackSingle_maxIndex
			set CallbackSingle_typeId[this_1] = 1117
		else
			call error("Out of memory: Could not create CallbackSingle_nullTimer_Preloader.", "when calling error in Preloader, line 58")
			set this_1 = 0
		endif
	else
		set CallbackSingle_firstFree = CallbackSingle_firstFree - 1
		set this_1 = CallbackSingle_nextFree[CallbackSingle_firstFree]
		set CallbackSingle_typeId[this_1] = 1117
	endif
	set wurst_stack_depth = wurst_stack_depth - 1
	set wurst_stack[wurst_stack_depth] = "when calling nullTimer in Preloader, line 58"
	set wurst_stack_depth = wurst_stack_depth + 1
	set wurst_stack[wurst_stack_depth] = "when calling doAfter in ClosureTimers, line 51"
	set wurst_stack_depth = wurst_stack_depth + 1
	set this_2 = getTimer("when calling getTimer in ClosureTimers, line 28")
	set wurst_stack[wurst_stack_depth] = "when calling doAfter in ClosureTimers, line 28"
	set wurst_stack_depth = wurst_stack_depth + 1
	call dispatch_CallbackSingle_ClosureTimers_CallbackSingle_start(this_1, this_2, 0., "when calling start in ClosureTimers, line 17")
	set wurst_stack_depth = wurst_stack_depth - 1
	set wurst_stack_depth = wurst_stack_depth - 1 - 1 - 1
	return true
endfunction

function bridge_init_Preloader takes nothing returns boolean
	set wurst_stack_depth = 0
	return init_Preloader("via function reference Preloader, line 1")
endfunction

function bridge_init_RegisterEvents takes nothing returns boolean
	set wurst_stack_depth = 0
	set wurst_stack[wurst_stack_depth] = "via function reference RegisterEvents, line 1"
	set wurst_stack_depth = wurst_stack_depth + 1
	set RegisterEvents_onCastMap = new_HashMap("when calling new_HashMap in RegisterEvents, line 55")
	call registerPlayerUnitEvent(EVENT_PLAYER_UNIT_SPELL_EFFECT, null, ref_function_bridge_code__registerPlayerUnitEvent_RegisterEvents, null)
	set wurst_stack_depth = wurst_stack_depth - 1
	return true
endfunction

function s2cInit takes nothing returns nothing
	local integer i = 0
	local integer temp = StringUtils_MAX_INDEX
	loop
		exitwhen i > temp
		if StringCase(StringUtils_c2s[i], true) == StringUtils_c2s[i] then
			set StringUtils_s2c[StringHash(StringUtils_c2s[i]) / 2033480 + 1002] = i
		endif
		set i = i + 1
	endloop
endfunction

function initialize takes nothing returns nothing
	set StringUtils_c2s[0] = ""
	set StringUtils_c2s[1] = ""
	set StringUtils_c2s[2] = ""
	set StringUtils_c2s[3] = ""
	set StringUtils_c2s[4] = ""
	set StringUtils_c2s[5] = ""
	set StringUtils_c2s[6] = ""
	set StringUtils_c2s[7] = ""
	set StringUtils_c2s[8] = ""
	set StringUtils_c2s[9] = "\t"
	set StringUtils_c2s[10] = "\n"
	set StringUtils_c2s[11] = ""
	set StringUtils_c2s[12] = ""
	set StringUtils_c2s[13] = "\r"
	set StringUtils_c2s[14] = ""
	set StringUtils_c2s[15] = ""
	set StringUtils_c2s[16] = ""
	set StringUtils_c2s[17] = ""
	set StringUtils_c2s[18] = ""
	set StringUtils_c2s[19] = ""
	set StringUtils_c2s[20] = ""
	set StringUtils_c2s[21] = ""
	set StringUtils_c2s[22] = ""
	set StringUtils_c2s[23] = ""
	set StringUtils_c2s[24] = ""
	set StringUtils_c2s[25] = ""
	set StringUtils_c2s[26] = ""
	set StringUtils_c2s[27] = ""
	set StringUtils_c2s[28] = ""
	set StringUtils_c2s[29] = ""
	set StringUtils_c2s[30] = ""
	set StringUtils_c2s[31] = ""
	set StringUtils_c2s[32] = " "
	set StringUtils_c2s[33] = "!"
	set StringUtils_c2s[34] = "\""
	set StringUtils_c2s[35] = "#"
	set StringUtils_c2s[36] = "$"
	set StringUtils_c2s[37] = "%"
	set StringUtils_c2s[38] = "&"
	set StringUtils_c2s[39] = "'"
	set StringUtils_c2s[40] = "("
	set StringUtils_c2s[41] = ")"
	set StringUtils_c2s[42] = "*"
	set StringUtils_c2s[43] = "+"
	set StringUtils_c2s[44] = ","
	set StringUtils_c2s[45] = "-"
	set StringUtils_c2s[46] = "."
	set StringUtils_c2s[47] = "/"
	set StringUtils_c2s[48] = "0"
	set StringUtils_c2s[49] = "1"
	set StringUtils_c2s[50] = "2"
	set StringUtils_c2s[51] = "3"
	set StringUtils_c2s[52] = "4"
	set StringUtils_c2s[53] = "5"
	set StringUtils_c2s[54] = "6"
	set StringUtils_c2s[55] = "7"
	set StringUtils_c2s[56] = "8"
	set StringUtils_c2s[57] = "9"
	set StringUtils_c2s[58] = ":"
	set StringUtils_c2s[59] = ";"
	set StringUtils_c2s[60] = "<"
	set StringUtils_c2s[61] = "="
	set StringUtils_c2s[62] = ">"
	set StringUtils_c2s[63] = "?"
	set StringUtils_c2s[64] = "@"
	set StringUtils_c2s[65] = "A"
	set StringUtils_c2s[66] = "B"
	set StringUtils_c2s[67] = "C"
	set StringUtils_c2s[68] = "D"
	set StringUtils_c2s[69] = "E"
	set StringUtils_c2s[70] = "F"
	set StringUtils_c2s[71] = "G"
	set StringUtils_c2s[72] = "H"
	set StringUtils_c2s[73] = "I"
	set StringUtils_c2s[74] = "J"
	set StringUtils_c2s[75] = "K"
	set StringUtils_c2s[76] = "L"
	set StringUtils_c2s[77] = "M"
	set StringUtils_c2s[78] = "N"
	set StringUtils_c2s[79] = "O"
	set StringUtils_c2s[80] = "P"
	set StringUtils_c2s[81] = "Q"
	set StringUtils_c2s[82] = "R"
	set StringUtils_c2s[83] = "S"
	set StringUtils_c2s[84] = "T"
	set StringUtils_c2s[85] = "U"
	set StringUtils_c2s[86] = "V"
	set StringUtils_c2s[87] = "W"
	set StringUtils_c2s[88] = "X"
	set StringUtils_c2s[89] = "Y"
	set StringUtils_c2s[90] = "Z"
	set StringUtils_c2s[91] = "["
	set StringUtils_c2s[92] = "\\"
	set StringUtils_c2s[93] = "]"
	set StringUtils_c2s[94] = "^"
	set StringUtils_c2s[95] = "_"
	set StringUtils_c2s[96] = "`"
	set StringUtils_c2s[97] = "a"
	set StringUtils_c2s[98] = "b"
	set StringUtils_c2s[99] = "c"
	set StringUtils_c2s[100] = "d"
	set StringUtils_c2s[101] = "e"
	set StringUtils_c2s[102] = "f"
	set StringUtils_c2s[103] = "g"
	set StringUtils_c2s[104] = "h"
	set StringUtils_c2s[105] = "i"
	set StringUtils_c2s[106] = "j"
	set StringUtils_c2s[107] = "k"
	set StringUtils_c2s[108] = "l"
	set StringUtils_c2s[109] = "m"
	set StringUtils_c2s[110] = "n"
	set StringUtils_c2s[111] = "o"
	set StringUtils_c2s[112] = "p"
	set StringUtils_c2s[113] = "q"
	set StringUtils_c2s[114] = "r"
	set StringUtils_c2s[115] = "s"
	set StringUtils_c2s[116] = "t"
	set StringUtils_c2s[117] = "u"
	set StringUtils_c2s[118] = "v"
	set StringUtils_c2s[119] = "w"
	set StringUtils_c2s[120] = "x"
	set StringUtils_c2s[121] = "y"
	set StringUtils_c2s[122] = "z"
	set StringUtils_c2s[123] = "{"
	set StringUtils_c2s[124] = "|"
	set StringUtils_c2s[125] = "}"
	set StringUtils_c2s[126] = "~"
	set StringUtils_c2s[127] = ""
	call s2cInit()
endfunction

function stringToIndex takes string s, string w__wurst_stackPos returns integer
	local integer hash
	local integer this_1
	local boolean Table_Table_hasString_result
	set wurst_stack[wurst_stack_depth] = w__wurst_stackPos
	set wurst_stack_depth = wurst_stack_depth + 1
	set hash = StringHash(s)
	loop
		set this_1 = TypeCasting_typecastdata
		set wurst_stack[wurst_stack_depth] = "when calling hasString in TypeCasting, line 26"
		set wurst_stack_depth = wurst_stack_depth + 1
		if Table_typeId[this_1] == 0 then
			if this_1 == 0 then
				call error("Nullpointer exception when calling Table.hasString", "when calling error in Table, line 19")
			else
				call error("Called Table.hasString on invalid object.", "when calling error in Table, line 19")
			endif
		endif
		set Table_Table_hasString_result = HaveSavedString(Table_ht, this_1, hash)
		set wurst_stack_depth = wurst_stack_depth - 1
		set this_1 = TypeCasting_typecastdata
		if Table_Table_hasString_result then
			set wurst_stack[wurst_stack_depth] = "when calling loadString in TypeCasting, line 27"
			set wurst_stack_depth = wurst_stack_depth + 1
			if Table_typeId[this_1] == 0 then
				if this_1 == 0 then
					call error("Nullpointer exception when calling Table.loadString", "when calling error in Table, line 58")
				else
					call error("Called Table.loadString on invalid object.", "when calling error in Table, line 58")
				endif
			endif
			set w__wurst_stackPos = LoadStr(Table_ht, this_1, hash)
			set wurst_stack_depth = wurst_stack_depth - 1
			exitwhen w__wurst_stackPos == s
		else
			set wurst_stack[wurst_stack_depth] = "when calling saveString in TypeCasting, line 30"
			set wurst_stack_depth = wurst_stack_depth + 1
			if Table_typeId[this_1] == 0 then
				if this_1 == 0 then
					call error("Nullpointer exception when calling Table.saveString", "when calling error in Table, line 61")
				else
					call error("Called Table.saveString on invalid object.", "when calling error in Table, line 61")
				endif
			endif
			call SaveStr(Table_ht, this_1, hash, s)
			set wurst_stack_depth = wurst_stack_depth - 1
			exitwhen true
		endif
		set hash = hash + 1
	endloop
	set wurst_stack_depth = wurst_stack_depth - 1
	return hash
endfunction

function bridge_init_StringUtils takes nothing returns boolean
	set wurst_stack_depth = 0
	set wurst_stack[wurst_stack_depth] = "via function reference StringUtils, line 1"
	set wurst_stack_depth = wurst_stack_depth + 1
	set StringUtils_MAX_INDEX = 127
	call initialize()
	call stringToIndex("", "when calling stringToIndex in StringUtils, line 187")
	set wurst_stack_depth = wurst_stack_depth - 1
	return true
endfunction

function init_SyncSimple takes string w__wurst_stackPos returns boolean
	local trigger trig
	local integer i
	local integer temp
	set wurst_stack[wurst_stack_depth] = w__wurst_stackPos
	set wurst_stack_depth = wurst_stack_depth + 1
	set SyncSimple_syncQueue = new_LinkedList("when calling new_LinkedList in SyncSimple, line 40")
	set trig = CreateTrigger()
	set i = 0
	set temp = bj_MAX_PLAYER_SLOTS - 1
	loop
		exitwhen i > temp
		call BlzTriggerRegisterPlayerSyncEvent(trig, Player_players[i], "S", false)
		call BlzTriggerRegisterPlayerSyncEvent(trig, Player_players[i], "T", false)
		set i = i + 1
	endloop
	call TriggerAddAction(trig, ref_function_bridge_code__addAction_SyncSimple)
	set wurst_stack_depth = wurst_stack_depth - 1
	return true
endfunction

function bridge_init_SyncSimple takes nothing returns boolean
	set wurst_stack_depth = 0
	return init_SyncSimple("via function reference SyncSimple, line 1")
endfunction

function bridge_init_TimerUtils takes nothing returns boolean
	set wurst_stack_depth = 0
	set wurst_stack[wurst_stack_depth] = "via function reference TimerUtils, line 1"
	set wurst_stack_depth = wurst_stack_depth + 1
	set TimerUtils_timerData = new_Table("when calling new_Table in TimerUtils, line 13")
	call new_HashMap("when calling new_HashMap in TimerUtils, line 59")
	set wurst_stack_depth = wurst_stack_depth - 1
	return true
endfunction

function init_TypeCasting takes string w__wurst_stackPos returns boolean
	local integer this_1
	set wurst_stack[wurst_stack_depth] = w__wurst_stackPos
	set wurst_stack_depth = wurst_stack_depth + 1
	set TypeCasting_typecastdata = new_Table("when calling new_Table in TypeCasting, line 7")
	set wurst_stack[wurst_stack_depth] = "when calling initTypecastData in TypeCasting, line 15"
	set wurst_stack_depth = wurst_stack_depth + 1
	set this_1 = TypeCasting_typecastdata
	set wurst_stack[wurst_stack_depth] = "when calling saveString in TypeCasting, line 12"
	set wurst_stack_depth = wurst_stack_depth + 1
	if Table_typeId[this_1] == 0 then
		if this_1 == 0 then
			call error("Nullpointer exception when calling Table.saveString", "when calling error in Table, line 61")
		else
			call error("Called Table.saveString on invalid object.", "when calling error in Table, line 61")
		endif
	endif
	call SaveStr(Table_ht, this_1, 0, "")
	set wurst_stack_depth = wurst_stack_depth - 1 - 1 - 1
	return true
endfunction

function bridge_init_TypeCasting takes nothing returns boolean
	set wurst_stack_depth = 0
	return init_TypeCasting("via function reference TypeCasting, line 1")
endfunction

function onEvent takes string w__wurst_stackPos returns nothing
	local integer listener_1
	set wurst_stack[wurst_stack_depth] = w__wurst_stackPos
	set wurst_stack_depth = wurst_stack_depth + 1
	set listener_1 = dispatch_HashMap_HashMap_HashMap_get(ClosureFrames_FRAME_MAP, GetHandleId(BlzGetTriggerFrame()), "when calling get in ClosureFrames, line 92")
	loop
		exitwhen listener_1 == 0
		set listener_1 = FrameHandleListener_next[listener_1]
	endloop
	set wurst_stack_depth = wurst_stack_depth - 1
endfunction

function bridge_onEvent takes nothing returns nothing
	set wurst_stack_depth = 0
	call onEvent("via function reference ClosureFrames, line 22")
endfunction

function onEvent_450 takes string w__wurst_stackPos returns nothing
	local integer listener_1
	set wurst_stack[wurst_stack_depth] = w__wurst_stackPos
	set wurst_stack_depth = wurst_stack_depth + 1
	set listener_1 = dispatch_HashMap_HashMap_HashMap_get(ClosureKeyPresses_KEY_MAP, GetHandleId(BlzGetTriggerPlayerKey()), "when calling get in ClosureKeyPresses, line 79")
	loop
		exitwhen listener_1 == 0
		set listener_1 = KeyPressListener_next[listener_1]
	endloop
	set wurst_stack_depth = wurst_stack_depth - 1
endfunction

function bridge_onEvent_254 takes nothing returns nothing
	set wurst_stack_depth = 0
	call onEvent_450("via function reference ClosureKeyPresses, line 29")
endfunction

function code__Filter_DamageDetection takes nothing returns nothing
	call TriggerRegisterUnitEvent(DamageDetection_current, GetFilterUnit(), EVENT_UNIT_DAMAGED)
endfunction

function prepareUnit takes unit u_1 returns nothing
	call UnitAddAbility(u_1, 1095577652)
	call UnitMakeAbilityPermanent(u_1, true, 1095577652)
	set OnUnitEnterLeave_tempUnits[OnUnitEnterLeave_tempUnitsCount] = u_1
	set OnUnitEnterLeave_tempUnitsCount = OnUnitEnterLeave_tempUnitsCount + 1
	call TriggerEvaluate(OnUnitEnterLeave_eventTrigger)
	set OnUnitEnterLeave_tempUnitsCount = OnUnitEnterLeave_tempUnitsCount - 1
endfunction

function code__Filter_registerEnterRegion_nullTimer_OnUnitEnterLeave takes nothing returns nothing
	call prepareUnit(GetFilterUnit())
endfunction

function code__ForGroup_nullTimer_OnUnitEnterLeave takes nothing returns nothing
	call prepareUnit(GetEnumUnit())
endfunction

function code__onEnter_DamageDetection takes nothing returns nothing
	call TriggerRegisterUnitEvent(DamageDetection_current, OnUnitEnterLeave_tempUnits[OnUnitEnterLeave_tempUnitsCount - 1], EVENT_UNIT_DAMAGED)
endfunction

function code__onUnitIndex_ClosureEvents takes nothing returns nothing
	call TriggerRegisterUnitEvent(ClosureEvents_unitTrig, UnitIndexer_tempUnits[UnitIndexer_tempUnitsCount - 1], EVENT_UNIT_DAMAGED)
endfunction

function code__registerPlayerUnitEvent_nullTimer_OnUnitEnterLeave takes nothing returns nothing
	local unit leavingUnit = GetTriggerUnit()
	if GetUnitAbilityLevel(leavingUnit, 1095577652) == 0 and GetIssuedOrderId() == 852056 then
		set OnUnitEnterLeave_tempUnits[OnUnitEnterLeave_tempUnitsCount] = leavingUnit
		set OnUnitEnterLeave_tempUnitsCount = OnUnitEnterLeave_tempUnitsCount + 1
		call TriggerExecute(OnUnitEnterLeave_eventTrigger)
		set OnUnitEnterLeave_tempUnitsCount = OnUnitEnterLeave_tempUnitsCount - 1
	endif
endfunction

function code__startPeriodic_GameTimer takes nothing returns nothing
	set GameTimer_currentTime = GameTimer_currentTime + 0.030
endfunction

function init_Abilities takes nothing returns boolean
	return true
endfunction

function init_AbilityIds takes nothing returns boolean
	return true
endfunction

function init_AbilityObjEditing takes nothing returns boolean
	return true
endfunction

function init_Angle takes nothing returns boolean
	return true
endfunction

function init_AttachmentPoints takes nothing returns boolean
	return true
endfunction

function init_Base64 takes nothing returns boolean
	set Base64_CHARMAP[0] = "A"
	set Base64_CHARMAP[1] = "B"
	set Base64_CHARMAP[2] = "C"
	set Base64_CHARMAP[3] = "D"
	set Base64_CHARMAP[4] = "E"
	set Base64_CHARMAP[5] = "F"
	set Base64_CHARMAP[6] = "G"
	set Base64_CHARMAP[7] = "H"
	set Base64_CHARMAP[8] = "I"
	set Base64_CHARMAP[9] = "J"
	set Base64_CHARMAP[10] = "K"
	set Base64_CHARMAP[11] = "L"
	set Base64_CHARMAP[12] = "M"
	set Base64_CHARMAP[13] = "N"
	set Base64_CHARMAP[14] = "O"
	set Base64_CHARMAP[15] = "P"
	set Base64_CHARMAP[16] = "Q"
	set Base64_CHARMAP[17] = "R"
	set Base64_CHARMAP[18] = "S"
	set Base64_CHARMAP[19] = "T"
	set Base64_CHARMAP[20] = "U"
	set Base64_CHARMAP[21] = "V"
	set Base64_CHARMAP[22] = "W"
	set Base64_CHARMAP[23] = "X"
	set Base64_CHARMAP[24] = "Y"
	set Base64_CHARMAP[25] = "Z"
	set Base64_CHARMAP[26] = "a"
	set Base64_CHARMAP[27] = "b"
	set Base64_CHARMAP[28] = "c"
	set Base64_CHARMAP[29] = "d"
	set Base64_CHARMAP[30] = "e"
	set Base64_CHARMAP[31] = "f"
	set Base64_CHARMAP[32] = "g"
	set Base64_CHARMAP[33] = "h"
	set Base64_CHARMAP[34] = "i"
	set Base64_CHARMAP[35] = "j"
	set Base64_CHARMAP[36] = "k"
	set Base64_CHARMAP[37] = "l"
	set Base64_CHARMAP[38] = "m"
	set Base64_CHARMAP[39] = "n"
	set Base64_CHARMAP[40] = "o"
	set Base64_CHARMAP[41] = "p"
	set Base64_CHARMAP[42] = "q"
	set Base64_CHARMAP[43] = "r"
	set Base64_CHARMAP[44] = "s"
	set Base64_CHARMAP[45] = "t"
	set Base64_CHARMAP[46] = "u"
	set Base64_CHARMAP[47] = "v"
	set Base64_CHARMAP[48] = "w"
	set Base64_CHARMAP[49] = "x"
	set Base64_CHARMAP[50] = "y"
	set Base64_CHARMAP[51] = "z"
	set Base64_CHARMAP[52] = "0"
	set Base64_CHARMAP[53] = "1"
	set Base64_CHARMAP[54] = "2"
	set Base64_CHARMAP[55] = "3"
	set Base64_CHARMAP[56] = "4"
	set Base64_CHARMAP[57] = "5"
	set Base64_CHARMAP[58] = "6"
	set Base64_CHARMAP[59] = "7"
	set Base64_CHARMAP[60] = "8"
	set Base64_CHARMAP[61] = "9"
	set Base64_CHARMAP[62] = "+"
	set Base64_CHARMAP[63] = "/"
	set Base64_REVERSE_CHARMAP[0] = 0
	set Base64_REVERSE_CHARMAP[1] = 0
	set Base64_REVERSE_CHARMAP[2] = 0
	set Base64_REVERSE_CHARMAP[3] = 0
	set Base64_REVERSE_CHARMAP[4] = 0
	set Base64_REVERSE_CHARMAP[5] = 0
	set Base64_REVERSE_CHARMAP[6] = 0
	set Base64_REVERSE_CHARMAP[7] = 0
	set Base64_REVERSE_CHARMAP[8] = 0
	set Base64_REVERSE_CHARMAP[9] = 0
	set Base64_REVERSE_CHARMAP[10] = 0
	set Base64_REVERSE_CHARMAP[11] = 0
	set Base64_REVERSE_CHARMAP[12] = 0
	set Base64_REVERSE_CHARMAP[13] = 0
	set Base64_REVERSE_CHARMAP[14] = 0
	set Base64_REVERSE_CHARMAP[15] = 0
	set Base64_REVERSE_CHARMAP[16] = 0
	set Base64_REVERSE_CHARMAP[17] = 0
	set Base64_REVERSE_CHARMAP[18] = 0
	set Base64_REVERSE_CHARMAP[19] = 0
	set Base64_REVERSE_CHARMAP[20] = 0
	set Base64_REVERSE_CHARMAP[21] = 0
	set Base64_REVERSE_CHARMAP[22] = 0
	set Base64_REVERSE_CHARMAP[23] = 0
	set Base64_REVERSE_CHARMAP[24] = 0
	set Base64_REVERSE_CHARMAP[25] = 0
	set Base64_REVERSE_CHARMAP[26] = 0
	set Base64_REVERSE_CHARMAP[27] = 0
	set Base64_REVERSE_CHARMAP[28] = 0
	set Base64_REVERSE_CHARMAP[29] = 0
	set Base64_REVERSE_CHARMAP[30] = 0
	set Base64_REVERSE_CHARMAP[31] = 0
	set Base64_REVERSE_CHARMAP[32] = 0
	set Base64_REVERSE_CHARMAP[33] = 0
	set Base64_REVERSE_CHARMAP[34] = 0
	set Base64_REVERSE_CHARMAP[35] = 0
	set Base64_REVERSE_CHARMAP[36] = 0
	set Base64_REVERSE_CHARMAP[37] = 0
	set Base64_REVERSE_CHARMAP[38] = 0
	set Base64_REVERSE_CHARMAP[39] = 0
	set Base64_REVERSE_CHARMAP[40] = 0
	set Base64_REVERSE_CHARMAP[41] = 0
	set Base64_REVERSE_CHARMAP[42] = 0
	set Base64_REVERSE_CHARMAP[43] = 62
	set Base64_REVERSE_CHARMAP[44] = 0
	set Base64_REVERSE_CHARMAP[45] = 0
	set Base64_REVERSE_CHARMAP[46] = 0
	set Base64_REVERSE_CHARMAP[47] = 63
	set Base64_REVERSE_CHARMAP[48] = 52
	set Base64_REVERSE_CHARMAP[49] = 53
	set Base64_REVERSE_CHARMAP[50] = 54
	set Base64_REVERSE_CHARMAP[51] = 55
	set Base64_REVERSE_CHARMAP[52] = 56
	set Base64_REVERSE_CHARMAP[53] = 57
	set Base64_REVERSE_CHARMAP[54] = 58
	set Base64_REVERSE_CHARMAP[55] = 59
	set Base64_REVERSE_CHARMAP[56] = 60
	set Base64_REVERSE_CHARMAP[57] = 61
	set Base64_REVERSE_CHARMAP[58] = 0
	set Base64_REVERSE_CHARMAP[59] = 0
	set Base64_REVERSE_CHARMAP[60] = 0
	set Base64_REVERSE_CHARMAP[61] = 0
	set Base64_REVERSE_CHARMAP[62] = 0
	set Base64_REVERSE_CHARMAP[63] = 0
	set Base64_REVERSE_CHARMAP[64] = 0
	set Base64_REVERSE_CHARMAP[65] = 0
	set Base64_REVERSE_CHARMAP[66] = 1
	set Base64_REVERSE_CHARMAP[67] = 2
	set Base64_REVERSE_CHARMAP[68] = 3
	set Base64_REVERSE_CHARMAP[69] = 4
	set Base64_REVERSE_CHARMAP[70] = 5
	set Base64_REVERSE_CHARMAP[71] = 6
	set Base64_REVERSE_CHARMAP[72] = 7
	set Base64_REVERSE_CHARMAP[73] = 8
	set Base64_REVERSE_CHARMAP[74] = 9
	set Base64_REVERSE_CHARMAP[75] = 10
	set Base64_REVERSE_CHARMAP[76] = 11
	set Base64_REVERSE_CHARMAP[77] = 12
	set Base64_REVERSE_CHARMAP[78] = 13
	set Base64_REVERSE_CHARMAP[79] = 14
	set Base64_REVERSE_CHARMAP[80] = 15
	set Base64_REVERSE_CHARMAP[81] = 16
	set Base64_REVERSE_CHARMAP[82] = 17
	set Base64_REVERSE_CHARMAP[83] = 18
	set Base64_REVERSE_CHARMAP[84] = 19
	set Base64_REVERSE_CHARMAP[85] = 20
	set Base64_REVERSE_CHARMAP[86] = 21
	set Base64_REVERSE_CHARMAP[87] = 22
	set Base64_REVERSE_CHARMAP[88] = 23
	set Base64_REVERSE_CHARMAP[89] = 24
	set Base64_REVERSE_CHARMAP[90] = 25
	set Base64_REVERSE_CHARMAP[91] = 0
	set Base64_REVERSE_CHARMAP[92] = 0
	set Base64_REVERSE_CHARMAP[93] = 0
	set Base64_REVERSE_CHARMAP[94] = 0
	set Base64_REVERSE_CHARMAP[95] = 0
	set Base64_REVERSE_CHARMAP[96] = 0
	set Base64_REVERSE_CHARMAP[97] = 26
	set Base64_REVERSE_CHARMAP[98] = 27
	set Base64_REVERSE_CHARMAP[99] = 28
	set Base64_REVERSE_CHARMAP[100] = 29
	set Base64_REVERSE_CHARMAP[101] = 30
	set Base64_REVERSE_CHARMAP[102] = 31
	set Base64_REVERSE_CHARMAP[103] = 32
	set Base64_REVERSE_CHARMAP[104] = 33
	set Base64_REVERSE_CHARMAP[105] = 34
	set Base64_REVERSE_CHARMAP[106] = 35
	set Base64_REVERSE_CHARMAP[107] = 36
	set Base64_REVERSE_CHARMAP[108] = 37
	set Base64_REVERSE_CHARMAP[109] = 38
	set Base64_REVERSE_CHARMAP[110] = 39
	set Base64_REVERSE_CHARMAP[111] = 40
	set Base64_REVERSE_CHARMAP[112] = 41
	set Base64_REVERSE_CHARMAP[113] = 42
	set Base64_REVERSE_CHARMAP[114] = 43
	set Base64_REVERSE_CHARMAP[115] = 44
	set Base64_REVERSE_CHARMAP[116] = 45
	set Base64_REVERSE_CHARMAP[117] = 46
	set Base64_REVERSE_CHARMAP[118] = 47
	set Base64_REVERSE_CHARMAP[119] = 48
	set Base64_REVERSE_CHARMAP[120] = 49
	set Base64_REVERSE_CHARMAP[121] = 50
	set Base64_REVERSE_CHARMAP[122] = 51
	set Base64_REVERSE_CHARMAP[123] = 0
	set Base64_REVERSE_CHARMAP[124] = 0
	set Base64_REVERSE_CHARMAP[125] = 0
	set Base64_REVERSE_CHARMAP[126] = 0
	set Base64_REVERSE_CHARMAP[127] = 0
	set Base64_REVERSE_CHARMAP[128] = 0
	set Base64_REVERSE_CHARMAP[129] = 0
	set Base64_REVERSE_CHARMAP[130] = 0
	set Base64_REVERSE_CHARMAP[131] = 0
	set Base64_REVERSE_CHARMAP[132] = 0
	set Base64_REVERSE_CHARMAP[133] = 0
	set Base64_REVERSE_CHARMAP[134] = 0
	set Base64_REVERSE_CHARMAP[135] = 0
	set Base64_REVERSE_CHARMAP[136] = 0
	set Base64_REVERSE_CHARMAP[137] = 0
	set Base64_REVERSE_CHARMAP[138] = 0
	set Base64_REVERSE_CHARMAP[139] = 0
	set Base64_REVERSE_CHARMAP[140] = 0
	set Base64_REVERSE_CHARMAP[141] = 0
	set Base64_REVERSE_CHARMAP[142] = 0
	set Base64_REVERSE_CHARMAP[143] = 0
	set Base64_REVERSE_CHARMAP[144] = 0
	set Base64_REVERSE_CHARMAP[145] = 0
	set Base64_REVERSE_CHARMAP[146] = 0
	set Base64_REVERSE_CHARMAP[147] = 0
	set Base64_REVERSE_CHARMAP[148] = 0
	set Base64_REVERSE_CHARMAP[149] = 0
	set Base64_REVERSE_CHARMAP[150] = 0
	set Base64_REVERSE_CHARMAP[151] = 0
	set Base64_REVERSE_CHARMAP[152] = 0
	set Base64_REVERSE_CHARMAP[153] = 0
	set Base64_REVERSE_CHARMAP[154] = 0
	set Base64_REVERSE_CHARMAP[155] = 0
	set Base64_REVERSE_CHARMAP[156] = 0
	set Base64_REVERSE_CHARMAP[157] = 0
	set Base64_REVERSE_CHARMAP[158] = 0
	set Base64_REVERSE_CHARMAP[159] = 0
	set Base64_REVERSE_CHARMAP[160] = 0
	set Base64_REVERSE_CHARMAP[161] = 0
	set Base64_REVERSE_CHARMAP[162] = 0
	set Base64_REVERSE_CHARMAP[163] = 0
	set Base64_REVERSE_CHARMAP[164] = 0
	set Base64_REVERSE_CHARMAP[165] = 0
	set Base64_REVERSE_CHARMAP[166] = 0
	set Base64_REVERSE_CHARMAP[167] = 0
	set Base64_REVERSE_CHARMAP[168] = 0
	set Base64_REVERSE_CHARMAP[169] = 0
	set Base64_REVERSE_CHARMAP[170] = 0
	set Base64_REVERSE_CHARMAP[171] = 0
	set Base64_REVERSE_CHARMAP[172] = 0
	set Base64_REVERSE_CHARMAP[173] = 0
	set Base64_REVERSE_CHARMAP[174] = 0
	set Base64_REVERSE_CHARMAP[175] = 0
	set Base64_REVERSE_CHARMAP[176] = 0
	set Base64_REVERSE_CHARMAP[177] = 0
	set Base64_REVERSE_CHARMAP[178] = 0
	set Base64_REVERSE_CHARMAP[179] = 0
	set Base64_REVERSE_CHARMAP[180] = 0
	set Base64_REVERSE_CHARMAP[181] = 0
	set Base64_REVERSE_CHARMAP[182] = 0
	set Base64_REVERSE_CHARMAP[183] = 0
	set Base64_REVERSE_CHARMAP[184] = 0
	set Base64_REVERSE_CHARMAP[185] = 0
	set Base64_REVERSE_CHARMAP[186] = 0
	set Base64_REVERSE_CHARMAP[187] = 0
	set Base64_REVERSE_CHARMAP[188] = 0
	set Base64_REVERSE_CHARMAP[189] = 0
	set Base64_REVERSE_CHARMAP[190] = 0
	set Base64_REVERSE_CHARMAP[191] = 0
	set Base64_REVERSE_CHARMAP[192] = 0
	set Base64_REVERSE_CHARMAP[193] = 0
	set Base64_REVERSE_CHARMAP[194] = 0
	set Base64_REVERSE_CHARMAP[195] = 0
	set Base64_REVERSE_CHARMAP[196] = 0
	set Base64_REVERSE_CHARMAP[197] = 0
	set Base64_REVERSE_CHARMAP[198] = 0
	set Base64_REVERSE_CHARMAP[199] = 0
	set Base64_REVERSE_CHARMAP[200] = 0
	set Base64_REVERSE_CHARMAP[201] = 0
	set Base64_REVERSE_CHARMAP[202] = 0
	set Base64_REVERSE_CHARMAP[203] = 0
	set Base64_REVERSE_CHARMAP[204] = 0
	set Base64_REVERSE_CHARMAP[205] = 0
	set Base64_REVERSE_CHARMAP[206] = 0
	set Base64_REVERSE_CHARMAP[207] = 0
	set Base64_REVERSE_CHARMAP[208] = 0
	set Base64_REVERSE_CHARMAP[209] = 0
	set Base64_REVERSE_CHARMAP[210] = 0
	set Base64_REVERSE_CHARMAP[211] = 0
	set Base64_REVERSE_CHARMAP[212] = 0
	set Base64_REVERSE_CHARMAP[213] = 0
	set Base64_REVERSE_CHARMAP[214] = 0
	set Base64_REVERSE_CHARMAP[215] = 0
	set Base64_REVERSE_CHARMAP[216] = 0
	set Base64_REVERSE_CHARMAP[217] = 0
	set Base64_REVERSE_CHARMAP[218] = 0
	set Base64_REVERSE_CHARMAP[219] = 0
	set Base64_REVERSE_CHARMAP[220] = 0
	set Base64_REVERSE_CHARMAP[221] = 0
	set Base64_REVERSE_CHARMAP[222] = 0
	set Base64_REVERSE_CHARMAP[223] = 0
	set Base64_REVERSE_CHARMAP[224] = 0
	set Base64_REVERSE_CHARMAP[225] = 0
	set Base64_REVERSE_CHARMAP[226] = 0
	set Base64_REVERSE_CHARMAP[227] = 0
	set Base64_REVERSE_CHARMAP[228] = 0
	set Base64_REVERSE_CHARMAP[229] = 0
	set Base64_REVERSE_CHARMAP[230] = 0
	set Base64_REVERSE_CHARMAP[231] = 0
	set Base64_REVERSE_CHARMAP[232] = 0
	set Base64_REVERSE_CHARMAP[233] = 0
	set Base64_REVERSE_CHARMAP[234] = 0
	set Base64_REVERSE_CHARMAP[235] = 0
	set Base64_REVERSE_CHARMAP[236] = 0
	set Base64_REVERSE_CHARMAP[237] = 0
	set Base64_REVERSE_CHARMAP[238] = 0
	set Base64_REVERSE_CHARMAP[239] = 0
	set Base64_REVERSE_CHARMAP[240] = 0
	set Base64_REVERSE_CHARMAP[241] = 0
	set Base64_REVERSE_CHARMAP[242] = 0
	set Base64_REVERSE_CHARMAP[243] = 0
	set Base64_REVERSE_CHARMAP[244] = 0
	set Base64_REVERSE_CHARMAP[245] = 0
	set Base64_REVERSE_CHARMAP[246] = 0
	set Base64_REVERSE_CHARMAP[247] = 0
	set Base64_REVERSE_CHARMAP[248] = 0
	set Base64_REVERSE_CHARMAP[249] = 0
	set Base64_REVERSE_CHARMAP[250] = 0
	set Base64_REVERSE_CHARMAP[251] = 0
	set Base64_REVERSE_CHARMAP[252] = 0
	set Base64_REVERSE_CHARMAP[253] = 0
	set Base64_REVERSE_CHARMAP[254] = 0
	return true
endfunction

function init_Base64Tests takes nothing returns boolean
	return true
endfunction

function init_Basics takes nothing returns boolean
	set Basics_DUMMY_PLAYER = Player_players[PLAYER_NEUTRAL_PASSIVE]
	return true
endfunction

function init_BigNum takes nothing returns boolean
	return true
endfunction

function initPows takes nothing returns nothing
	local integer allPows
	local integer i
	local integer temp
	set BitSet_pows[0] = 1
	set allPows = 1
	set i = 1
	set temp = 31
	loop
		exitwhen i > temp
		set BitSet_pows[i] = BitSet_pows[i - 1] * 2
		set allPows = BlzBitOr(allPows, BitSet_pows[i])
		set i = i + 1
	endloop
	set i = 0
	set temp = 31
	loop
		exitwhen i > temp
		set i = i + 1
	endloop
endfunction

function init_BitSet takes nothing returns boolean
	call initPows()
	return true
endfunction

function initBitwise takes nothing returns nothing
	local integer i16 = 0
	local integer i256 = 0
	local integer i
	loop
		exitwhen i256 >= 256
		set i = 0
		loop
			exitwhen i >= 16
			set i256 = i256 + 1
			set i = i + 1
		endloop
		set i16 = i16 + 1
	endloop
	set i256 = 0
	loop
		exitwhen i256 >= 256
		set i16 = 0
		loop
			exitwhen i16 >= 16
			set i256 = i256 + 1
			set i16 = i16 + 1
		endloop
	endloop
	set i16 = 0
	set i256 = 1
	loop
		exitwhen i16 > 32
		set BitwiseInit_powShift[i16] = i256
		set i256 = i256 * 2
		set i16 = i16 + 1
	endloop
endfunction

function init_BitwiseInit takes nothing returns boolean
	call initBitwise()
	return true
endfunction

function init_BuffIds takes nothing returns boolean
	return true
endfunction

function init_Buildings takes nothing returns boolean
	return true
endfunction

function init_ChunkedString takes nothing returns boolean
	return true
endfunction

function init_ClosureForGroups takes nothing returns boolean
	call CreateGroup()
	call Filter(ref_function_bridge_code__Filter_ClosureForGroups)
	call Rect(0., 0., 0., 0.)
	return true
endfunction

function init_ClosureTimers takes nothing returns boolean
	set ClosureTimers_x = 200
	return true
endfunction

function init_DamageDetection takes nothing returns boolean
	local integer i
	local integer temp
	set DamageDetection_current = null
	set DamageDetection_toDestroy = null
	set DamageDetection_filter = Filter(ref_function_code__Filter_DamageDetection)
	set DamageDetection_current = CreateTrigger()
	set i = 0
	set temp = -1
	loop
		exitwhen i > temp
		call TriggerAddCondition(DamageDetection_current, DamageDetection_func[i])
		set i = i + 1
	endloop
	call TriggerAddCondition(OnUnitEnterLeave_eventTrigger, Filter(ref_function_code__onEnter_DamageDetection))
	call TimerStart(CreateTimer(), 600., true, ref_function_swap)
	return true
endfunction

function init_Destructable takes nothing returns boolean
	return true
endfunction

function init_Doodads takes nothing returns boolean
	return true
endfunction

function init_ErrorHandling takes nothing returns boolean
	set ErrorHandling_HT = hashtable_compiletime_319
	set ErrorHandling_lastError = ""
	return true
endfunction

function init_Execute takes nothing returns boolean
	set Execute_executeForce = CreateForce()
	call ForceAddPlayer(Execute_executeForce, Player_localPlayer)
	return true
endfunction

function init_ForceTests takes nothing returns boolean
	return true
endfunction

function init_FramehandleNames takes nothing returns boolean
	return true
endfunction

function init_GameStatus takes nothing returns boolean
	local player firstPlayer
	local unit u_1
	local boolean selected
	set GameStatus_gameStatus = 0
	set firstPlayer = Player(0)
	loop
		if GetPlayerSlotState(firstPlayer) == PLAYER_SLOT_STATE_PLAYING then
			set selected = GetPlayerController(firstPlayer) == MAP_CONTROL_USER
		else
			set selected = false
		endif
		exitwhen selected
		set firstPlayer = Player(GetPlayerId(firstPlayer) + 1)
	endloop
	set u_1 = CreateUnit(firstPlayer, 1751543663, 0., 0., 0.)
	call SelectUnit(u_1, true)
	set selected = IsUnitSelected(u_1, firstPlayer)
	call RemoveUnit(u_1)
	if selected then
		if ReloadGameCachesFromDisk() then
			set GameStatus_gameStatus = 2
		else
			set GameStatus_gameStatus = 3
		endif
	else
		set GameStatus_gameStatus = 1
	endif
	return true
endfunction

function init_GameTimer takes nothing returns boolean
	call TimerStart(CreateTimer(), 100000., false, null)
	call TimerStart(CreateTimer(), 0.030, true, ref_function_code__startPeriodic_GameTimer)
	return true
endfunction

function init_Group takes nothing returns boolean
	set Group_ENUM_GROUP = CreateGroup()
	return true
endfunction

function init_HashList takes nothing returns boolean
	set HashList_ht = hashtable_compiletime
	set HashList_occurences = hashtable_compiletime_318
	return true
endfunction

function init_HashListTests takes nothing returns boolean
	return true
endfunction

function init_HashSet takes nothing returns boolean
	set HashSet_position = hashtable_compiletime_321
	return true
endfunction

function init_Icons takes nothing returns boolean
	return true
endfunction

function init_InstantDummyCaster takes nothing returns boolean
	local unit receiver = CreateUnit(Basics_DUMMY_PLAYER, 2016423986, MapBounds_boundMax_x, MapBounds_boundMax_y, 0.0)
	call SetUnitPathing(receiver, false)
	call UnitAddAbility(receiver, 1097691750)
	call UnitRemoveAbility(receiver, 1097691750)
	call UnitAddAbility(receiver, 1095577651)
	call UnitRemoveAbility(receiver, 1095577651)
	return true
endfunction

function init_Integer takes nothing returns boolean
	return true
endfunction

function init_ItemIds takes nothing returns boolean
	return true
endfunction

function init_LastOrder takes nothing returns boolean
	call registerPlayerUnitEvent(EVENT_PLAYER_UNIT_ISSUED_TARGET_ORDER, null, ref_function_bridge_actions, null)
	call registerPlayerUnitEvent(EVENT_PLAYER_UNIT_ISSUED_POINT_ORDER, null, ref_function_bridge_actions_331, null)
	call registerPlayerUnitEvent(EVENT_PLAYER_UNIT_ISSUED_ORDER, null, ref_function_bridge_actions_332, null)
	call registerPlayerUnitEvent(EVENT_PLAYER_UNIT_SPELL_EFFECT, null, ref_function_spellActions, null)
	call TriggerAddCondition(UnitIndexer_onDeindexTrigger, Condition(ref_function_bridge_code__onUnitDeindex_LastOrder))
	return true
endfunction

function init_Lightning takes nothing returns boolean
	return true
endfunction

function init_MagicFunctions takes nothing returns boolean
	set MagicFunctions_compiletime = false
	return true
endfunction

function initMapBounds takes nothing returns nothing
	local rect cond_result
	local region receiver
	local real tuple_temp
	local real tuple_temp_1
	if MagicFunctions_compiletime then
		set cond_result = Rect(-1024., -1024., 1024., 1024.)
	else
		set cond_result = bj_mapInitialPlayableArea
	endif
	set MapBounds_playableMapRect = cond_result
	set receiver = CreateRegion()
	call RegionAddRect(receiver, MapBounds_playableMapRect)
	if MagicFunctions_compiletime then
		set cond_result = Rect(-1536., -1536., 1536., 1536.)
	else
		set cond_result = GetWorldBounds()
	endif
	set MapBounds_boundRect = cond_result
	set receiver = CreateRegion()
	call RegionAddRect(receiver, MapBounds_boundRect)
	set MapBounds_boundRegion = receiver
	set tuple_temp = GetRectMinX(MapBounds_playableMapRect)
	set tuple_temp_1 = GetRectMinY(MapBounds_playableMapRect)
	set MapBounds_playableMin_x = tuple_temp
	set MapBounds_playableMin_y = tuple_temp_1
	set tuple_temp = GetRectMinX(MapBounds_boundRect)
	set tuple_temp_1 = GetRectMinY(MapBounds_boundRect)
	set MapBounds_boundMin_x = tuple_temp
	set MapBounds_boundMin_y = tuple_temp_1
	set tuple_temp_1 = GetRectMaxX(MapBounds_boundRect)
	set tuple_temp = GetRectMaxY(MapBounds_boundRect)
	set MapBounds_boundMax_x = tuple_temp_1
	set MapBounds_boundMax_y = tuple_temp
endfunction

function init_MapBounds takes nothing returns boolean
	call initMapBounds()
	return true
endfunction

function init_Maths takes nothing returns boolean
	return true
endfunction

function init_Matrices takes nothing returns boolean
	return true
endfunction

function init_ObjectIds takes nothing returns boolean
	return true
endfunction

function init_Objects takes nothing returns boolean
	return true
endfunction

function init_Orders takes nothing returns boolean
	return true
endfunction

function init_PathingMaps takes nothing returns boolean
	return true
endfunction

function init_Player takes nothing returns boolean
	local integer i
	local integer temp
	set Player_localPlayer = GetLocalPlayer()
	set i = 0
	set temp = bj_MAX_PLAYER_SLOTS - 1
	loop
		exitwhen i > temp
		set Player_players[i] = Player(i)
		set i = i + 1
	endloop
	return true
endfunction

function init_Playercolor takes nothing returns boolean
	return true
endfunction

function init_Printing takes nothing returns boolean
	return true
endfunction

function init_Quaternion takes nothing returns boolean
	return true
endfunction

function init_Raycast takes nothing returns boolean
	return true
endfunction

function init_Real takes nothing returns boolean
	return true
endfunction

function init_SafetyChecks takes nothing returns boolean
	return true
endfunction

function init_SaveLoadData takes nothing returns boolean
	return true
endfunction

function init_Serializable takes nothing returns boolean
	return true
endfunction

function init_Simulate3dSound takes nothing returns boolean
	return true
endfunction

function init_SoundUtils takes nothing returns boolean
	return true
endfunction

function init_Sounds takes nothing returns boolean
	return true
endfunction

function init_Soundsets takes nothing returns boolean
	return true
endfunction

function init_StandardTextTags takes nothing returns boolean
	return true
endfunction

function init_String takes nothing returns boolean
	return true
endfunction

function init_Table takes nothing returns boolean
	set Table_ht = hashtable_compiletime_320
	return true
endfunction

function init_TargetsAllowed takes nothing returns boolean
	return true
endfunction

function init_TerrainUtils takes nothing returns boolean
	call SetItemVisible(CreateItem(2003790951, 0., 0.), false)
	call Rect(0., 0., 128., 128.)
	return true
endfunction

function init_Textures takes nothing returns boolean
	return true
endfunction

function init_Tiles takes nothing returns boolean
	return true
endfunction

function init_UI takes nothing returns boolean
	return true
endfunction

function init_UnitAnimations takes nothing returns boolean
	return true
endfunction

function init_UnitIds takes nothing returns boolean
	return true
endfunction

function init_UnitIndexer takes nothing returns boolean
	set UnitIndexer_onIndexTrigger = CreateTrigger()
	set UnitIndexer_onDeindexTrigger = CreateTrigger()
	call TriggerAddCondition(OnUnitEnterLeave_eventTrigger, Filter(ref_function_bridge_code__onEnter_UnitIndexer))
	call TriggerAddAction(OnUnitEnterLeave_eventTrigger, ref_function_bridge_code__onLeave_UnitIndexer)
	return true
endfunction

function init_Units takes nothing returns boolean
	return true
endfunction

function init_UpgradeObjEditing takes nothing returns boolean
	return true
endfunction

function init_Vectors takes nothing returns boolean
	call Location(0., 0.)
	return true
endfunction

function init_WeatherEffects takes nothing returns boolean
	return true
endfunction

function spellActions takes nothing returns nothing
endfunction

function group_enumUnitsAll takes group this_1, boolexpr filter returns nothing
	local integer i = 0
	local integer temp = bj_MAX_PLAYER_SLOTS - 1
	loop
		exitwhen i > temp
		call GroupEnumUnitsOfPlayer(Group_ENUM_GROUP, Player_players[i], filter)
		call BlzGroupAddGroupFast(Group_ENUM_GROUP, this_1)
		set i = i + 1
	endloop
	call GroupClear(Group_ENUM_GROUP)
endfunction

function swap takes nothing returns nothing
	local boolean isEnabled = IsTriggerEnabled(DamageDetection_current)
	local integer i
	local integer temp
	call DisableTrigger(DamageDetection_current)
	if DamageDetection_toDestroy != null then
		call DestroyTrigger(DamageDetection_toDestroy)
	endif
	set DamageDetection_toDestroy = DamageDetection_current
	set DamageDetection_current = CreateTrigger()
	if  not isEnabled then
		call DisableTrigger(DamageDetection_current)
	endif
	call group_enumUnitsAll(Group_ENUM_GROUP, DamageDetection_filter)
	set i = 0
	set temp = -1
	loop
		exitwhen i > temp
		call TriggerAddCondition(DamageDetection_current, DamageDetection_func[i])
		set i = i + 1
	endloop
endfunction

function initGlobals takes nothing returns nothing
	set ref_function_init_Abilities = function init_Abilities
	set ref_function_init_AbilityIds = function init_AbilityIds
	set ref_function_init_Real = function init_Real
	set ref_function_init_Integer = function init_Integer
	set ref_function_init_BitSet = function init_BitSet
	set ref_function_init_String = function init_String
	set ref_function_init_TargetsAllowed = function init_TargetsAllowed
	set ref_function_init_Angle = function init_Angle
	set ref_function_init_Vectors = function init_Vectors
	set ref_function_init_Destructable = function init_Destructable
	set ref_function_init_Player = function init_Player
	set ref_function_init_Maths = function init_Maths
	set ref_function_init_Printing = function init_Printing
	set ref_function_init_MagicFunctions = function init_MagicFunctions
	set ref_function_init_Basics = function init_Basics
	set ref_function_init_GameTimer = function init_GameTimer
	set ref_function_init_ErrorHandling = function init_ErrorHandling
	set ref_function_init_Matrices = function init_Matrices
	set ref_function_init_Quaternion = function init_Quaternion
	set ref_function_init_Table = function init_Table
	set ref_function_init_Playercolor = function init_Playercolor
	set ref_function_bridge_init_Colors = function bridge_init_Colors
	set ref_function_bridge_init_Framehandle = function bridge_init_Framehandle
	set ref_function_init_Group = function init_Group
	set ref_function_init_Lightning = function init_Lightning
	set ref_function_init_WeatherEffects = function init_WeatherEffects
	set ref_function_bridge_init_TypeCasting = function bridge_init_TypeCasting
	set ref_function_init_HashList = function init_HashList
	set ref_function_bridge_init_EventHelper = function bridge_init_EventHelper
	set ref_function_init_AbilityObjEditing = function init_AbilityObjEditing
	set ref_function_init_AttachmentPoints = function init_AttachmentPoints
	set ref_function_init_BitwiseInit = function init_BitwiseInit
	set ref_function_init_ClosureForGroups = function init_ClosureForGroups
	set ref_function_bridge_init_LinkedList = function bridge_init_LinkedList
	set ref_function_bridge_init_StringUtils = function bridge_init_StringUtils
	set ref_function_init_SafetyChecks = function init_SafetyChecks
	set ref_function_init_ChunkedString = function init_ChunkedString
	set ref_function_init_Execute = function init_Execute
	set ref_function_init_Base64 = function init_Base64
	set ref_function_init_Base64Tests = function init_Base64Tests
	set ref_function_init_BigNum = function init_BigNum
	set ref_function_init_BuffIds = function init_BuffIds
	set ref_function_init_Buildings = function init_Buildings
	set ref_function_init_ObjectIds = function init_ObjectIds
	set ref_function_bridge_init_TimerUtils = function bridge_init_TimerUtils
	set ref_function_init_ClosureTimers = function init_ClosureTimers
	set ref_function_init_UnitIds = function init_UnitIds
	set ref_function_init_MapBounds = function init_MapBounds
	set ref_function_bridge_init_Preloader = function bridge_init_Preloader
	set ref_function_bridge_init_ObjectIdGenerator = function bridge_init_ObjectIdGenerator
	set ref_function_init_Icons = function init_Icons
	set ref_function_bridge_init_ChannelAbilityPreset = function bridge_init_ChannelAbilityPreset
	set ref_function_bridge_init_RegisterEvents = function bridge_init_RegisterEvents
	set ref_function_init_Orders = function init_Orders
	set ref_function_bridge_init_OnUnitEnterLeave = function bridge_init_OnUnitEnterLeave
	set ref_function_init_UnitIndexer = function init_UnitIndexer
	set ref_function_bridge_init_ClosureEvents = function bridge_init_ClosureEvents
	set ref_function_bridge_init_ClosureFrames = function bridge_init_ClosureFrames
	set ref_function_bridge_init_ClosureKeyPresses = function bridge_init_ClosureKeyPresses
	set ref_function_init_DamageDetection = function init_DamageDetection
	set ref_function_bridge_init_DamageEvent = function bridge_init_DamageEvent
	set ref_function_bridge_init_DialogBox = function bridge_init_DialogBox
	set ref_function_init_Doodads = function init_Doodads
	set ref_function_bridge_init_DummyRecycler = function bridge_init_DummyRecycler
	set ref_function_bridge_init_FileIO = function bridge_init_FileIO
	set ref_function_init_ForceTests = function init_ForceTests
	set ref_function_init_FramehandleNames = function init_FramehandleNames
	set ref_function_init_GameStatus = function init_GameStatus
	set ref_function_bridge_init_GroupUtils = function bridge_init_GroupUtils
	set ref_function_init_HashListTests = function init_HashListTests
	set ref_function_init_HashSet = function init_HashSet
	set ref_function_init_InstantDummyCaster = function init_InstantDummyCaster
	set ref_function_init_ItemIds = function init_ItemIds
	set ref_function_init_TerrainUtils = function init_TerrainUtils
	set ref_function_init_Objects = function init_Objects
	set ref_function_bridge_init_Knockback3 = function bridge_init_Knockback3
	set ref_function_init_LastOrder = function init_LastOrder
	set ref_function_bridge_init_LinkedListModuleTests = function bridge_init_LinkedListModuleTests
	set ref_function_init_PathingMaps = function init_PathingMaps
	set ref_function_init_Raycast = function init_Raycast
	set ref_function_bridge_init_SyncSimple = function bridge_init_SyncSimple
	set ref_function_init_SaveLoadData = function init_SaveLoadData
	set ref_function_init_Serializable = function init_Serializable
	set ref_function_init_Simulate3dSound = function init_Simulate3dSound
	set ref_function_init_Sounds = function init_Sounds
	set ref_function_init_SoundUtils = function init_SoundUtils
	set ref_function_init_Soundsets = function init_Soundsets
	set ref_function_init_StandardTextTags = function init_StandardTextTags
	set ref_function_init_Textures = function init_Textures
	set ref_function_init_Tiles = function init_Tiles
	set ref_function_init_UI = function init_UI
	set ref_function_init_UnitAnimations = function init_UnitAnimations
	set ref_function_init_Units = function init_Units
	set ref_function_init_UpgradeObjEditing = function init_UpgradeObjEditing
	set ref_function_code__onUnitIndex_ClosureEvents = function code__onUnitIndex_ClosureEvents
	set ref_function_bridge_code__onUnitDeindex_ClosureEvents = function bridge_code__onUnitDeindex_ClosureEvents
	set ref_function_bridge_EventListener_generalEventCallback = function bridge_EventListener_generalEventCallback
	set ref_function_bridge_code__Filter_ClosureForGroups = function bridge_code__Filter_ClosureForGroups
	set ref_function_bridge_onEvent = function bridge_onEvent
	set ref_function_bridge_onEvent_370 = function bridge_onEvent_254
	set ref_function_code__Filter_DamageDetection = function code__Filter_DamageDetection
	set ref_function_code__onEnter_DamageDetection = function code__onEnter_DamageDetection
	set ref_function_swap = function swap
	set ref_function_bridge_executeCurrentCallback = function bridge_executeCurrentCallback
	set ref_function_code__startPeriodic_GameTimer = function code__startPeriodic_GameTimer
	set ref_function_bridge_actions = function bridge_actions
	set ref_function_bridge_actions_331 = function bridge_actions_215
	set ref_function_bridge_actions_332 = function bridge_actions_216
	set ref_function_spellActions = function spellActions
	set ref_function_bridge_code__onUnitDeindex_LastOrder = function bridge_code__onUnitDeindex_LastOrder
	set ref_function_bridge_code__addAction_SyncSimple = function bridge_code__addAction_SyncSimple
	set ref_function_bridge_code__onEnter_UnitIndexer = function bridge_code__onEnter_UnitIndexer
	set ref_function_bridge_code__onLeave_UnitIndexer = function bridge_code__onLeave_UnitIndexer
	set ref_function_bridge_code__addAction_nullTimer_ClosureEvents = function bridge_code__addAction_nullTimer_ClosureEvents
	set ref_function_bridge_code__addAction_nullTimer_ClosureEvents_336 = function bridge_code__addAction_nullTimer_ClosureEvents_220
	set ref_function_bridge_code__addAction_nullTimer_ClosureEvents_337 = function bridge_code__addAction_nullTimer_ClosureEvents_221
	set ref_function_bridge_code__registerPlayerUnitEvent_nullTimer_ClosureEvents = function bridge_code__registerPlayerUnitEvent_nullTimer_ClosureEvents
	set ref_function_bridge_code__start_CallbackSingle_ClosureTimers = function bridge_code__start_CallbackSingle_ClosureTimers
	set ref_function_code__Filter_registerEnterRegion_nullTimer_OnUnitEnterLeave = function code__Filter_registerEnterRegion_nullTimer_OnUnitEnterLeave
	set ref_function_code__registerPlayerUnitEvent_nullTimer_OnUnitEnterLeave = function code__registerPlayerUnitEvent_nullTimer_OnUnitEnterLeave
	set ref_function_code__ForGroup_nullTimer_OnUnitEnterLeave = function code__ForGroup_nullTimer_OnUnitEnterLeave
	set ref_function_bridge_code__registerPlayerUnitEvent_RegisterEvents = function bridge_code__registerPlayerUnitEvent_RegisterEvents
endfunction

function main takes nothing returns nothing
	local trigger initTrig
	call initGlobals()
	call ExecuteFunc("initCompiletimeState_0")
	set initTrig = CreateTrigger()
	call TriggerAddCondition(initTrig, Condition(ref_function_init_Abilities))
	if  not TriggerEvaluate(initTrig) then
		call error("Could not initialize package Abilities.", "when calling error in Abilities, line 1")
	endif
	call TriggerClearConditions(initTrig)
	call TriggerAddCondition(initTrig, Condition(ref_function_init_AbilityIds))
	if  not TriggerEvaluate(initTrig) then
		call error("Could not initialize package AbilityIds.", "when calling error in AbilityIds, line 1")
	endif
	call TriggerClearConditions(initTrig)
	call TriggerAddCondition(initTrig, Condition(ref_function_init_Real))
	if  not TriggerEvaluate(initTrig) then
		call error("Could not initialize package Real.", "when calling error in Real, line 1")
	endif
	call TriggerClearConditions(initTrig)
	call TriggerAddCondition(initTrig, Condition(ref_function_init_Integer))
	if  not TriggerEvaluate(initTrig) then
		call error("Could not initialize package Integer.", "when calling error in Integer, line 1")
	endif
	call TriggerClearConditions(initTrig)
	call TriggerAddCondition(initTrig, Condition(ref_function_init_BitSet))
	if  not TriggerEvaluate(initTrig) then
		call error("Could not initialize package BitSet.", "when calling error in BitSet, line 1")
	endif
	call TriggerClearConditions(initTrig)
	call TriggerAddCondition(initTrig, Condition(ref_function_init_String))
	if  not TriggerEvaluate(initTrig) then
		call error("Could not initialize package String.", "when calling error in String, line 1")
	endif
	call TriggerClearConditions(initTrig)
	call TriggerAddCondition(initTrig, Condition(ref_function_init_TargetsAllowed))
	if  not TriggerEvaluate(initTrig) then
		call error("Could not initialize package TargetsAllowed.", "when calling error in TargetsAllowed, line 1")
	endif
	call TriggerClearConditions(initTrig)
	call TriggerAddCondition(initTrig, Condition(ref_function_init_Angle))
	if  not TriggerEvaluate(initTrig) then
		call error("Could not initialize package Angle.", "when calling error in Angle, line 1")
	endif
	call TriggerClearConditions(initTrig)
	call TriggerAddCondition(initTrig, Condition(ref_function_init_Vectors))
	if  not TriggerEvaluate(initTrig) then
		call error("Could not initialize package Vectors.", "when calling error in Vectors, line 1")
	endif
	call TriggerClearConditions(initTrig)
	call TriggerAddCondition(initTrig, Condition(ref_function_init_Destructable))
	if  not TriggerEvaluate(initTrig) then
		call error("Could not initialize package Destructable.", "when calling error in Destructable, line 1")
	endif
	call TriggerClearConditions(initTrig)
	call TriggerAddCondition(initTrig, Condition(ref_function_init_Player))
	if  not TriggerEvaluate(initTrig) then
		call error("Could not initialize package Player.", "when calling error in Player, line 1")
	endif
	call TriggerClearConditions(initTrig)
	call TriggerAddCondition(initTrig, Condition(ref_function_init_Maths))
	if  not TriggerEvaluate(initTrig) then
		call error("Could not initialize package Maths.", "when calling error in Maths, line 1")
	endif
	call TriggerClearConditions(initTrig)
	call TriggerAddCondition(initTrig, Condition(ref_function_init_Printing))
	if  not TriggerEvaluate(initTrig) then
		call error("Could not initialize package Printing.", "when calling error in Printing, line 1")
	endif
	call TriggerClearConditions(initTrig)
	call TriggerAddCondition(initTrig, Condition(ref_function_init_MagicFunctions))
	if  not TriggerEvaluate(initTrig) then
		call error("Could not initialize package MagicFunctions.", "when calling error in MagicFunctions, line 1")
	endif
	call TriggerClearConditions(initTrig)
	call TriggerAddCondition(initTrig, Condition(ref_function_init_Basics))
	if  not TriggerEvaluate(initTrig) then
		call error("Could not initialize package Basics.", "when calling error in Basics, line 1")
	endif
	call TriggerClearConditions(initTrig)
	call TriggerAddCondition(initTrig, Condition(ref_function_init_GameTimer))
	if  not TriggerEvaluate(initTrig) then
		call error("Could not initialize package GameTimer.", "when calling error in GameTimer, line 1")
	endif
	call TriggerClearConditions(initTrig)
	call TriggerAddCondition(initTrig, Condition(ref_function_init_ErrorHandling))
	if  not TriggerEvaluate(initTrig) then
		call error("Could not initialize package ErrorHandling.", "when calling error in ErrorHandling, line 1")
	endif
	call TriggerClearConditions(initTrig)
	call TriggerAddCondition(initTrig, Condition(ref_function_init_Matrices))
	if  not TriggerEvaluate(initTrig) then
		call error("Could not initialize package Matrices.", "when calling error in Matrices, line 1")
	endif
	call TriggerClearConditions(initTrig)
	call TriggerAddCondition(initTrig, Condition(ref_function_init_Quaternion))
	if  not TriggerEvaluate(initTrig) then
		call error("Could not initialize package Quaternion.", "when calling error in Quaternion, line 1")
	endif
	call TriggerClearConditions(initTrig)
	call TriggerAddCondition(initTrig, Condition(ref_function_init_Table))
	if  not TriggerEvaluate(initTrig) then
		call error("Could not initialize package Table.", "when calling error in Table, line 1")
	endif
	call TriggerClearConditions(initTrig)
	call TriggerAddCondition(initTrig, Condition(ref_function_init_Playercolor))
	if  not TriggerEvaluate(initTrig) then
		call error("Could not initialize package Playercolor.", "when calling error in Playercolor, line 1")
	endif
	call TriggerClearConditions(initTrig)
	call TriggerAddCondition(initTrig, Condition(ref_function_bridge_init_Colors))
	if  not TriggerEvaluate(initTrig) then
		call error("Could not initialize package Colors.", "when calling error in Colors, line 1")
	endif
	call TriggerClearConditions(initTrig)
	call TriggerAddCondition(initTrig, Condition(ref_function_bridge_init_Framehandle))
	if  not TriggerEvaluate(initTrig) then
		call error("Could not initialize package Framehandle.", "when calling error in Framehandle, line 1")
	endif
	call TriggerClearConditions(initTrig)
	call TriggerAddCondition(initTrig, Condition(ref_function_init_Group))
	if  not TriggerEvaluate(initTrig) then
		call error("Could not initialize package Group.", "when calling error in Group, line 1")
	endif
	call TriggerClearConditions(initTrig)
	call TriggerAddCondition(initTrig, Condition(ref_function_init_Lightning))
	if  not TriggerEvaluate(initTrig) then
		call error("Could not initialize package Lightning.", "when calling error in Lightning, line 1")
	endif
	call TriggerClearConditions(initTrig)
	call TriggerAddCondition(initTrig, Condition(ref_function_init_WeatherEffects))
	if  not TriggerEvaluate(initTrig) then
		call error("Could not initialize package WeatherEffects.", "when calling error in WeatherEffects, line 1")
	endif
	call TriggerClearConditions(initTrig)
	call TriggerAddCondition(initTrig, Condition(ref_function_bridge_init_TypeCasting))
	if  not TriggerEvaluate(initTrig) then
		call error("Could not initialize package TypeCasting.", "when calling error in TypeCasting, line 1")
	endif
	call TriggerClearConditions(initTrig)
	call TriggerAddCondition(initTrig, Condition(ref_function_init_HashList))
	if  not TriggerEvaluate(initTrig) then
		call error("Could not initialize package HashList.", "when calling error in HashList, line 1")
	endif
	call TriggerClearConditions(initTrig)
	call TriggerAddCondition(initTrig, Condition(ref_function_bridge_init_EventHelper))
	if  not TriggerEvaluate(initTrig) then
		call error("Could not initialize package EventHelper.", "when calling error in EventHelper, line 1")
	endif
	call TriggerClearConditions(initTrig)
	call TriggerAddCondition(initTrig, Condition(ref_function_init_AbilityObjEditing))
	if  not TriggerEvaluate(initTrig) then
		call error("Could not initialize package AbilityObjEditing.", "when calling error in AbilityObjEditing, line 1")
	endif
	call TriggerClearConditions(initTrig)
	call TriggerAddCondition(initTrig, Condition(ref_function_init_AttachmentPoints))
	if  not TriggerEvaluate(initTrig) then
		call error("Could not initialize package AttachmentPoints.", "when calling error in AttachmentPoints, line 1")
	endif
	call TriggerClearConditions(initTrig)
	call TriggerAddCondition(initTrig, Condition(ref_function_init_BitwiseInit))
	if  not TriggerEvaluate(initTrig) then
		call error("Could not initialize package BitwiseInit.", "when calling error in BitwiseInit, line 1")
	endif
	call TriggerClearConditions(initTrig)
	call TriggerAddCondition(initTrig, Condition(ref_function_init_ClosureForGroups))
	if  not TriggerEvaluate(initTrig) then
		call error("Could not initialize package ClosureForGroups.", "when calling error in ClosureForGroups, line 1")
	endif
	call TriggerClearConditions(initTrig)
	call TriggerAddCondition(initTrig, Condition(ref_function_bridge_init_LinkedList))
	if  not TriggerEvaluate(initTrig) then
		call error("Could not initialize package LinkedList.", "when calling error in LinkedList, line 1")
	endif
	call TriggerClearConditions(initTrig)
	call TriggerAddCondition(initTrig, Condition(ref_function_bridge_init_StringUtils))
	if  not TriggerEvaluate(initTrig) then
		call error("Could not initialize package StringUtils.", "when calling error in StringUtils, line 1")
	endif
	call TriggerClearConditions(initTrig)
	call TriggerAddCondition(initTrig, Condition(ref_function_init_SafetyChecks))
	if  not TriggerEvaluate(initTrig) then
		call error("Could not initialize package SafetyChecks.", "when calling error in SafetyChecks, line 1")
	endif
	call TriggerClearConditions(initTrig)
	call TriggerAddCondition(initTrig, Condition(ref_function_init_ChunkedString))
	if  not TriggerEvaluate(initTrig) then
		call error("Could not initialize package ChunkedString.", "when calling error in ChunkedString, line 1")
	endif
	call TriggerClearConditions(initTrig)
	call TriggerAddCondition(initTrig, Condition(ref_function_init_Execute))
	if  not TriggerEvaluate(initTrig) then
		call error("Could not initialize package Execute.", "when calling error in Execute, line 1")
	endif
	call TriggerClearConditions(initTrig)
	call TriggerAddCondition(initTrig, Condition(ref_function_init_Base64))
	if  not TriggerEvaluate(initTrig) then
		call error("Could not initialize package Base64.", "when calling error in Base64, line 1")
	endif
	call TriggerClearConditions(initTrig)
	call TriggerAddCondition(initTrig, Condition(ref_function_init_Base64Tests))
	if  not TriggerEvaluate(initTrig) then
		call error("Could not initialize package Base64Tests.", "when calling error in Base64Tests, line 1")
	endif
	call TriggerClearConditions(initTrig)
	call TriggerAddCondition(initTrig, Condition(ref_function_init_BigNum))
	if  not TriggerEvaluate(initTrig) then
		call error("Could not initialize package BigNum.", "when calling error in BigNum, line 1")
	endif
	call TriggerClearConditions(initTrig)
	call TriggerAddCondition(initTrig, Condition(ref_function_init_BuffIds))
	if  not TriggerEvaluate(initTrig) then
		call error("Could not initialize package BuffIds.", "when calling error in BuffIds, line 1")
	endif
	call TriggerClearConditions(initTrig)
	call TriggerAddCondition(initTrig, Condition(ref_function_init_Buildings))
	if  not TriggerEvaluate(initTrig) then
		call error("Could not initialize package Buildings.", "when calling error in Buildings, line 1")
	endif
	call TriggerClearConditions(initTrig)
	call TriggerAddCondition(initTrig, Condition(ref_function_init_ObjectIds))
	if  not TriggerEvaluate(initTrig) then
		call error("Could not initialize package ObjectIds.", "when calling error in ObjectIds, line 1")
	endif
	call TriggerClearConditions(initTrig)
	call TriggerAddCondition(initTrig, Condition(ref_function_bridge_init_TimerUtils))
	if  not TriggerEvaluate(initTrig) then
		call error("Could not initialize package TimerUtils.", "when calling error in TimerUtils, line 1")
	endif
	call TriggerClearConditions(initTrig)
	call TriggerAddCondition(initTrig, Condition(ref_function_init_ClosureTimers))
	if  not TriggerEvaluate(initTrig) then
		call error("Could not initialize package ClosureTimers.", "when calling error in ClosureTimers, line 1")
	endif
	call TriggerClearConditions(initTrig)
	call TriggerAddCondition(initTrig, Condition(ref_function_init_UnitIds))
	if  not TriggerEvaluate(initTrig) then
		call error("Could not initialize package UnitIds.", "when calling error in UnitIds, line 1")
	endif
	call TriggerClearConditions(initTrig)
	call TriggerAddCondition(initTrig, Condition(ref_function_init_MapBounds))
	if  not TriggerEvaluate(initTrig) then
		call error("Could not initialize package MapBounds.", "when calling error in MapBounds, line 1")
	endif
	call TriggerClearConditions(initTrig)
	call TriggerAddCondition(initTrig, Condition(ref_function_bridge_init_Preloader))
	if  not TriggerEvaluate(initTrig) then
		call error("Could not initialize package Preloader.", "when calling error in Preloader, line 1")
	endif
	call TriggerClearConditions(initTrig)
	call TriggerAddCondition(initTrig, Condition(ref_function_bridge_init_ObjectIdGenerator))
	if  not TriggerEvaluate(initTrig) then
		call error("Could not initialize package ObjectIdGenerator.", "when calling error in ObjectIdGenerator, line 1")
	endif
	call TriggerClearConditions(initTrig)
	call TriggerAddCondition(initTrig, Condition(ref_function_init_Icons))
	if  not TriggerEvaluate(initTrig) then
		call error("Could not initialize package Icons.", "when calling error in Icons, line 1")
	endif
	call TriggerClearConditions(initTrig)
	call TriggerAddCondition(initTrig, Condition(ref_function_bridge_init_ChannelAbilityPreset))
	if  not TriggerEvaluate(initTrig) then
		call error("Could not initialize package ChannelAbilityPreset.", "when calling error in ChannelAbilityPreset, line 1")
	endif
	call TriggerClearConditions(initTrig)
	call TriggerAddCondition(initTrig, Condition(ref_function_bridge_init_RegisterEvents))
	if  not TriggerEvaluate(initTrig) then
		call error("Could not initialize package RegisterEvents.", "when calling error in RegisterEvents, line 1")
	endif
	call TriggerClearConditions(initTrig)
	call TriggerAddCondition(initTrig, Condition(ref_function_init_Orders))
	if  not TriggerEvaluate(initTrig) then
		call error("Could not initialize package Orders.", "when calling error in Orders, line 1")
	endif
	call TriggerClearConditions(initTrig)
	call TriggerAddCondition(initTrig, Condition(ref_function_bridge_init_OnUnitEnterLeave))
	if  not TriggerEvaluate(initTrig) then
		call error("Could not initialize package OnUnitEnterLeave.", "when calling error in OnUnitEnterLeave, line 1")
	endif
	call TriggerClearConditions(initTrig)
	call TriggerAddCondition(initTrig, Condition(ref_function_init_UnitIndexer))
	if  not TriggerEvaluate(initTrig) then
		call error("Could not initialize package UnitIndexer.", "when calling error in UnitIndexer, line 1")
	endif
	call TriggerClearConditions(initTrig)
	call TriggerAddCondition(initTrig, Condition(ref_function_bridge_init_ClosureEvents))
	if  not TriggerEvaluate(initTrig) then
		call error("Could not initialize package ClosureEvents.", "when calling error in ClosureEvents, line 1")
	endif
	call TriggerClearConditions(initTrig)
	call TriggerAddCondition(initTrig, Condition(ref_function_bridge_init_ClosureFrames))
	if  not TriggerEvaluate(initTrig) then
		call error("Could not initialize package ClosureFrames.", "when calling error in ClosureFrames, line 1")
	endif
	call TriggerClearConditions(initTrig)
	call TriggerAddCondition(initTrig, Condition(ref_function_bridge_init_ClosureKeyPresses))
	if  not TriggerEvaluate(initTrig) then
		call error("Could not initialize package ClosureKeyPresses.", "when calling error in ClosureKeyPresses, line 1")
	endif
	call TriggerClearConditions(initTrig)
	call TriggerAddCondition(initTrig, Condition(ref_function_init_DamageDetection))
	if  not TriggerEvaluate(initTrig) then
		call error("Could not initialize package DamageDetection.", "when calling error in DamageDetection, line 1")
	endif
	call TriggerClearConditions(initTrig)
	call TriggerAddCondition(initTrig, Condition(ref_function_bridge_init_DamageEvent))
	if  not TriggerEvaluate(initTrig) then
		call error("Could not initialize package DamageEvent.", "when calling error in DamageEvent, line 61")
	endif
	call TriggerClearConditions(initTrig)
	call TriggerAddCondition(initTrig, Condition(ref_function_bridge_init_DialogBox))
	if  not TriggerEvaluate(initTrig) then
		call error("Could not initialize package DialogBox.", "when calling error in DialogBox, line 1")
	endif
	call TriggerClearConditions(initTrig)
	call TriggerAddCondition(initTrig, Condition(ref_function_init_Doodads))
	if  not TriggerEvaluate(initTrig) then
		call error("Could not initialize package Doodads.", "when calling error in Doodads, line 1")
	endif
	call TriggerClearConditions(initTrig)
	call TriggerAddCondition(initTrig, Condition(ref_function_bridge_init_DummyRecycler))
	if  not TriggerEvaluate(initTrig) then
		call error("Could not initialize package DummyRecycler.", "when calling error in DummyRecycler, line 1")
	endif
	call TriggerClearConditions(initTrig)
	call TriggerAddCondition(initTrig, Condition(ref_function_bridge_init_FileIO))
	if  not TriggerEvaluate(initTrig) then
		call error("Could not initialize package FileIO.", "when calling error in FileIO, line 1")
	endif
	call TriggerClearConditions(initTrig)
	call TriggerAddCondition(initTrig, Condition(ref_function_init_ForceTests))
	if  not TriggerEvaluate(initTrig) then
		call error("Could not initialize package ForceTests.", "when calling error in ForceTests, line 1")
	endif
	call TriggerClearConditions(initTrig)
	call TriggerAddCondition(initTrig, Condition(ref_function_init_FramehandleNames))
	if  not TriggerEvaluate(initTrig) then
		call error("Could not initialize package FramehandleNames.", "when calling error in FramehandleNames, line 1")
	endif
	call TriggerClearConditions(initTrig)
	call TriggerAddCondition(initTrig, Condition(ref_function_init_GameStatus))
	if  not TriggerEvaluate(initTrig) then
		call error("Could not initialize package GameStatus.", "when calling error in GameStatus, line 1")
	endif
	call TriggerClearConditions(initTrig)
	call TriggerAddCondition(initTrig, Condition(ref_function_bridge_init_GroupUtils))
	if  not TriggerEvaluate(initTrig) then
		call error("Could not initialize package GroupUtils.", "when calling error in GroupUtils, line 1")
	endif
	call TriggerClearConditions(initTrig)
	call TriggerAddCondition(initTrig, Condition(ref_function_init_HashListTests))
	if  not TriggerEvaluate(initTrig) then
		call error("Could not initialize package HashListTests.", "when calling error in HashListTests, line 1")
	endif
	call TriggerClearConditions(initTrig)
	call TriggerAddCondition(initTrig, Condition(ref_function_init_HashSet))
	if  not TriggerEvaluate(initTrig) then
		call error("Could not initialize package HashSet.", "when calling error in HashSet, line 1")
	endif
	call TriggerClearConditions(initTrig)
	call TriggerAddCondition(initTrig, Condition(ref_function_init_InstantDummyCaster))
	if  not TriggerEvaluate(initTrig) then
		call error("Could not initialize package InstantDummyCaster.", "when calling error in InstantDummyCaster, line 1")
	endif
	call TriggerClearConditions(initTrig)
	call TriggerAddCondition(initTrig, Condition(ref_function_init_ItemIds))
	if  not TriggerEvaluate(initTrig) then
		call error("Could not initialize package ItemIds.", "when calling error in ItemIds, line 1")
	endif
	call TriggerClearConditions(initTrig)
	call TriggerAddCondition(initTrig, Condition(ref_function_init_TerrainUtils))
	if  not TriggerEvaluate(initTrig) then
		call error("Could not initialize package TerrainUtils.", "when calling error in TerrainUtils, line 1")
	endif
	call TriggerClearConditions(initTrig)
	call TriggerAddCondition(initTrig, Condition(ref_function_init_Objects))
	if  not TriggerEvaluate(initTrig) then
		call error("Could not initialize package Objects.", "when calling error in Objects, line 1")
	endif
	call TriggerClearConditions(initTrig)
	call TriggerAddCondition(initTrig, Condition(ref_function_bridge_init_Knockback3))
	if  not TriggerEvaluate(initTrig) then
		call error("Could not initialize package Knockback3.", "when calling error in Knockback3, line 28")
	endif
	call TriggerClearConditions(initTrig)
	call TriggerAddCondition(initTrig, Condition(ref_function_init_LastOrder))
	if  not TriggerEvaluate(initTrig) then
		call error("Could not initialize package LastOrder.", "when calling error in LastOrder, line 6")
	endif
	call TriggerClearConditions(initTrig)
	call TriggerAddCondition(initTrig, Condition(ref_function_bridge_init_LinkedListModuleTests))
	if  not TriggerEvaluate(initTrig) then
		call error("Could not initialize package LinkedListModuleTests.", "when calling error in LinkedListModuleTests, line 1")
	endif
	call TriggerClearConditions(initTrig)
	call TriggerAddCondition(initTrig, Condition(ref_function_init_PathingMaps))
	if  not TriggerEvaluate(initTrig) then
		call error("Could not initialize package PathingMaps.", "when calling error in PathingMaps, line 1")
	endif
	call TriggerClearConditions(initTrig)
	call TriggerAddCondition(initTrig, Condition(ref_function_init_Raycast))
	if  not TriggerEvaluate(initTrig) then
		call error("Could not initialize package Raycast.", "when calling error in Raycast, line 1")
	endif
	call TriggerClearConditions(initTrig)
	call TriggerAddCondition(initTrig, Condition(ref_function_bridge_init_SyncSimple))
	if  not TriggerEvaluate(initTrig) then
		call error("Could not initialize package SyncSimple.", "when calling error in SyncSimple, line 1")
	endif
	call TriggerClearConditions(initTrig)
	call TriggerAddCondition(initTrig, Condition(ref_function_init_SaveLoadData))
	if  not TriggerEvaluate(initTrig) then
		call error("Could not initialize package SaveLoadData.", "when calling error in SaveLoadData, line 1")
	endif
	call TriggerClearConditions(initTrig)
	call TriggerAddCondition(initTrig, Condition(ref_function_init_Serializable))
	if  not TriggerEvaluate(initTrig) then
		call error("Could not initialize package Serializable.", "when calling error in Serializable, line 1")
	endif
	call TriggerClearConditions(initTrig)
	call TriggerAddCondition(initTrig, Condition(ref_function_init_Simulate3dSound))
	if  not TriggerEvaluate(initTrig) then
		call error("Could not initialize package Simulate3dSound.", "when calling error in Simulate3dSound, line 1")
	endif
	call TriggerClearConditions(initTrig)
	call TriggerAddCondition(initTrig, Condition(ref_function_init_Sounds))
	if  not TriggerEvaluate(initTrig) then
		call error("Could not initialize package Sounds.", "when calling error in Sounds, line 1")
	endif
	call TriggerClearConditions(initTrig)
	call TriggerAddCondition(initTrig, Condition(ref_function_init_SoundUtils))
	if  not TriggerEvaluate(initTrig) then
		call error("Could not initialize package SoundUtils.", "when calling error in SoundUtils, line 1")
	endif
	call TriggerClearConditions(initTrig)
	call TriggerAddCondition(initTrig, Condition(ref_function_init_Soundsets))
	if  not TriggerEvaluate(initTrig) then
		call error("Could not initialize package Soundsets.", "when calling error in Soundsets, line 1")
	endif
	call TriggerClearConditions(initTrig)
	call TriggerAddCondition(initTrig, Condition(ref_function_init_StandardTextTags))
	if  not TriggerEvaluate(initTrig) then
		call error("Could not initialize package StandardTextTags.", "when calling error in StandardTextTags, line 1")
	endif
	call TriggerClearConditions(initTrig)
	call TriggerAddCondition(initTrig, Condition(ref_function_init_Textures))
	if  not TriggerEvaluate(initTrig) then
		call error("Could not initialize package Textures.", "when calling error in Textures, line 1")
	endif
	call TriggerClearConditions(initTrig)
	call TriggerAddCondition(initTrig, Condition(ref_function_init_Tiles))
	if  not TriggerEvaluate(initTrig) then
		call error("Could not initialize package Tiles.", "when calling error in Tiles, line 1")
	endif
	call TriggerClearConditions(initTrig)
	call TriggerAddCondition(initTrig, Condition(ref_function_init_UI))
	if  not TriggerEvaluate(initTrig) then
		call error("Could not initialize package UI.", "when calling error in UI, line 1")
	endif
	call TriggerClearConditions(initTrig)
	call TriggerAddCondition(initTrig, Condition(ref_function_init_UnitAnimations))
	if  not TriggerEvaluate(initTrig) then
		call error("Could not initialize package UnitAnimations.", "when calling error in UnitAnimations, line 1")
	endif
	call TriggerClearConditions(initTrig)
	call TriggerAddCondition(initTrig, Condition(ref_function_init_Units))
	if  not TriggerEvaluate(initTrig) then
		call error("Could not initialize package Units.", "when calling error in Units, line 1")
	endif
	call TriggerClearConditions(initTrig)
	call TriggerAddCondition(initTrig, Condition(ref_function_init_UpgradeObjEditing))
	if  not TriggerEvaluate(initTrig) then
		call error("Could not initialize package UpgradeObjEditing.", "when calling error in UpgradeObjEditing, line 1")
	endif
	call TriggerClearConditions(initTrig)
	call DestroyTrigger(initTrig)
endfunction

function config takes nothing returns nothing
endfunction