# Copyright (c) 2021-2022 Johnathan P. Irvin
#
# Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the
# "Software"), to deal in the Software without restriction, including
# without limitation the rights to use, copy, modify, merge, publish,
# distribute, sublicense, and/or sell copies of the Software, and to
# permit persons to whom the Software is furnished to do so, subject to
# the following conditions:
#
# The above copyright notice and this permission notice shall be
# included in all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
import ctypes

from .attribute import AttributeEnum

ATTRIBUTE_TYPES = {
	AttributeEnum.AW_ATTRIB_SENDER_SESSION: int,
	AttributeEnum.AW_AVATAR_ADDRESS: int,
	AttributeEnum.AW_AVATAR_ANGLE: int,
	AttributeEnum.AW_AVATAR_CITIZEN: int,
	AttributeEnum.AW_AVATAR_DISTANCE: int,
	AttributeEnum.AW_AVATAR_FLAGS: int,
	AttributeEnum.AW_AVATAR_GESTURE: int,
	AttributeEnum.AW_AVATAR_LOCK: bool,
	AttributeEnum.AW_AVATAR_NAME: str,
	AttributeEnum.AW_AVATAR_PITCH: int,
	AttributeEnum.AW_AVATAR_PITCH_DELTA: int,
	AttributeEnum.AW_AVATAR_PRIVILEGE: int,
	AttributeEnum.AW_AVATAR_SESSION: int,
	AttributeEnum.AW_AVATAR_STATE: int,
	AttributeEnum.AW_AVATAR_TYPE: int,
	AttributeEnum.AW_AVATAR_VERSION: int,
	AttributeEnum.AW_AVATAR_WORLD_INSTANCE: int,
	AttributeEnum.AW_AVATAR_X: int,
	AttributeEnum.AW_AVATAR_Y: int,
	AttributeEnum.AW_AVATAR_Y_DELTA: int,
	AttributeEnum.AW_AVATAR_YAW: int,
	AttributeEnum.AW_AVATAR_YAW_DELTA: int,
	AttributeEnum.AW_AVATAR_Z: int,
	AttributeEnum.AW_BOTGRAM_FROM: int,
	AttributeEnum.AW_BOTGRAM_FROM_NAME: str,
	AttributeEnum.AW_BOTGRAM_TEXT: str,
	AttributeEnum.AW_BOTGRAM_TO: int,
	AttributeEnum.AW_BOTGRAM_TYPE: int,
	AttributeEnum.AW_BOTMENU_ANSWER: str,
	AttributeEnum.AW_BOTMENU_FROM_NAME: str,
	AttributeEnum.AW_BOTMENU_FROM_SESSION: int,
	AttributeEnum.AW_BOTMENU_QUESTION: str,
	AttributeEnum.AW_BOTMENU_TO_SESSION: int,
	AttributeEnum.AW_CAMERA_LOCATION_OBJECT: str,
	AttributeEnum.AW_CAMERA_LOCATION_SESSION: int,
	AttributeEnum.AW_CAMERA_LOCATION_TYPE: int,
	AttributeEnum.AW_CAMERA_TARGET_OBJECT: str,
	AttributeEnum.AW_CAMERA_TARGET_SESSION: int,
	AttributeEnum.AW_CAMERA_TARGET_TYPE: int,
	AttributeEnum.AW_CAV_CITIZEN: int,
	AttributeEnum.AW_CAV_DEFINITION: bytes,
	AttributeEnum.AW_CAV_SESSION: int,
	AttributeEnum.AW_CELL_COMBINE: bool,
	AttributeEnum.AW_CELL_ITERATOR: int,
	AttributeEnum.AW_CELL_SEQUENCE: int,
	AttributeEnum.AW_CELL_SIZE: int,
	AttributeEnum.AW_CELL_X: int,
	AttributeEnum.AW_CELL_Z: int,
	AttributeEnum.AW_CHAT_MESSAGE: str,
	AttributeEnum.AW_CHAT_SESSION: int,
	AttributeEnum.AW_CHAT_TYPE: int,
	AttributeEnum.AW_CITIZEN_BETA: bool,
	AttributeEnum.AW_CITIZEN_BOT_LIMIT: int,
	AttributeEnum.AW_CITIZEN_CAV_ENABLED: bool,
	AttributeEnum.AW_CITIZEN_COMMENT: str,
	AttributeEnum.AW_CITIZEN_EMAIL: str,
	AttributeEnum.AW_CITIZEN_ENABLED: bool,
	AttributeEnum.AW_CITIZEN_EXPIRATION_TIME: int,
	AttributeEnum.AW_CITIZEN_IMMIGRATION_TIME: int,
	AttributeEnum.AW_CITIZEN_LAST_ADDRESS: int,
	AttributeEnum.AW_CITIZEN_LAST_LOGIN: int,
	AttributeEnum.AW_CITIZEN_NAME: str,
	AttributeEnum.AW_CITIZEN_NUMBER: int,
	AttributeEnum.AW_CITIZEN_PASSWORD: str,
	AttributeEnum.AW_CITIZEN_PAV_ENABLED: bool,
	AttributeEnum.AW_CITIZEN_PRIVACY: int,
	AttributeEnum.AW_CITIZEN_PRIVILEGE_PASSWORD: str,
	AttributeEnum.AW_CITIZEN_TIME_LEFT: int,
	AttributeEnum.AW_CITIZEN_TOTAL_TIME: int,
	AttributeEnum.AW_CITIZEN_TRIAL: bool,
	AttributeEnum.AW_CITIZEN_URL: str,
	AttributeEnum.AW_CLICKED_NAME: str,
	AttributeEnum.AW_CLICKED_SESSION: int,
	AttributeEnum.AW_CONSOLE_BLUE: int,
	AttributeEnum.AW_CONSOLE_BOLD: bool,
	AttributeEnum.AW_CONSOLE_GREEN: int,
	AttributeEnum.AW_CONSOLE_ITALICS: bool,
	AttributeEnum.AW_CONSOLE_MESSAGE: str,
	AttributeEnum.AW_CONSOLE_RED: int,
	AttributeEnum.AW_DISCONNECT_REASON: int,
	AttributeEnum.AW_EJECT_DURATION: int,
	AttributeEnum.AW_EJECT_SESSION: int,
	AttributeEnum.AW_EJECTION_ADDRESS: int,
	AttributeEnum.AW_EJECTION_COMMENT: str,
	AttributeEnum.AW_EJECTION_CREATION_TIME: int,
	AttributeEnum.AW_EJECTION_EXPIRATION_TIME: int,
	AttributeEnum.AW_EJECTION_TYPE: int,
	AttributeEnum.AW_ENTER_GLOBAL: bool,
	AttributeEnum.AW_ENTITY_FLAGS: int,
	AttributeEnum.AW_ENTITY_ID: int,
	AttributeEnum.AW_ENTITY_MODEL_NUM: int,
	AttributeEnum.AW_ENTITY_OWNER_CITIZEN: int,
	AttributeEnum.AW_ENTITY_OWNER_SESSION: int,
	AttributeEnum.AW_ENTITY_PITCH: int,
	AttributeEnum.AW_ENTITY_ROLL: int,
	AttributeEnum.AW_ENTITY_STATE: int,
	AttributeEnum.AW_ENTITY_TYPE: int,
	AttributeEnum.AW_ENTITY_X: int,
	AttributeEnum.AW_ENTITY_Y: int,
	AttributeEnum.AW_ENTITY_YAW: int,
	AttributeEnum.AW_ENTITY_Z: int,
	AttributeEnum.AW_HUD_ELEMENT_CLICK_X: int,
	AttributeEnum.AW_HUD_ELEMENT_CLICK_Y: int,
	AttributeEnum.AW_HUD_ELEMENT_CLICK_Z: int,
	AttributeEnum.AW_HUD_ELEMENT_COLOR: int,
	AttributeEnum.AW_HUD_ELEMENT_FLAGS: int,
	AttributeEnum.AW_HUD_ELEMENT_ID: int,
	AttributeEnum.AW_HUD_ELEMENT_OPACITY: float,
	AttributeEnum.AW_HUD_ELEMENT_ORIGIN: int,
	AttributeEnum.AW_HUD_ELEMENT_SESSION: int,
	AttributeEnum.AW_HUD_ELEMENT_SIZE_X: int,
	AttributeEnum.AW_HUD_ELEMENT_SIZE_Y: int,
	AttributeEnum.AW_HUD_ELEMENT_SIZE_Z: int,
	AttributeEnum.AW_HUD_ELEMENT_TEXT: str,
	AttributeEnum.AW_HUD_ELEMENT_TEXTURE_OFFSET_X: int,
	AttributeEnum.AW_HUD_ELEMENT_TEXTURE_OFFSET_Y: int,
	AttributeEnum.AW_HUD_ELEMENT_TYPE: int,
	AttributeEnum.AW_HUD_ELEMENT_X: int,
	AttributeEnum.AW_HUD_ELEMENT_Y: int,
	AttributeEnum.AW_HUD_ELEMENT_Z: int,
	AttributeEnum.AW_LICENSE_ALLOW_TOURISTS: bool,
	AttributeEnum.AW_LICENSE_COMMENT: str,
	AttributeEnum.AW_LICENSE_CREATION_TIME: int,
	AttributeEnum.AW_LICENSE_EMAIL: str,
	AttributeEnum.AW_LICENSE_EXPIRATION_TIME: int,
	AttributeEnum.AW_LICENSE_HIDDEN: bool,
	AttributeEnum.AW_LICENSE_LAST_ADDRESS: int,
	AttributeEnum.AW_LICENSE_LAST_START: int,
	AttributeEnum.AW_LICENSE_NAME: str,
	AttributeEnum.AW_LICENSE_PASSWORD: str,
	AttributeEnum.AW_LICENSE_PLUGINS: bool,
	AttributeEnum.AW_LICENSE_RANGE: int,
	AttributeEnum.AW_LICENSE_USERS: int,
	AttributeEnum.AW_LICENSE_VOIP: bool,
	AttributeEnum.AW_LOGIN_APPLICATION: str,
	AttributeEnum.AW_LOGIN_NAME: str,
	AttributeEnum.AW_LOGIN_OWNER: int,
	AttributeEnum.AW_LOGIN_PASSWORD: str,
	AttributeEnum.AW_LOGIN_PRIVILEGE_NAME: str,
	AttributeEnum.AW_LOGIN_PRIVILEGE_PASSWORD: str,
	AttributeEnum.AW_MY_GESTURE: int,
	AttributeEnum.AW_MY_PITCH: int,
	AttributeEnum.AW_MY_STATE: int,
	AttributeEnum.AW_MY_TYPE: int,
	AttributeEnum.AW_MY_X: int,
	AttributeEnum.AW_MY_Y: int,
	AttributeEnum.AW_MY_YAW: int,
	AttributeEnum.AW_MY_Z: int,
	AttributeEnum.AW_OBJECT_ACTION: str,
	AttributeEnum.AW_OBJECT_BUILD_TIMESTAMP: int,
	AttributeEnum.AW_OBJECT_CALLBACK_REFERENCE: int,
	AttributeEnum.AW_OBJECT_DATA: bytes,
	AttributeEnum.AW_OBJECT_DESCRIPTION: str,
	AttributeEnum.AW_OBJECT_ID: int,
	AttributeEnum.AW_OBJECT_MODEL: str,
	AttributeEnum.AW_OBJECT_NUMBER: int,
	AttributeEnum.AW_OBJECT_OLD_NUMBER: int,
	AttributeEnum.AW_OBJECT_OLD_X: int,
	AttributeEnum.AW_OBJECT_OLD_Z: int,
	AttributeEnum.AW_OBJECT_OWNER: int,
	AttributeEnum.AW_OBJECT_ROLL: int,
	AttributeEnum.AW_OBJECT_SESSION: int,
	AttributeEnum.AW_OBJECT_SESSION_TO: int,
	AttributeEnum.AW_OBJECT_SYNC: int,
	AttributeEnum.AW_OBJECT_TILT: int,
	AttributeEnum.AW_OBJECT_TYPE: int,
	AttributeEnum.AW_OBJECT_X: int,
	AttributeEnum.AW_OBJECT_Y: int,
	AttributeEnum.AW_OBJECT_YAW: int,
	AttributeEnum.AW_OBJECT_Z: int,
	AttributeEnum.AW_PLUGIN_STRING: str,
	AttributeEnum.AW_QUERY_COMPLETE: bool,
	AttributeEnum.AW_SERVER_BUILD: int,
	AttributeEnum.AW_SERVER_CARETAKERS: str,
	AttributeEnum.AW_SERVER_ENABLED: bool,
	AttributeEnum.AW_SERVER_EXPIRATION: int,
	AttributeEnum.AW_SERVER_ID: int,
	AttributeEnum.AW_SERVER_INSTANCE: int,
	AttributeEnum.AW_SERVER_MAX_USERS: int,
	AttributeEnum.AW_SERVER_MORE: bool,
	AttributeEnum.AW_SERVER_NAME: str,
	AttributeEnum.AW_SERVER_OBJECTS: int,
	AttributeEnum.AW_SERVER_PASSWORD: str,
	AttributeEnum.AW_SERVER_REGISTRY: str,
	AttributeEnum.AW_SERVER_SIZE: int,
	AttributeEnum.AW_SERVER_START_RC: int,
	AttributeEnum.AW_SERVER_STATE: int,
	AttributeEnum.AW_SERVER_TERRAIN_NODES: int,
	AttributeEnum.AW_SERVER_USERS: int,
	AttributeEnum.AW_SOUND_NAME: str,
	AttributeEnum.AW_TELEPORT_WARP: bool,
	AttributeEnum.AW_TELEPORT_WORLD: str,
	AttributeEnum.AW_TELEPORT_X: int,
	AttributeEnum.AW_TELEPORT_Y: int,
	AttributeEnum.AW_TELEPORT_YAW: int,
	AttributeEnum.AW_TELEPORT_Z: int,
	AttributeEnum.AW_TERRAIN_COMPLETE: bool,
	AttributeEnum.AW_TERRAIN_NODE_HEIGHT_COUNT: int,
	AttributeEnum.AW_TERRAIN_NODE_HEIGHTS: (bytes, ctypes.c_int32),
	AttributeEnum.AW_TERRAIN_NODE_SIZE: int,
	AttributeEnum.AW_TERRAIN_NODE_TEXTURE_COUNT: int,
	AttributeEnum.AW_TERRAIN_NODE_TEXTURES: (bytes, ctypes.c_uint16),
	AttributeEnum.AW_TERRAIN_NODE_X: int,
	AttributeEnum.AW_TERRAIN_NODE_Z: int,
	AttributeEnum.AW_TERRAIN_PAGE_X: int,
	AttributeEnum.AW_TERRAIN_PAGE_Z: int,
	AttributeEnum.AW_TERRAIN_SEQUENCE: int,
	AttributeEnum.AW_TERRAIN_VERSION_NEEDED: int,
	AttributeEnum.AW_TERRAIN_X: int,
	AttributeEnum.AW_TERRAIN_Z: int,
	AttributeEnum.AW_TOOLBAR_ID: int,
	AttributeEnum.AW_TOOLBAR_SESSION: int,
	AttributeEnum.AW_URL_NAME: str,
	AttributeEnum.AW_URL_POST: str,
	AttributeEnum.AW_URL_TARGET: str,
	AttributeEnum.AW_URL_TARGET_3D: bool,
	AttributeEnum.AW_USERLIST_ADDRESS: int,
	AttributeEnum.AW_USERLIST_CITIZEN: int,
	AttributeEnum.AW_USERLIST_EMAIL: str,
	AttributeEnum.AW_USERLIST_ID: int,
	AttributeEnum.AW_USERLIST_MORE: bool,
	AttributeEnum.AW_USERLIST_NAME: str,
	AttributeEnum.AW_USERLIST_PRIVILEGE: int,
	AttributeEnum.AW_USERLIST_STATE: int,
	AttributeEnum.AW_USERLIST_WORLD: str,
	AttributeEnum.AW_WORLDLIST_MORE: bool,
	AttributeEnum.AW_WORLDLIST_NAME: str,
	AttributeEnum.AW_WORLDLIST_RATING: int,
	AttributeEnum.AW_WORLDLIST_STATUS: int,
	AttributeEnum.AW_WORLDLIST_USERS: int,
	AttributeEnum.AW_UNIVERSE_ALLOW_BOTS_CAV: bool,
	AttributeEnum.AW_UNIVERSE_ALLOW_TOURISTS: bool,
	AttributeEnum.AW_UNIVERSE_ALLOW_TOURISTS_CAV: bool,
	AttributeEnum.AW_UNIVERSE_ANNUAL_CHARGE: str,
	AttributeEnum.AW_UNIVERSE_BROWSER_BETA: int,
	AttributeEnum.AW_UNIVERSE_BROWSER_MINIMUM: int,
	AttributeEnum.AW_UNIVERSE_BROWSER_RELEASE: int,
	AttributeEnum.AW_UNIVERSE_BROWSER_RELEASE_22: int,
	AttributeEnum.AW_UNIVERSE_BUILD_NUMBER: int,
	AttributeEnum.AW_UNIVERSE_CAV_PATH: str,
	AttributeEnum.AW_UNIVERSE_CAV_PATH2: str,
	AttributeEnum.AW_UNIVERSE_CITIZEN_CHANGES_ALLOWED: bool,
	AttributeEnum.AW_UNIVERSE_MONTHLY_CHARGE: str,
	AttributeEnum.AW_UNIVERSE_NAME: str,
	AttributeEnum.AW_UNIVERSE_NOTEPAD_URL: str,
	AttributeEnum.AW_UNIVERSE_OBJECT_REFRESH: int,
	AttributeEnum.AW_UNIVERSE_OBJECT_PASSWORD: bytes,
	AttributeEnum.AW_UNIVERSE_REGISTER_METHOD: int,
	AttributeEnum.AW_UNIVERSE_REGISTRATION_REQUIRED: bool,
	AttributeEnum.AW_UNIVERSE_SEARCH_URL: str,
	AttributeEnum.AW_UNIVERSE_TIME: int,
	AttributeEnum.AW_UNIVERSE_USER_LIST_ENABLED: bool,
	AttributeEnum.AW_UNIVERSE_WELCOME_MESSAGE: str,
	AttributeEnum.AW_UNIVERSE_WORLD_BETA: int,
	AttributeEnum.AW_UNIVERSE_WORLD_MINIMUM: int,
	AttributeEnum.AW_UNIVERSE_WORLD_RELEASE: int,
	AttributeEnum.AW_UNIVERSE_WORLD_START: str,
	AttributeEnum.AW_WORLD_ALLOW_3_AXIS_ROTATION: bool,
	AttributeEnum.AW_WORLD_ALLOW_AVATAR_COLLISION: bool,
	AttributeEnum.AW_WORLD_ALLOW_CITIZEN_WHISPER: bool,
	AttributeEnum.AW_WORLD_ALLOW_FLYING: bool,
	AttributeEnum.AW_WORLD_ALLOW_OBJECT_SELECT: bool,
	AttributeEnum.AW_WORLD_ALLOW_PASSTHRU: bool,
	AttributeEnum.AW_WORLD_ALLOW_TELEPORT: bool,
	AttributeEnum.AW_WORLD_ALLOW_TOURIST_BUILD: bool,
	AttributeEnum.AW_WORLD_ALLOW_TOURIST_WHISPER: bool,
	AttributeEnum.AW_WORLD_ALWAYS_SHOW_NAMES: bool,
	AttributeEnum.AW_WORLD_AMBIENT_LIGHT_BLUE: int,
	AttributeEnum.AW_WORLD_AMBIENT_LIGHT_GREEN: int,
	AttributeEnum.AW_WORLD_AMBIENT_LIGHT_RED: int,
	AttributeEnum.AW_WORLD_AVATAR_REFRESH_RATE: int,
	AttributeEnum.AW_WORLD_BACKDROP: str,
	AttributeEnum.AW_WORLD_BOTMENU_URL: str,
	AttributeEnum.AW_WORLD_BOTS_RIGHT: str,
	AttributeEnum.AW_WORLD_BUILD_CAPABILITY: bool,
	AttributeEnum.AW_WORLD_BUILD_NUMBER: int,
	AttributeEnum.AW_WORLD_BUILD_RIGHT: str,
	AttributeEnum.AW_WORLD_BUOYANCY: float,
	AttributeEnum.AW_WORLD_CAMERA_ZOOM: float,
	AttributeEnum.AW_WORLD_CARETAKER_CAPABILITY: bool,
	AttributeEnum.AW_WORLD_CAV_OBJECT_PASSWORD: str,
	AttributeEnum.AW_WORLD_CAV_OBJECT_PATH: str,
	AttributeEnum.AW_WORLD_CAV_OBJECT_REFRESH: int,
	AttributeEnum.AW_WORLD_CELL_LIMIT: int,
	AttributeEnum.AW_WORLD_CHAT_DISABLE_URL_CLICKS: bool,
	AttributeEnum.AW_WORLD_CLOUDS_LAYER1_MASK: str,
	AttributeEnum.AW_WORLD_CLOUDS_LAYER1_OPACITY: int,
	AttributeEnum.AW_WORLD_CLOUDS_LAYER1_SPEED_X: float,
	AttributeEnum.AW_WORLD_CLOUDS_LAYER1_SPEED_Z: float,
	AttributeEnum.AW_WORLD_CLOUDS_LAYER1_TEXTURE: str,
	AttributeEnum.AW_WORLD_CLOUDS_LAYER1_TILE: float,
	AttributeEnum.AW_WORLD_CLOUDS_LAYER2_MASK: str,
	AttributeEnum.AW_WORLD_CLOUDS_LAYER2_OPACITY: int,
	AttributeEnum.AW_WORLD_CLOUDS_LAYER2_SPEED_X: float,
	AttributeEnum.AW_WORLD_CLOUDS_LAYER2_SPEED_Z: float,
	AttributeEnum.AW_WORLD_CLOUDS_LAYER2_TEXTURE: str,
	AttributeEnum.AW_WORLD_CLOUDS_LAYER2_TILE: float,
	AttributeEnum.AW_WORLD_CLOUDS_LAYER3_MASK: str,
	AttributeEnum.AW_WORLD_CLOUDS_LAYER3_OPACITY: int,
	AttributeEnum.AW_WORLD_CLOUDS_LAYER3_SPEED_X: float,
	AttributeEnum.AW_WORLD_CLOUDS_LAYER3_SPEED_Z: float,
	AttributeEnum.AW_WORLD_CLOUDS_LAYER3_TEXTURE: str,
	AttributeEnum.AW_WORLD_CLOUDS_LAYER3_TILE: float,
	AttributeEnum.AW_WORLD_CREATION_TIMESTAMP: int,
	AttributeEnum.AW_WORLD_DISABLE_AVATAR_LIST: bool,
	AttributeEnum.AW_WORLD_DISABLE_CHAT: bool,
	AttributeEnum.AW_WORLD_DISABLE_CREATE_URL: bool,
	AttributeEnum.AW_WORLD_DISABLE_MULTIPLE_MEDIA: bool,
	AttributeEnum.AW_WORLD_DISABLE_SHADOWS: bool,
	AttributeEnum.AW_WORLD_EJECT_CAPABILITY: bool,
	AttributeEnum.AW_WORLD_EJECT_RIGHT: str,
	AttributeEnum.AW_WORLD_EMINENT_DOMAIN_CAPABILITY: bool,
	AttributeEnum.AW_WORLD_EMINENT_DOMAIN_RIGHT: str,
	AttributeEnum.AW_WORLD_ENABLE_BUMP_EVENT: bool,
	AttributeEnum.AW_WORLD_ENABLE_CAMERA_COLLISION: bool,
	AttributeEnum.AW_WORLD_ENABLE_CAV: int,
	AttributeEnum.AW_WORLD_ENABLE_PAV: bool,
	AttributeEnum.AW_WORLD_ENABLE_REFERER: bool,
	AttributeEnum.AW_WORLD_ENABLE_SYNC_EVENTS: bool,
	AttributeEnum.AW_WORLD_ENABLE_TERRAIN: bool,
	AttributeEnum.AW_WORLD_ENTER_RIGHT: str,
	AttributeEnum.AW_WORLD_ENTRY_POINT: str,
	AttributeEnum.AW_WORLD_EXPIRATION: int,
	AttributeEnum.AW_WORLD_FOG_BLUE: int,
	AttributeEnum.AW_WORLD_FOG_ENABLE: bool,
	AttributeEnum.AW_WORLD_FOG_GREEN: int,
	AttributeEnum.AW_WORLD_FOG_MAXIMUM: int,
	AttributeEnum.AW_WORLD_FOG_MINIMUM: int,
	AttributeEnum.AW_WORLD_FOG_RED: int,
	AttributeEnum.AW_WORLD_FOG_TINTED: bool,
	AttributeEnum.AW_WORLD_FRICTION: float,
	AttributeEnum.AW_WORLD_GRAVITY: float,
	AttributeEnum.AW_WORLD_GROUND: str,
	AttributeEnum.AW_WORLD_HOME_PAGE: str,
	AttributeEnum.AW_WORLD_KEYWORDS: str,
	AttributeEnum.AW_WORLD_LIGHT_BLUE: int,
	AttributeEnum.AW_WORLD_LIGHT_DRAW_BRIGHT: bool,
	AttributeEnum.AW_WORLD_LIGHT_DRAW_FRONT: bool,
	AttributeEnum.AW_WORLD_LIGHT_DRAW_SIZE: int,
	AttributeEnum.AW_WORLD_LIGHT_GREEN: int,
	AttributeEnum.AW_WORLD_LIGHT_MASK: str,
	AttributeEnum.AW_WORLD_LIGHT_RED: int,
	AttributeEnum.AW_WORLD_LIGHT_SOURCE_COLOR: int,
	AttributeEnum.AW_WORLD_LIGHT_SOURCE_USE_COLOR: bool,
	AttributeEnum.AW_WORLD_LIGHT_TEXTURE: str,
	AttributeEnum.AW_WORLD_LIGHT_X: float,
	AttributeEnum.AW_WORLD_LIGHT_Y: float,
	AttributeEnum.AW_WORLD_LIGHT_Z: float,
	AttributeEnum.AW_WORLD_MAX_LIGHT_RADIUS: int,
	AttributeEnum.AW_WORLD_MAX_USERS: int,
	AttributeEnum.AW_WORLD_MINIMUM_VISIBILITY: int,
	AttributeEnum.AW_WORLD_MOVER_EMPTY_RESET_TIMEOUT: int,
	AttributeEnum.AW_WORLD_MOVER_USED_RESET_TIMEOUT: int,
	AttributeEnum.AW_WORLD_NAME: str,
	AttributeEnum.AW_WORLD_OBJECT_COUNT: int,
	AttributeEnum.AW_WORLD_OBJECT_PASSWORD: bytes,
	AttributeEnum.AW_WORLD_OBJECT_PATH: str,
	AttributeEnum.AW_WORLD_OBJECT_REFRESH: int,
	AttributeEnum.AW_WORLD_PUBLIC_SPEAKER_CAPABILITY: bool,
	AttributeEnum.AW_WORLD_PUBLIC_SPEAKER_RIGHT: str,
	AttributeEnum.AW_WORLD_RATING: int,
	AttributeEnum.AW_WORLD_REPEATING_GROUND: bool,
	AttributeEnum.AW_WORLD_RESTRICTED_RADIUS: int,
	AttributeEnum.AW_WORLD_SIZE: int,
	AttributeEnum.AW_WORLD_SKY_BOTTOM_BLUE: int,
	AttributeEnum.AW_WORLD_SKY_BOTTOM_GREEN: int,
	AttributeEnum.AW_WORLD_SKY_BOTTOM_RED: int,
	AttributeEnum.AW_WORLD_SKY_EAST_BLUE: int,
	AttributeEnum.AW_WORLD_SKY_EAST_GREEN: int,
	AttributeEnum.AW_WORLD_SKY_EAST_RED: int,
	AttributeEnum.AW_WORLD_SKY_NORTH_BLUE: int,
	AttributeEnum.AW_WORLD_SKY_NORTH_GREEN: int,
	AttributeEnum.AW_WORLD_SKY_NORTH_RED: int,
	AttributeEnum.AW_WORLD_SKY_SOUTH_BLUE: int,
	AttributeEnum.AW_WORLD_SKY_SOUTH_GREEN: int,
	AttributeEnum.AW_WORLD_SKY_SOUTH_RED: int,
	AttributeEnum.AW_WORLD_SKY_TOP_BLUE: int,
	AttributeEnum.AW_WORLD_SKY_TOP_GREEN: int,
	AttributeEnum.AW_WORLD_SKY_TOP_RED: int,
	AttributeEnum.AW_WORLD_SKY_WEST_BLUE: int,
	AttributeEnum.AW_WORLD_SKY_WEST_GREEN: int,
	AttributeEnum.AW_WORLD_SKY_WEST_RED: int,
	AttributeEnum.AW_WORLD_SKYBOX: str,
	AttributeEnum.AW_WORLD_SLOPESLIDE_ENABLED: bool,
	AttributeEnum.AW_WORLD_SLOPESLIDE_MAX_ANGLE: float,
	AttributeEnum.AW_WORLD_SLOPESLIDE_MIN_ANGLE: float,
	AttributeEnum.AW_WORLD_SOUND_AMBIENT: str,
	AttributeEnum.AW_WORLD_SOUND_FOOTSTEP: str,
	AttributeEnum.AW_WORLD_SOUND_WATER_ENTER: str,
	AttributeEnum.AW_WORLD_SOUND_WATER_EXIT: str,
	AttributeEnum.AW_WORLD_SPEAK_CAPABILITY: bool,
	AttributeEnum.AW_WORLD_SPEAK_RIGHT: str,
	AttributeEnum.AW_WORLD_SPECIAL_COMMANDS: str,
	AttributeEnum.AW_WORLD_SPECIAL_COMMANDS_RIGHT: str,
	AttributeEnum.AW_WORLD_SPECIAL_OBJECTS_RIGHT: str,
	AttributeEnum.AW_WORLD_TERRAIN_AMBIENT: float,
	AttributeEnum.AW_WORLD_TERRAIN_DIFFUSE: float,
	AttributeEnum.AW_WORLD_TERRAIN_OFFSET: float,
	AttributeEnum.AW_WORLD_TERRAIN_RIGHT: str,
	AttributeEnum.AW_WORLD_TERRAIN_TIMESTAMP: int,
	AttributeEnum.AW_WORLD_TITLE: str,
	AttributeEnum.AW_WORLD_V4_OBJECTS_RIGHT: str,
	AttributeEnum.AW_WORLD_WAIT_LIMIT: int,
	AttributeEnum.AW_WORLD_WATER_BLUE: int,
	AttributeEnum.AW_WORLD_WATER_BOTTOM_MASK: str,
	AttributeEnum.AW_WORLD_WATER_BOTTOM_TEXTURE: str,
	AttributeEnum.AW_WORLD_WATER_ENABLED: bool,
	AttributeEnum.AW_WORLD_WATER_FRICTION: float,
	AttributeEnum.AW_WORLD_WATER_GREEN: int,
	AttributeEnum.AW_WORLD_WATER_LEVEL: float,
	AttributeEnum.AW_WORLD_WATER_MASK: str,
	AttributeEnum.AW_WORLD_WATER_OPACITY: int,
	AttributeEnum.AW_WORLD_WATER_RED: int,
	AttributeEnum.AW_WORLD_WATER_SPEED: float,
	AttributeEnum.AW_WORLD_WATER_SURFACE_MOVE: float,
	AttributeEnum.AW_WORLD_WATER_TEXTURE: str,
	AttributeEnum.AW_WORLD_WATER_UNDER_TERRAIN: bool,
	AttributeEnum.AW_WORLD_WATER_WAVE_MOVE: float,
	AttributeEnum.AW_WORLD_WATER_VISIBILITY: int,
	AttributeEnum.AW_WORLD_WELCOME_MESSAGE: str,
	AttributeEnum.AW_WORLD_VOIP_CONFERENCE_GLOBAL: bool,
	AttributeEnum.AW_WORLD_VOIP_MODERATE_GLOBAL: bool,
	AttributeEnum.AW_WORLD_VOIP_RIGHT: str,
	AttributeEnum.AW_CONTACT_MORE: bool,
	AttributeEnum.AW_CONTACT_NAME: str,
	AttributeEnum.AW_CONTACT_NUMBER: int,
	AttributeEnum.AW_CONTACT_OPTIONS: int,
	AttributeEnum.AW_CONTACT_STATUS: int,
	AttributeEnum.AW_CONTACT_WORLD: str,
	AttributeEnum.AW_FILE_ADDRESS: int,
	AttributeEnum.AW_FILE_PORT: int,
	AttributeEnum.AW_FILE_RECIPIENT: int,
	AttributeEnum.AW_FILE_SENDER: int,
	AttributeEnum.AW_FILE_SENDER_NAME: str,
	AttributeEnum.AW_FILE_SESSION: int,
	AttributeEnum.AW_JOIN_CITIZEN: int,
	AttributeEnum.AW_JOIN_NAME: str,
	AttributeEnum.AW_JOIN_WORLD: str,
	AttributeEnum.AW_JOIN_X: int,
	AttributeEnum.AW_JOIN_Y: int,
	AttributeEnum.AW_JOIN_YAW: int,
	AttributeEnum.AW_JOIN_Z: int,
	AttributeEnum.AW_LOGIN_EMAIL: str,
	AttributeEnum.AW_LOGIN_PRIVILEGE_NUMBER: int,
	AttributeEnum.AW_REGISTER_ADDRESS: str,
	AttributeEnum.AW_REGISTER_BUSINESS_NAME: str,
	AttributeEnum.AW_REGISTER_CC_MONTH: str,
	AttributeEnum.AW_REGISTER_CC_NAME: str,
	AttributeEnum.AW_REGISTER_CC_NUMBER: str,
	AttributeEnum.AW_REGISTER_CC_YEAR: str,
	AttributeEnum.AW_REGISTER_CITY: str,
	AttributeEnum.AW_REGISTER_METHOD: int,
	AttributeEnum.AW_REGISTER_PHONE_NUMBER: str,
	AttributeEnum.AW_REGISTER_RESULT: str,
	AttributeEnum.AW_REGISTER_STATE: str,
	AttributeEnum.AW_REGISTER_VENDOR: str,
	AttributeEnum.AW_REGISTER_ZIP: str,
	AttributeEnum.AW_TELEGRAM_FROM: str,
	AttributeEnum.AW_TELEGRAM_MORE: bool,
	AttributeEnum.AW_TELEGRAM_SENT: int,
	AttributeEnum.AW_TELEGRAM_TEXT: str,
	AttributeEnum.AW_TELEGRAM_TO: int,
	AttributeEnum.AW_VOIP_DATA: bytes,
	AttributeEnum.AW_XFER_DISCONNECT_REASON: int,
	AttributeEnum.AW_XFER_TYPE: None,
	AttributeEnum.AW_XFER_FROM_SESSION: None,
	AttributeEnum.AW_XFER_FROM_NAME: None,
	AttributeEnum.AW_XFER_TO_SESSION: None,
	AttributeEnum.AW_XFER_TO_NAME: None,
	AttributeEnum.AW_XFER_TO_WORLD_NAME: None,
	AttributeEnum.AW_XFER_TO_ZONE_NAME: None,
	AttributeEnum.AW_XFER_TO_TAG_NAME: None,
	AttributeEnum.AW_XFER_DATA_ID: None,
	AttributeEnum.AW_XFER_DATA_FILE_NAME: None,
	AttributeEnum.AW_XFER_DATA_LEN_TOTAL: None,
	AttributeEnum.AW_XFER_DATA_LEN_OFFSET: None,
	AttributeEnum.AW_XFER_DATA: None,
	AttributeEnum.AW_XFER_DATA2: None,
	AttributeEnum.AW_XFER_DATA3: None,
	AttributeEnum.AW_XFER_DATA_MORE: None,
	AttributeEnum.AW_XFER_RC: None,
	AttributeEnum.AW_XFER_SHOW_NAME: None,
	AttributeEnum.AW_XFER_OPTIONS: None,
	AttributeEnum.AW_XFER_EXPIRATION: None,
	AttributeEnum.AW_LICENSE_XFER_SHOW_RIGHTS: None,
	AttributeEnum.AW_XFER_SHOW_CAPABILITY: None,
	AttributeEnum.AW_XFER_SHOW_SEQUENCE: None,
	AttributeEnum.AW_LASER_BEAM_SOURCE_TYPE: None,
	AttributeEnum.AW_LASER_BEAM_SOURCE_ID: None,
	AttributeEnum.AW_LASER_BEAM_SOURCE_X: None,
	AttributeEnum.AW_LASER_BEAM_SOURCE_Y: None,
	AttributeEnum.AW_LASER_BEAM_SOURCE_Z: None,
	AttributeEnum.AW_LASER_BEAM_TARGET_TYPE: None,
	AttributeEnum.AW_LASER_BEAM_TARGET_ID: None,
	AttributeEnum.AW_LASER_BEAM_TARGET_X: None,
	AttributeEnum.AW_LASER_BEAM_TARGET_Y: None,
	AttributeEnum.AW_LASER_BEAM_TARGET_Z: None,
	AttributeEnum.AW_LASER_BEAM_STYLE: None,
	AttributeEnum.AW_LASER_BEAM_COLOR: None,
	AttributeEnum.AW_LASER_BEAM_DEFINITION: None,
	AttributeEnum.AW_WORLD_VOIPCAST_HOST: None,
	AttributeEnum.AW_WORLD_VOIPCAST_PORT: None,
	AttributeEnum.AW_MY_ZONE: None,
	AttributeEnum.AW_AVATAR_ZONE: None,
	AttributeEnum.AW_UNIVERSE_PER_CITIZEN_CAV: None,
	AttributeEnum.AW_XFER_OWNER: None,
	AttributeEnum.AW_WORLD_ENABLE_WIREFRAME: None,
	AttributeEnum.AW_SHOPITEM_ID: None,
	AttributeEnum.AW_SHOPITEM_CREATION: None,
	AttributeEnum.AW_SHOPITEM_EXPIRATION: None,
	AttributeEnum.AW_SHOPITEM_PRICE: None,
	AttributeEnum.AW_SHOPITEM_TYPE: None,
	AttributeEnum.AW_SHOPITEM_CATEGORY: None,
	AttributeEnum.AW_SHOPITEM_DESCRIPTION: None,
	AttributeEnum.AW_SHOPITEM_OBJECT: None,
	AttributeEnum.AW_SHOPITEM_DEFINITION: None,
	AttributeEnum.AW_SHOPTRANS_ID: None,
	AttributeEnum.AW_SHOPTRANS_CITIZEN: None,
	AttributeEnum.AW_SHOPTRANS_ITEMID: None,
	AttributeEnum.AW_SHOPTRANS_AMOUNT: None,
	AttributeEnum.AW_SHOPTRANS_DATE: None,
	AttributeEnum.AW_SHOPTRANS_SELLER: None,
	AttributeEnum.AW_SHOPTRANS_COMMENT: None,
	AttributeEnum.AW_SHOPTRANS_TOTAL: None,
	AttributeEnum.AW_SHOPTRANS_ITERATOR: None,
	AttributeEnum.AW_SHOPTRANS_MORE: None,
	AttributeEnum.AW_SHOPITEM_CHANGED: None,
	AttributeEnum.AW_LICENSE_SHOP: None,
	AttributeEnum.AW_CITIZEN_PWD_EXP: None,
	AttributeEnum.AW_UNIVERSE_EXPIRATION_DATE: None,
	AttributeEnum.AW_UNIVERSE_IMMIGRATION: None,
	AttributeEnum.AW_CITIZEN_SEC_PASSWORD: None,
	AttributeEnum.AW_CHAT_CHANNEL: str,
	AttributeEnum.AW_CHAT_CITIZEN: int,
	AttributeEnum.AW_WORLD_CHAT_CHANNEL1_NAME: str,
	AttributeEnum.AW_WORLD_CHAT_CHANNEL2_NAME: str,
	AttributeEnum.AW_WORLD_CHAT_CHANNEL3_NAME: str,
	AttributeEnum.AW_WORLD_CHAT_CHANNEL4_NAME: str,
	AttributeEnum.AW_WORLD_CHAT_CHANNEL5_NAME: str,
	AttributeEnum.AW_WORLD_CHAT_CHANNEL1_COLOR: int,
	AttributeEnum.AW_WORLD_CHAT_CHANNEL2_COLOR: int,
	AttributeEnum.AW_WORLD_CHAT_CHANNEL3_COLOR: int,
	AttributeEnum.AW_WORLD_CHAT_CHANNEL4_COLOR: int,
	AttributeEnum.AW_WORLD_CHAT_CHANNEL5_COLOR: int,
	AttributeEnum.AW_WORLDLIST_BOTS: None,
	AttributeEnum.AW_LICENSE_OWNER: None,
	AttributeEnum.AW_WORLD_OWNER_CAPABILITY: bool,
	AttributeEnum.AW_WORLD_RIGHTS_OFFERED: bool,
	AttributeEnum.AW_WORLD_RIGHTS_ENTER_COSTS: int,
	AttributeEnum.AW_WORLD_RIGHTS_BUILD_COSTS: int,
	AttributeEnum.AW_WORLD_RIGHTS_V4_OBJS_COSTS: int,
	AttributeEnum.AW_WORLD_RIGHTS_SPECIAL_OBJS_COSTS: int,
	AttributeEnum.AW_WORLD_RIGHTS_SPECIAL_CMDS_COSTS: int,
	AttributeEnum.AW_PURCHASE_KIND: None,
	AttributeEnum.AW_PURCHASE_TYPE: None,
	AttributeEnum.AW_PURCHASE_COSTS: None,
	AttributeEnum.AW_CITRIGHT_TYPES: None,
	AttributeEnum.AW_DLG_ORIGINATOR_SESSION: None,
	AttributeEnum.AW_DLG_RECIPIENT_SESSION: None,
	AttributeEnum.AW_DLG_REFERENCE: None,
	AttributeEnum.AW_DLG_OPTION: None,
	AttributeEnum.AW_DLG_TITLE: None,
	AttributeEnum.AW_DLG_TEXT: None,
	AttributeEnum.AW_DLG_ANSWER_ORIGINATOR_SESSION: None,
	AttributeEnum.AW_DLG_ANSWER_RECIPIENT_SESSION: None,
	AttributeEnum.AW_DLG_ANSWER_REFERENCE: None,
	AttributeEnum.AW_DLG_ANSWER_OPTION: None,
	AttributeEnum.AW_DLG_ANSWER_TEXT: None,
	AttributeEnum.AW_WORLD_WATER_USE_SHADERS: bool,
	AttributeEnum.AW_WORLD_WATER_SURFACE_COLOR: int,
	AttributeEnum.AW_WORLD_WATER_TINT_COLOR: int,
	AttributeEnum.AW_WORLD_WATER_WAVELET_SPEED: int,
	AttributeEnum.AW_WORLD_WATER_WAVELET_DIRECTION_X: int,
	AttributeEnum.AW_WORLD_WATER_WAVELET_DIRECTION_Z: int,
	AttributeEnum.AW_WORLD_WATER_WAVELET_HEIGHT: int,
	AttributeEnum.AW_WORLD_WATER_WAVE1_SPEED: int,
	AttributeEnum.AW_WORLD_WATER_WAVE1_DIRECTION_X: int,
	AttributeEnum.AW_WORLD_WATER_WAVE1_DIRECTION_Z: int,
	AttributeEnum.AW_WORLD_WATER_WAVE1_HEIGHT: int,
	AttributeEnum.AW_WORLD_WATER_WAVE2_SPEED: int,
	AttributeEnum.AW_WORLD_WATER_WAVE2_DIRECTION_X: int,
	AttributeEnum.AW_WORLD_WATER_WAVE2_DIRECTION_Z: int,
	AttributeEnum.AW_WORLD_WATER_WAVE2_HEIGHT: int,
	AttributeEnum.AW_WORLD_WATER_WAVE3_SPEED: int,
	AttributeEnum.AW_WORLD_WATER_WAVE3_DIRECTION_X: int,
	AttributeEnum.AW_WORLD_WATER_WAVE3_DIRECTION_Z: int,
	AttributeEnum.AW_WORLD_WATER_WAVE3_HEIGHT: int,
	AttributeEnum.AW_WORLD_WATER_WAVE4_SPEED: int,
	AttributeEnum.AW_WORLD_WATER_WAVE4_DIRECTION_X: int,
	AttributeEnum.AW_WORLD_WATER_WAVE4_DIRECTION_Z: int,
	AttributeEnum.AW_WORLD_WATER_WAVE4_HEIGHT: int,
	AttributeEnum.AW_WORLD_AUTO_CUBEMAP: bool,
	AttributeEnum.AW_WORLD_AUTO_CUBEMAP_QUALITY: int,
	AttributeEnum.AW_WORLD_AUTO_CUBEMAP_INTERVAL: int,
	AttributeEnum.AW_WORLD_WATER_REFLECTION_HIGHLIGHT: int,
	AttributeEnum.AW_WORLD_WATER_SHALLOW_DEPTH: int,
	AttributeEnum.AW_WORLD_WATER_SHALLOW_INTENSITY: int,
	AttributeEnum.AW_WORLD_WATER_SHALLOW_DISTORTION: int,
	AttributeEnum.AW_WORLD_WATER_SHALLOW_SCALE: int,
	AttributeEnum.AW_WORLD_WATER_GRID_SCALE: int,
	AttributeEnum.AW_UNIVERSE_BUY_CREDITS_URL: None,
	AttributeEnum.AW_CITIZEN_ONLINE_STATE: None,
	AttributeEnum.AW_CITIZEN_TITLE_NUMBER: None,
	AttributeEnum.AW_CITIZEN_TITLE_STARS: None,
	AttributeEnum.AW_UNIVERSE_IMMIGRATE_URL: None,
	AttributeEnum.AW_CITIZEN_SESSION: int,
	AttributeEnum.AW_CHAT_TARGET_TYPES: None,
	AttributeEnum.AW_CHAT_TARGET_SESSION: None,
	AttributeEnum.AW_CITIZEN_HASH: None,
	AttributeEnum.AW_XFER_DATA4: None,
	AttributeEnum.AW_XFER_DATA5: None,
	AttributeEnum.AW_LICENSE_LAST_PORT: None,
	AttributeEnum.AW_LICENSE_LAST_STOP: None,
	AttributeEnum.AW_CONTACT_LAST_SEEN: None,
	AttributeEnum.AW_WORLD_DISABLE_BALLOONS: bool,
	AttributeEnum.AW_WORLD_MAXIMUM_VISIBILITY: int,
	AttributeEnum.AW_TELEGRAM_JOURNAL_START: None,
	AttributeEnum.AW_TELEGRAM_JOURNAL_END: None,
	AttributeEnum.AW_TELEGRAM_STATUS: None,
	AttributeEnum.AW_MAX_ATTRIBUTE: None,
}
