import "steammessages.proto";
import "gcsdk_gcmessages.proto";

option optimize_for = SPEED;
option cc_generic_services = false;

enum EDOTAGCMsg {
	k_EMsgGCDOTABase = 7000;
	k_EMsgGCGeneralResponse = 7001;
	k_EMsgGCGameMatchSignOut = 7004;
	k_EMsgGCGameMatchSignOutResponse = 7005;
	k_EMsgGCJoinChatChannel = 7009;
	k_EMsgGCJoinChatChannelResponse = 7010;
	k_EMsgGCOtherJoinedChannel = 7013;
	k_EMsgGCOtherLeftChannel = 7014;
	k_EMsgGCMatchHistoryList = 7017;
	k_EMsgServerToGCRequestStatus = 7026;
	k_EMsgGCGetRecentMatches = 7027;
	k_EMsgGCRecentMatchesResponse = 7028;
	k_EMsgGCFindSourceTVGames = 7031;
	k_EMsgGCSourceTVGamesResponse = 7032;
	k_EMsgGCStartFindingMatch = 7033;
	k_EMsgGCConnectedPlayers = 7034;
	k_EMsgGCAbandonCurrentGame = 7035;
	k_EMsgGCStopFindingMatch = 7036;
	k_EMsgGCPracticeLobbyCreate = 7038;
	k_EMsgGCPracticeLobbyLeave = 7040;
	k_EMsgGCPracticeLobbyLaunch = 7041;
	k_EMsgGCPracticeLobbyList = 7042;
	k_EMsgGCPracticeLobbyListResponse = 7043;
	k_EMsgGCPracticeLobbyJoin = 7044;
	k_EMsgGCPracticeLobbySetDetails = 7046;
	k_EMsgGCPracticeLobbySetTeamSlot = 7047;
	k_EMsgGCInitialQuestionnaireResponse = 7049;
	k_EMsgGCTournamentRequest = 7051;
	k_EMsgGCTournamentResponse = 7052;
	k_EMsgGCPracticeLobbyResponse = 7055;
	k_EMsgGCBroadcastNotification = 7056;
	k_EMsgGCLiveScoreboardUpdate = 7057;
	k_EMsgGCRequestChatChannelList = 7060;
	k_EMsgGCRequestChatChannelListResponse = 7061;
	k_EMsgGCRequestMatches = 7064;
	k_EMsgGCRequestMatchesResponse = 7065;
	k_EMsgGCRequestPlayerResources = 7068;
	k_EMsgGCRequestPlayerResourcesResponse = 7069;
	k_EMsgGCReadyUp = 7070;
	k_EMsgGCKickedFromMatchmakingQueue = 7071;
	k_EMsgGCLeaverDetected = 7072;
	k_EMsgGCSpectateFriendGame = 7073;
	k_EMsgGCSpectateFriendGameResponse = 7074;
	k_EMsgGCPlayerReports = 7075;
	k_EMsgGCReportsRemainingRequest = 7076;
	k_EMsgGCReportsRemainingResponse = 7077;
	k_EMsgGCSubmitPlayerReport = 7078;
	k_EMsgGCSubmitPlayerReportResponse = 7079;
	k_EMsgGCGameChatLog = 7080;
	k_EMsgGCPracticeLobbyKick = 7081;
	k_EMsgGCReportCountsRequest = 7082;
	k_EMsgGCReportCountsResponse = 7083;
	k_EMsgGCRequestSaveGames = 7084;
	k_EMsgGCRequestSaveGamesServer = 7085;
	k_EMsgGCRequestSaveGamesResponse = 7086;
	k_EMsgGCLeaverDetectedResponse = 7087;
	k_EMsgGCPlayerFailedToConnect = 7088;
	k_EMsgGCGCToRelayConnect = 7089;
	k_EMsgGCGCToRelayConnectresponse = 7090;
	k_EMsgGCWatchGame = 7091;
	k_EMsgGCWatchGameResponse = 7092;
	k_EMsgGCBanStatusRequest = 7093;
	k_EMsgGCBanStatusResponse = 7094;
	k_EMsgGCMatchDetailsRequest = 7095;
	k_EMsgGCMatchDetailsResponse = 7096;
	k_EMsgGCCancelWatchGame = 7097;
	k_EMsgGCProfileRequest = 7098;
	k_EMsgGCProfileResponse = 7099;
	k_EMsgGCPopup = 7102;
	k_EMsgGCDOTAClearNotifySuccessfulReport = 7104;
	k_EMsgGCGenericResult = 7108;
	k_EMsgGCFriendPracticeLobbyListRequest = 7111;
	k_EMsgGCFriendPracticeLobbyListResponse = 7112;
	k_EMsgGCPracticeLobbyJoinResponse = 7113;
	k_EMsgClientEconNotification_Job = 7114;
	k_EMsgGCCreateTeam = 7115;
	k_EMsgGCCreateTeamResponse = 7116;
	k_EMsgGCDisbandTeam = 7117;
	k_EMsgGCDisbandTeamResponse = 7118;
	k_EMsgGCRequestTeamData = 7119;
	k_EMsgGCRequestTeamDataResponse = 7120;
	k_EMsgGCTeamData = 7121;
	k_EMsgGCTeamInvite_InviterToGC = 7122;
	k_EMsgGCTeamInvite_GCImmediateResponseToInviter = 7123;
	k_EMsgGCTeamInvite_GCRequestToInvitee = 7124;
	k_EMsgGCTeamInvite_InviteeResponseToGC = 7125;
	k_EMsgGCTeamInvite_GCResponseToInviter = 7126;
	k_EMsgGCTeamInvite_GCResponseToInvitee = 7127;
	k_EMsgGCKickTeamMember = 7128;
	k_EMsgGCKickTeamMemberResponse = 7129;
	k_EMsgGCLeaveTeam = 7130;
	k_EMsgGCLeaveTeamResponse = 7131;
	k_EMsgGCSuggestTeamMatchmaking = 7132;
	k_EMsgGCPlayerHeroesFavoritesAdd = 7133;
	k_EMsgGCPlayerHeroesFavoritesRemove = 7134;
	k_EMsgGCEditTeamLogo = 7139;
	k_EMsgGCEditTeamLogoResponse = 7140;
	k_EMsgGCSetShowcaseHero = 7141;
	k_EMsgGCApplyTeamToPracticeLobby = 7142;
	k_EMsgGCRequestInternatinalTicketEmail = 7143;
	k_EMsgGCTransferTeamAdmin = 7144;
	k_EMsgGCClearTournamentGame = 7145;
	k_EMsgRequestLeagueInfo = 7147;
	k_EMsgResponseLeagueInfo = 7148;
	k_EMsgGCPracticeLobbyJoinBroadcastChannel = 7149;
	k_EMsgGC_TournamentItemEvent = 7150;
	k_EMsgGC_TournamentItemEventResponse = 7151;
	k_EMsgCastMatchVote = 7152;
	k_EMsgCastMatchVoteResponse = 7153;
	k_EMsgRetrieveMatchVote = 7154;
	k_EMsgRetrieveMatchVoteResponse = 7155;
	k_EMsgTeamFanfare = 7156;
	k_EMsgResponseTeamFanfare = 7157;
	k_EMsgGC_GameServerUploadSaveGame = 7158;
	k_EMsgGC_GameServerSaveGameResult = 7159;
	k_EMsgGC_GameServerGetLoadGame = 7160;
	k_EMsgGC_GameServerGetLoadGameResult = 7161;
	k_EMsgGCTeamProfileRequest = 7164;
	k_EMsgGCTeamProfileResponse = 7165;
	k_EMsgGCEditTeamDetails = 7166;
	k_EMsgGCEditTeamDetailsResponse = 7167;
	k_EMsgGCProTeamListRequest = 7168;
	k_EMsgGCProTeamListResponse = 7169;
	k_EMsgGCReadyUpStatus = 7170;
	k_EMsgGCHallOfFame = 7171;
	k_EMsgGCHallOfFameRequest = 7172;
	k_EMsgGCHallOfFameResponse = 7173;
	k_EMsgGCGenerateDiretidePrizeList = 7174;
	k_EMsgGCRewardDiretidePrizes = 7176;
	k_EMsgGCDiretidePrizesRewardedResponse = 7177;
	k_EMsgGCHalloweenHighScoreRequest = 7178;
	k_EMsgGCHalloweenHighScoreResponse = 7179;
	k_EMsgGCGenerateDiretidePrizeListResponse = 7180;
	k_EMsgGCStorePromoPagesRequest = 7182;
	k_EMsgGCStorePromoPagesResponse = 7183;
	k_EMsgGCSpawnLootGreevil = 7184;
	k_EMsgGCDismissLootGreevil = 7185;
	k_EMsgGCToGCMatchCompleted = 7186;
	k_EMsgGCDismissLootGreevilResponse = 7187;
	k_EMsgGCBalancedShuffleLobby = 7188;
	k_EMsgGCToGCCheckLeaguePermission = 7189;
	k_EMsgGCToGCCheckLeaguePermissionResponse = 7190;
	k_EMsgGCLeagueScheduleRequest = 7191;
	k_EMsgGCLeagueScheduleResponse = 7192;
	k_EMsgGCLeagueScheduleEdit = 7193;
	k_EMsgGCLeagueScheduleEditResponse = 7194;
	k_EMsgGCLeaguesInMonthRequest = 7195;
	k_EMsgGCLeaguesInMonthResponse = 7196;
	k_EMsgGCMatchmakingStatsRequest = 7197;
	k_EMsgGCMatchmakingStatsResponse = 7198;
	k_EMsgGCBotGameCreate = 7199;
	k_EMsgGCSetMatchHistoryAccess = 7200;
	k_EMsgGCSetMatchHistoryAccessResponse = 7201;
	k_EMsgUpgradeLeagueItem = 7203;
	k_EMsgUpgradeLeagueItemResponse = 7204;
	k_EMsgGCTeamMemberProfileRequest = 7205;
	k_EMsgGCWatchDownloadedReplay = 7206;
	k_EMsgGCSetMapLocationState = 7207;
	k_EMsgGCSetMapLocationStateResponse = 7208;
	k_EMsgGCResetMapLocations = 7209;
	k_EMsgGCResetMapLocationsResponse = 7210;
	k_EMsgGCTeamOnProfile = 7211;
	k_EMsgGCSetFeaturedItems = 7212;
	k_EMsgGCFeaturedItems = 7215;
	k_EMsgRefreshPartnerAccountLink = 7216;
	k_EMsgClientsRejoinChatChannels = 7217;
	k_EMsgGCToGCGetUserChatInfo = 7218;
	k_EMsgGCToGCGetUserChatInfoResponse = 7219;
	k_EMsgGCToGCLeaveAllChatChannels = 7220;
	k_EMsgGCToGCUpdateAccountChatBan = 7221;
	k_EMsgGCGuildCreateRequest = 7222;
	k_EMsgGCGuildCreateResponse = 7223;
	k_EMsgGCGuildSetAccountRoleRequest = 7224;
	k_EMsgGCGuildSetAccountRoleResponse = 7225;
	k_EMsgGCRequestGuildData = 7226;
	k_EMsgGCGuildData = 7227;
	k_EMsgGCGuildInviteAccountRequest = 7228;
	k_EMsgGCGuildInviteAccountResponse = 7229;
	k_EMsgGCGuildCancelInviteRequest = 7230;
	k_EMsgGCGuildCancelInviteResponse = 7231;
	k_EMsgGCGuildUpdateDetailsRequest = 7232;
	k_EMsgGCGuildUpdateDetailsResponse = 7233;
	k_EMsgGCToGCCanInviteUser = 7234;
	k_EMsgGCToGCCanInviteUserResponse = 7235;
	k_EMsgGCToGCGetUserRank = 7236;
	k_EMsgGCToGCGetUserRankResponse = 7237;
	k_EMsgGCToGCUpdateTeamStats = 7240;
	k_EMsgGCToGCGetTeamRank = 7241;
	k_EMsgGCToGCGetTeamRankResponse = 7242;
	k_EMsgGCTeamIDByNameRequest = 7245;
	k_EMsgGCTeamIDByNameResponse = 7246;
	k_EMsgGCEditTeam = 7247;
	k_EMsgGCPassportDataRequest = 7248;
	k_EMsgGCPassportDataResponse = 7249;
	k_EMsgGCNotInGuildData = 7251;
	k_EMsgGCGuildInviteData = 7254;
	k_EMsgGCToGCGetLeagueAdmin = 7255;
	k_EMsgGCToGCGetLeagueAdminResponse = 7256;
	k_EMsgGCRequestLeaguePrizePool = 7258;
	k_EMsgGCRequestLeaguePrizePoolResponse = 7259;
	k_EMsgGCToGCUpdateOpenGuildPartyRequest = 7261;
	k_EMsgGCToGCUpdateOpenGuildPartyResponse = 7262;
	k_EMsgGCToGCDestroyOpenGuildPartyRequest = 7263;
	k_EMsgGCToGCDestroyOpenGuildPartyResponse = 7264;
	k_EMsgGCGuildUpdateMessage = 7265;
	k_EMsgGCPartySetOpenGuildRequest = 7266;
	k_EMsgGCPartySetOpenGuildResponse = 7267;
	k_EMsgGCGuildOpenPartyRefresh = 7268;
	k_EMsgGCJoinOpenGuildPartyRequest = 7269;
	k_EMsgGCJoinOpenGuildPartyResponse = 7270;
	k_EMsgGCLeaveChatChannel = 7272;
	k_EMsgGCChatMessage = 7273;
	k_EMsgGCGetHeroStandings = 7274;
	k_EMsgGCGetHeroStandingsResponse = 7275;
	k_EMsgGCGuildEditLogoRequest = 7279;
	k_EMsgGCGuildEditLogoResponse = 7280;
	k_EMsgGCGuildmatePracticeLobbyListRequest = 7281;
	k_EMsgGCGuildmatePracticeLobbyListResponse = 7282;
	k_EMsgGCItemEditorReservationsRequest = 7283;
	k_EMsgGCItemEditorReservationsResponse = 7284;
	k_EMsgGCItemEditorReserveItemDef = 7285;
	k_EMsgGCItemEditorReserveItemDefResponse = 7286;
	k_EMsgGCItemEditorReleaseReservation = 7287;
	k_EMsgGCItemEditorReleaseReservationResponse = 7288;
	k_EMsgGCRewardTutorialPrizes = 7289;
	k_EMsgGCLastHitChallengeHighScorePost = 7290;
	k_EMsgGCLastHitChallengeHighScoreRequest = 7291;
	k_EMsgGCLastHitChallengeHighScoreResponse = 7292;
	k_EMsgGCCreateFantasyLeagueRequest = 7293;
	k_EMsgGCCreateFantasyLeagueResponse = 7294;
	k_EMsgGCFantasyLeagueInfoRequest = 7297;
	k_EMsgGCFantasyLeagueInfoResponse = 7298;
	k_EMsgGCFantasyLeagueInfo = 7299;
	k_EMsgGCCreateFantasyTeamRequest = 7300;
	k_EMsgGCCreateFantasyTeamResponse = 7301;
	k_EMsgGCEditFantasyTeamRequest = 7302;
	k_EMsgGCEditFantasyTeamResponse = 7303;
	k_EMsgGCFantasyTeamInfoRequestByFantasyLeagueID = 7304;
	k_EMsgGCFantasyTeamInfoRequestByOwnerAccountID = 7305;
	k_EMsgGCFantasyTeamInfoResponse = 7306;
	k_EMsgGCFantasyTeamInfo = 7307;
	k_EMsgGCFantasyLivePlayerStats = 7308;
	k_EMsgGCFantasyFinalPlayerStats = 7309;
	k_EMsgGCFantasyMatch = 7310;
	k_EMsgGCToGCReloadVersions = 7311;
	k_EMsgGCFantasyTeamScoreRequest = 7312;
	k_EMsgGCFantasyTeamScoreResponse = 7313;
	k_EMsgGCFantasyTeamStandingsRequest = 7314;
	k_EMsgGCFantasyTeamStandingsResponse = 7315;
	k_EMsgGCFantasyPlayerScoreRequest = 7316;
	k_EMsgGCFantasyPlayerScoreResponse = 7317;
	k_EMsgGCFantasyPlayerStandingsRequest = 7318;
	k_EMsgGCFantasyPlayerStandingsResponse = 7319;
	k_EMsgGCFlipLobbyTeams = 7320;
	k_EMsgGCCustomGameCreate = 7321;
	k_EMsgGCFantasyPlayerInfoRequest = 7322;
	k_EMsgGCFantasyPlayerInfoResponse = 7323;
	k_EMsgGCToGCProcessPlayerReportForTarget = 7324;
	k_EMsgGCToGCProcessReportSuccess = 7325;
	k_EMsgGCNotifyAccountFlagsChange = 7326;
	k_EMsgGCSetProfilePrivacy = 7327;
	k_EMsgGCSetProfilePrivacyResponse = 7328;
	k_EMsgGCSteamProfileRequest = 7329;
	k_EMsgGCSteamProfileRequestResponse = 7330;
	k_EMsgGCFantasyLeagueCreateInfoRequest = 7331;
	k_EMsgGCFantasyLeagueCreateInfoResponse = 7332;
	k_EMsgGCFantasyLeagueInviteInfoRequest = 7333;
	k_EMsgGCFantasyLeagueInviteInfoResponse = 7334;
	k_EMsgGCClientIgnoredUser = 7335;
	k_EMsgGCFantasyLeagueCreateRequest = 7336;
	k_EMsgGCFantasyLeagueCreateResponse = 7337;
	k_EMsgGCFantasyTeamCreateRequest = 7338;
	k_EMsgGCFantasyTeamCreateResponse = 7339;
	k_EMsgGCFantasyLeagueFriendJoinListRequest = 7340;
	k_EMsgGCFantasyLeagueFriendJoinListResponse = 7341;
	k_EMsgGCClientSuspended = 7342;
	k_EMsgGCPartyMemberSetCoach = 7343;
	k_EMsgGCFantasyLeagueEditInvitesRequest = 7344;
	k_EMsgGCFantasyLeagueEditInvitesResponse = 7345;
	k_EMsgGCPracticeLobbySetCoach = 7346;
	k_EMsgGCFantasyLeagueEditInfoRequest = 7347;
	k_EMsgGCFantasyLeagueEditInfoResponse = 7348;
	k_EMsgGCFantasyLeagueDraftStatusRequest = 7349;
	k_EMsgGCFantasyLeagueDraftStatus = 7350;
	k_EMsgGCFantasyLeagueDraftPlayerRequest = 7351;
	k_EMsgGCFantasyLeagueDraftPlayerResponse = 7352;
	k_EMsgGCFantasyLeagueMatchupsRequest = 7353;
	k_EMsgGCFantasyLeagueMatchupsResponse = 7354;
	k_EMsgGCFantasyTeamRosterSwapRequest = 7355;
	k_EMsgGCFantasyTeamRosterSwapResponse = 7356;
	k_EMsgGCFantasyTeamRosterRequest = 7357;
	k_EMsgGCFantasyTeamRosterResponse = 7358;
	k_EMsgGCNexonPartnerUpdate = 7359;
	k_EMsgGCToGCProcessPCBangRewardPoints = 7360;
	k_EMsgGCFantasyTeamRosterAddDropRequest = 7361;
	k_EMsgGCFantasyTeamRosterAddDropResponse = 7362;
	k_EMsgPresentedClientTerminateDlg = 7363;
	k_EMsgGCFantasyPlayerHisoricalStatsRequest = 7364;
	k_EMsgGCFantasyPlayerHisoricalStatsResponse = 7365;
	k_EMsgGCPCBangTimedRewardMessage = 7366;
	k_EMsgGCLobbyUpdateBroadcastChannelInfo = 7367;
	k_EMsgGCFantasyTeamTradesRequest = 7368;
	k_EMsgGCFantasyTeamTradesResponse = 7369;
	k_EMsgGCFantasyTeamTradeCancelRequest = 7370;
	k_EMsgGCFantasyTeamTradeCancelResponse = 7371;
	k_EMsgGCToGCGrantTournamentItem = 7372;
	k_EMsgGCProcessFantasyScheduledEvent = 7373;
	k_EMsgGCToGCGrantPCBangRewardItem = 7374;
	k_EMsgGCToGCUpgradeTwitchViewerItems = 7375;
	k_EMsgGCToGCGetLiveMatchAffiliates = 7376;
	k_EMsgGCToGCGetLiveMatchAffiliatesResponse = 7377;
	k_EMsgGCToGCUpdatePlayerPennantCounts = 7378;
	k_EMsgGCToGCGetPlayerPennantCounts = 7379;
	k_EMsgGCToGCGetPlayerPennantCountsResponse = 7380;
	k_EMsgGCGameMatchSignOutPermissionRequest = 7381;
	k_EMsgGCGameMatchSignOutPermissionResponse = 7382;
	k_EMsgDOTAChatChannelMemberUpdate = 7383;
	k_EMsgDOTAAwardEventPoints = 7384;
	k_EMsgDOTARedeemEventPrize = 7385;
	k_EMsgDOTARedeemEventPrizeResponse = 7386;
	k_EMsgDOTAGetEventPoints = 7387;
	k_EMsgDOTAGetEventPointsResponse = 7388;
	k_EMsgGCToGCSignoutAwardEventPoints = 7390;
	k_EMsgDOTASendFriendRecruits = 7393;
	k_EMsgDOTAFriendRecruitsRequest = 7394;
	k_EMsgDOTAFriendRecruitsResponse = 7395;
	k_EMsgDOTAFriendRecruitInviteAcceptDecline = 7396;
	k_EMsgGCPartyLeaderWatchGamePrompt = 7397;
	k_EMsgDOTAFrostivusTimeElapsed = 7398;
	k_EMsgGCToGCGrantEarnedLicense = 7399;
	k_EMsgDOTALiveLeagueGameUpdate = 7402;
	k_EMsgDOTAChatGetUserList = 7403;
	k_EMsgDOTAChatGetUserListResponse = 7404;
	k_EMsgGCCompendiumSetSelection = 7405;
	k_EMsgGCCompendiumDataRequest = 7406;
	k_EMsgGCCompendiumDataResponse = 7407;
	k_EMsgDOTAGetPlayerMatchHistory = 7408;
	k_EMsgDOTAGetPlayerMatchHistoryResponse = 7409;
	k_EMsgGCToGCMatchmakingAddParty = 7410;
	k_EMsgGCToGCMatchmakingRemoveParty = 7411;
	k_EMsgGCToGCMatchmakingRemoveAllParties = 7412;
	k_EMsgGCToGCMatchmakingMatchFound = 7413;
	k_EMsgGCToGCUpdateMatchManagementStats = 7414;
	k_EMsgGCToGCUpdateMatchmakingStats = 7415;
	k_EMsgGCToServerPingRequest = 7416;
	k_EMsgGCToServerPingResponse = 7417;
	k_EMsgGCToServerConsoleCommand = 7418;
	k_EMsgGCToGCUpdateLiveLeagueGameInfo = 7420;
	k_EMsgGCMakeOffering = 7423;
	k_EMsgGCRequestOfferings = 7424;
	k_EMsgGCRequestOfferingsResponse = 7425;
	k_EMsgGCToGCProcessMatchLeaver = 7426;
	k_EMsgGCNotificationsRequest = 7427;
	k_EMsgGCNotificationsResponse = 7428;
	k_EMsgGCToGCModifyNotification = 7429;
	k_EMsgGCToGCSetNewNotifications = 7430;
	k_EMsgGCToGCSetIsLeagueAdmin = 7431;
	k_EMsgGCLeagueAdminState = 7432;
	k_EMsgGCToGCSendLeagueAdminState = 7433;
	k_EMsgGCLeagueAdminList = 7434;
	k_EMsgGCNotificationsMarkReadRequest = 7435;
	k_EMsgGCFantasyMessageAdd = 7436;
	k_EMsgGCFantasyMessagesRequest = 7437;
	k_EMsgGCFantasyMessagesResponse = 7438;
	k_EMsgGCFantasyScheduledMatchesRequest = 7439;
	k_EMsgGCFantasyScheduledMatchesResponse = 7440;
	k_EMsgGCToGCGrantLeagueAccess = 7441;
	k_EMsgGCEventGameCreate = 7443;
	k_EMsgGCPerfectWorldUserLookupRequest = 7444;
	k_EMsgGCPerfectWorldUserLookupResponse = 7445;
	k_EMsgGCToGCIncrementRecruitmentSDO = 7446;
	k_EMsgGCToGCIncrementRecruitmentLevel = 7447;
	k_EMsgGCFantasyRemoveOwner = 7448;
	k_EMsgGCFantasyRemoveOwnerResponse = 7449;
	k_EMsgGCRequestBatchPlayerResources = 7450;
	k_EMsgGCRequestBatchPlayerResourcesResponse = 7451;
	k_EMsgGCToGCSendUpdateLeagues = 7452;
	k_EMsgGCCompendiumSetSelectionResponse = 7453;
	k_EMsgGCPlayerInfoRequest = 7454;
	k_EMsgGCPlayerInfo = 7455;
	k_EMsgGCPlayerInfoSubmit = 7456;
	k_EMsgGCPlayerInfoSubmitResponse = 7457;
	k_EMsgGCToGCGetAccountLevel = 7458;
	k_EMsgGCToGCGetAccountLevelResponse = 7459;
	k_EMsgGCToGCGetAccountPartner = 7460;
	k_EMsgGCToGCGetAccountPartnerResponse = 7461;
	k_EMsgGCToGCGetAccountProfile = 7462;
	k_EMsgGCToGCGetAccountProfileResponse = 7463;
	k_EMsgDOTAGetWeekendTourneySchedule = 7464;
	k_EMsgDOTAWeekendTourneySchedule = 7465;
	k_EMsgGCJoinableCustomGameModesRequest = 7466;
	k_EMsgGCJoinableCustomGameModesResponse = 7467;
	k_EMsgGCJoinableCustomLobbiesRequest = 7468;
	k_EMsgGCJoinableCustomLobbiesResponse = 7469;
	k_EMsgGCQuickJoinCustomLobby = 7470;
	k_EMsgGCQuickJoinCustomLobbyResponse = 7471;
	k_EMsgGCToGCGrantEventPointAction = 7472;
	k_EMsgServerGetEventPoints = 7473;
	k_EMsgServerGetEventPointsResponse = 7474;
	k_EMsgServerGrantSurveyPermission = 7475;
	k_EMsgServerGrantSurveyPermissionResponse = 7476;
	k_EMsgClientProvideSurveyResult = 7477;
	k_EMsgGCToGCSetCompendiumSelection = 7478;
	k_EMsgGCToGCUpdateTI4HeroQuest = 7480;
	k_EMsgGCCompendiumDataChanged = 7481;
	k_EMsgDOTAFantasyLeagueFindRequest = 7482;
	k_EMsgDOTAFantasyLeagueFindResponse = 7483;
	k_EMsgGCHasItemQuery = 7484;
	k_EMsgGCHasItemResponse = 7485;
	k_EMsgGCConsumeFantasyTicket = 7486;
	k_EMsgGCConsumeFantasyTicketFailure = 7487;
	k_EMsgGCToGCGrantEventPointActionMsg = 7488;
	k_EMsgClientToGCTrackDialogResult = 7489;
	k_EMsgGCFantasyLeaveLeagueRequest = 7490;
	k_EMsgGCFantasyLeaveLeagueResponse = 7491;
	k_EMsgGCToGCGetCompendiumSelections = 7492;
	k_EMsgGCToGCGetCompendiumSelectionsResponse = 7493;
	k_EMsgServerToGCMatchConnectionStats = 7494;
	k_EMsgGCToClientTournamentItemDrop = 7495;
	k_EMsgSQLDelayedGrantLeagueDrop = 7496;
	k_EMsgServerGCUpdateSpectatorCount = 7497;
	k_EMsgDOTAStartDailyHeroChallengeRequest = 7498;
	k_EMsgGCFantasyPlayerScoreDetailsRequest = 7499;
	k_EMsgGCFantasyPlayerScoreDetailsResponse = 7500;
	k_EMsgGCToGCEmoticonUnlock = 7501;
	k_EMsgSignOutDraftInfo = 7502;
	k_EMsgClientToGCEmoticonDataRequest = 7503;
	k_EMsgGCToClientEmoticonData = 7504;
	k_EMsgGCPracticeLobbyToggleBroadcastChannelCameramanStatus = 7505;
	k_EMsgGCToGCCreateWeekendTourneyRequest = 7506;
	k_EMsgGCToGCCreateWeekendTourneyResponse = 7507;
	k_EMsgGCHeroPickStatsRequest = 7508;
	k_EMsgGCHeroPickStatsResponse = 7509;
	k_EMsgGCToGCCreateGenericTeamsRequest = 7510;
	k_EMsgGCToGCCreateGenericTeamsResponse = 7511;
	k_EMsgSQLLaunchOneWeekendTourney = 7512;
	k_EMsgClientToGCSetAdditionalEquips = 7513;
	k_EMsgClientToGCGetAdditionalEquips = 7514;
	k_EMsgClientToGCGetAdditionalEquipsResponse = 7515;
	k_EMsgServerToGCGetAdditionalEquips = 7516;
	k_EMsgServerToGCGetAdditionalEquipsResponse = 7517;
	k_EMsgDOTARedeemItem = 7518;
	k_EMsgDOTARedeemItemResponse = 7519;
	k_EMsgSQLGCToGCGrantAllHeroProgress = 7520;
	k_EMsgClientToGCGetAllHeroProgress = 7521;
	k_EMsgClientToGCGetAllHeroProgressResponse = 7522;
	k_EMsgGCToGCGetServerForClient = 7523;
	k_EMsgGCToGCGetServerForClientResponse = 7524;
	k_EMsgSQLProcessTournamentGameOutcome = 7525;
	k_EMsgSQLGrantTrophyToAccount = 7526;
	k_EMsgClientToGCGetTrophyList = 7527;
	k_EMsgClientToGCGetTrophyListResponse = 7528;
	k_EMsgGCToClientTrophyAwarded = 7529;
	k_EMsgGCGameBotMatchSignOut = 7530;
	k_EMsgGCGameBotMatchSignOutPermissionRequest = 7531;
	k_EMsgSignOutBotInfo = 7532;
	k_EMsgGCToGCUpdateProfileCards = 7533;
	k_EMsgClientToGCGetProfileCard = 7534;
	k_EMsgClientToGCGetProfileCardResponse = 7535;
	k_EMsgServerToGCGetProfileCard = 7536;
	k_EMsgServerToGCGetProfileCardResponse = 7537;
	k_EMsgClientToGCSetProfileCardSlots = 7538;
	k_EMsgGCToClientProfileCardUpdated = 7539;
	k_EMsgServerToGCVictoryPredictions = 7540;
	k_EMsgClientToGCMarkNotificationListRead = 7542;
	k_EMsgGCToClientNewNotificationAdded = 7543;
	k_EMsgServerToGCSuspiciousActivity = 7544;
	k_EMsgSignOutCommunicationSummary = 7545;
	k_EMsgServerToGCRequestStatus_Response = 7546;
	k_EMsgClientToGCCreateHeroStatue = 7547;
	k_EMsgGCToClientHeroStatueCreateResult = 7548;
	k_EMsgGCGCToLANServerRelayConnect = 7549;
	k_EMsgSignOutAssassinMiniGameInfo = 7550;
	k_EMsgServerToGCGetIngameEventData = 7551;
	k_EMsgGCToGCUpdateIngameEventDataBroadcast = 7552;
	k_EMsgGCToServerIngameEventData_OraclePA = 7553;
	k_EMsgServerToGCReportKillSummaries = 7554;
	k_EMsgGCToGCReportKillSummaries = 7555;
	k_EMsgGCToGCUpdateAssassinMinigame = 7556;
	k_EMsgGCToGCFantasySetMatchLeague = 7557;
	k_EMsgClientToGCRecordCompendiumStats = 7558;
	k_EMsgGCItemEditorRequestLeagueInfo = 7559;
	k_EMsgGCItemEditorLeagueInfoResponse = 7560;
	k_EMsgGCToGCUpdatePlayerPredictions = 7561;
	k_EMsgGCToServerPredictionResult = 7562;
	k_EMsgServerToGCSignoutAwardAdditionalDrops = 7563;
	k_EMsgGCToGCSignoutAwardAdditionalDrops = 7564;
	k_EMsgGCToClientEventStatusChanged = 7565;
	k_EMsgGCHasItemDefsQuery = 7566;
	k_EMsgGCHasItemDefsResponse = 7567;
	k_EMsgGCToGCReplayMonitorValidateReplay = 7569;
	k_EMsgClientToGCExchangeItemsForOffering = 7570;
	k_EMsgClientToGCExchangeItemsForOfferingResponse = 7571;
	k_EMsgLobbyEventPoints = 7572;
	k_EMsgGCToGCGetCustomGameTickets = 7573;
	k_EMsgGCToGCGetCustomGameTicketsResponse = 7574;
	k_EMsgGCToClientNewBloomTimingUpdated = 7575;
	k_EMsgGCToGCCustomGamePlayed = 7576;
	k_EMsgGCToGCGrantEventPointsToUser = 7577;
	k_EMsgGCToGCSetEventMMPanicFlushTime = 7578;
	k_EMsgGameserverCrashReport = 7579;
	k_EMsgGameserverCrashReportResponse = 7580;
	k_EMsgGCToClientSteamDatagramTicket = 7581;
	k_EMsgGCToGCGrantEventOwnership = 7582;
	k_EMsgGCToGCSendAccountsEventPoints = 7583;
	k_EMsgClientToGCRerollPlayerChallenge = 7584;
	k_EMsgServerToGCRerollPlayerChallenge = 7585;
	k_EMsgGCRerollPlayerChallengeResponse = 7586;
	k_EMsgSignOutUpdatePlayerChallenge = 7587;
	k_EMsgClientToGCSetPartyLeader = 7588;
	k_EMsgClientToGCCancelPartyInvites = 7589;
	k_EMsgGCToGCMasterReloadAccount = 7590;
	k_EMsgSQLGCToGCGrantBackpackSlots = 7591;
	k_EMsgSQLGrantLeagueMatchToTicketHolders = 7592;
	k_EMsgClientToGCSetAdditionalEquipsResponse = 7593;
	k_EMsgGCToGCEmoticonUnlockNoRollback = 7594;
	k_EMsgGCToGCGetCompendiumFanfare = 7595;
	k_EMsgServerToGCHoldEventPoints = 7596;
	k_EMsgSignOutReleaseEventPointHolds = 7597;
	k_EMsgGCToGCChatNewUserSession = 7598;
	k_EMsgGCToServerUpdateBroadcastCheers = 7602;
	k_EMsgGCDev_GrantWarKill = 8001;
	k_EMsgClientToGCCreateTeamShowcase = 8002;
	k_EMsgGCToClientTeamShowcaseCreateResult = 8003;
	k_EMsgServerToGCLockCharmTrading = 8004;
	k_EMsgDOTACNY2015EventPointUsage = 8005;
	k_EMsgClientToGCPlayerStatsRequest = 8006;
	k_EMsgGCToClientPlayerStatsResponse = 8007;
	k_EMsgGCClearPracticeLobbyTeam = 8008;
	k_EMsgClientToGCFindTopSourceTVGames = 8009;
	k_EMsgGCToClientFindTopSourceTVGamesResponse = 8010;
	k_EMsgGCLobbyList = 8011;
	k_EMsgGCLobbyListResponse = 8012;
	k_EMsgGCPlayerStatsMatchSignOut = 8013;
	k_EMsgClientToGCCustomGamePlayerCountRequest = 8014;
	k_EMsgGCToClientCustomGamePlayerCountResponse = 8015;
	k_EMsgClientToGCSocialFeedPostCommentRequest = 8016;
	k_EMsgGCToClientSocialFeedPostCommentResponse = 8017;
	k_EMsgClientToGCCustomGamesFriendsPlayedRequest = 8018;
	k_EMsgGCToClientCustomGamesFriendsPlayedResponse = 8019;
	k_EMsgClientToGCFriendsPlayedCustomGameRequest = 8020;
	k_EMsgGCToClientFriendsPlayedCustomGameResponse = 8021;
	k_EMsgClientToGCFeaturedHeroesRequest = 8022;
	k_EMsgGCToClientFeaturedHeroesResponse = 8023;
	k_EMsgGCTopCustomGamesList = 8024;
	k_EMsgClientToGCSocialMatchPostCommentRequest = 8025;
	k_EMsgGCToClientSocialMatchPostCommentResponse = 8026;
	k_EMsgClientToGCSocialMatchDetailsRequest = 8027;
	k_EMsgGCToClientSocialMatchDetailsResponse = 8028;
	k_EMsgClientToGCSetPartyOpen = 8029;
	k_EMsgClientToGCMergePartyInvite = 8030;
	k_EMsgGCToClientMergeGroupInviteReply = 8031;
	k_EMsgClientToGCMergePartyResponse = 8032;
	k_EMsgGCToClientMergePartyResponseReply = 8033;
	k_EMsgClientToGCGetProfileCardStats = 8034;
	k_EMsgClientToGCGetProfileCardStatsResponse = 8035;
	k_EMsgClientToGCTopLeagueMatchesRequest = 8036;
	k_EMsgClientToGCTopFriendMatchesRequest = 8037;
	k_EMsgGCToClientTopMatchesResponse = 8038;
	k_EMsgClientToGCTopPubMatchesRequest = 8039;
	k_EMsgGCToClientProfileCardStatsUpdated = 8040;
	k_EMsgServerToGCRealtimeStats = 8041;
	k_EMsgGCToServerRealtimeStatsStartStop = 8042;
	k_EMsgGCToGCGetServersForClients = 8045;
	k_EMsgGCToGCGetServersForClientsResponse = 8046;
	k_EMsgGCPracticeLobbyKickFromTeam = 8047;
	k_EMsgDOTAChatGetMemberCount = 8048;
	k_EMsgDOTAChatGetMemberCountResponse = 8049;
	k_EMsgClientToGCSocialFeedPostMessageRequest = 8050;
	k_EMsgGCToClientSocialFeedPostMessageResponse = 8051;
	k_EMsgCustomGameListenServerStartedLoading = 8052;
	k_EMsgCustomGameClientFinishedLoading = 8053;
	k_EMsgGCPracticeLobbyCloseBroadcastChannel = 8054;
	k_EMsgGCStartFindingMatchResponse = 8055;
	k_EMsgSQLGCToGCUpdateHeroMMR = 8056;
}

enum DOTA_GameMode {
	DOTA_GAMEMODE_NONE = 0;
	DOTA_GAMEMODE_AP = 1;
	DOTA_GAMEMODE_CM = 2;
	DOTA_GAMEMODE_RD = 3;
	DOTA_GAMEMODE_SD = 4;
	DOTA_GAMEMODE_AR = 5;
	DOTA_GAMEMODE_INTRO = 6;
	DOTA_GAMEMODE_HW = 7;
	DOTA_GAMEMODE_REVERSE_CM = 8;
	DOTA_GAMEMODE_XMAS = 9;
	DOTA_GAMEMODE_TUTORIAL = 10;
	DOTA_GAMEMODE_MO = 11;
	DOTA_GAMEMODE_LP = 12;
	DOTA_GAMEMODE_POOL1 = 13;
	DOTA_GAMEMODE_FH = 14;
	DOTA_GAMEMODE_CUSTOM = 15;
	DOTA_GAMEMODE_CD = 16;
	DOTA_GAMEMODE_BD = 17;
	DOTA_GAMEMODE_ABILITY_DRAFT = 18;
	DOTA_GAMEMODE_EVENT = 19;
	DOTA_GAMEMODE_ARDM = 20;
	DOTA_GAMEMODE_1V1MID = 21;
	DOTA_GAMEMODE_ALL_DRAFT = 22;
}

enum DOTA_GameState {
	DOTA_GAMERULES_STATE_INIT = 0;
	DOTA_GAMERULES_STATE_WAIT_FOR_PLAYERS_TO_LOAD = 1;
	DOTA_GAMERULES_STATE_HERO_SELECTION = 2;
	DOTA_GAMERULES_STATE_STRATEGY_TIME = 3;
	DOTA_GAMERULES_STATE_PRE_GAME = 4;
	DOTA_GAMERULES_STATE_GAME_IN_PROGRESS = 5;
	DOTA_GAMERULES_STATE_POST_GAME = 6;
	DOTA_GAMERULES_STATE_DISCONNECT = 7;
	DOTA_GAMERULES_STATE_TEAM_SHOWCASE = 8;
	DOTA_GAMERULES_STATE_CUSTOM_GAME_SETUP = 9;
	DOTA_GAMERULES_STATE_LAST = 10;
}

enum DOTA_GC_TEAM {
	DOTA_GC_TEAM_GOOD_GUYS = 0;
	DOTA_GC_TEAM_BAD_GUYS = 1;
	DOTA_GC_TEAM_BROADCASTER = 2;
	DOTA_GC_TEAM_SPECTATOR = 3;
	DOTA_GC_TEAM_PLAYER_POOL = 4;
	DOTA_GC_TEAM_NOTEAM = 5;
}

enum DOTA_CM_PICK {
	DOTA_CM_RANDOM = 0;
	DOTA_CM_GOOD_GUYS = 1;
	DOTA_CM_BAD_GUYS = 2;
}

enum DOTAConnectionState_t {
	DOTA_CONNECTION_STATE_UNKNOWN = 0;
	DOTA_CONNECTION_STATE_NOT_YET_CONNECTED = 1;
	DOTA_CONNECTION_STATE_CONNECTED = 2;
	DOTA_CONNECTION_STATE_DISCONNECTED = 3;
	DOTA_CONNECTION_STATE_ABANDONED = 4;
	DOTA_CONNECTION_STATE_LOADING = 5;
	DOTA_CONNECTION_STATE_FAILED = 6;
}

enum DOTALeaverStatus_t {
	DOTA_LEAVER_NONE = 0;
	DOTA_LEAVER_DISCONNECTED = 1;
	DOTA_LEAVER_DISCONNECTED_TOO_LONG = 2;
	DOTA_LEAVER_ABANDONED = 3;
	DOTA_LEAVER_AFK = 4;
	DOTA_LEAVER_NEVER_CONNECTED = 5;
	DOTA_LEAVER_NEVER_CONNECTED_TOO_LONG = 6;
	DOTA_LEAVER_FAILED_TO_READY_UP = 7;
	DOTA_LEAVER_DECLINED = 8;
}

enum DOTALowPriorityBanType {
	DOTA_LOW_PRIORITY_BAN_ABANDON = 0;
	DOTA_LOW_PRIORITY_BAN_REPORTS = 1;
	DOTA_LOW_PRIORITY_BAN_SECONDARY_ABANDON = 2;
}

enum DOTALobbyReadyState {
	DOTALobbyReadyState_UNDECLARED = 0;
	DOTALobbyReadyState_ACCEPTED = 1;
	DOTALobbyReadyState_DECLINED = 2;
}

enum DOTAGameVersion {
	GAME_VERSION_CURRENT = 0;
	GAME_VERSION_STABLE = 1;
}

enum DOTAJoinLobbyResult {
	DOTA_JOIN_RESULT_SUCCESS = 0;
	DOTA_JOIN_RESULT_ALREADY_IN_GAME = 1;
	DOTA_JOIN_RESULT_INVALID_LOBBY = 2;
	DOTA_JOIN_RESULT_INCORRECT_PASSWORD = 3;
	DOTA_JOIN_RESULT_ACCESS_DENIED = 4;
	DOTA_JOIN_RESULT_GENERIC_ERROR = 5;
	DOTA_JOIN_RESULT_INCORRECT_VERSION = 6;
	DOTA_JOIN_RESULT_IN_TEAM_PARTY = 7;
	DOTA_JOIN_RESULT_NO_LOBBY_FOUND = 8;
	DOTA_JOIN_RESULT_LOBBY_FULL = 9;
	DOTA_JOIN_RESULT_CUSTOM_GAME_INCORRECT_VERSION = 10;
}

enum DOTAMatchVote {
	DOTAMatchVote_INVALID = 0;
	DOTAMatchVote_POSITIVE = 1;
	DOTAMatchVote_NEGATIVE = 2;
}

enum DOTA_LobbyMemberXPBonus {
	DOTA_LobbyMemberXPBonus_DEFAULT = 0;
	DOTA_LobbyMemberXPBonus_BATTLE_BOOSTER = 1;
	DOTA_LobbyMemberXPBonus_SHARE_BONUS = 2;
	DOTA_LobbyMemberXPBonus_PARTY = 3;
	DOTA_LobbyMemberXPBonus_RECRUITMENT = 4;
	DOTA_LobbyMemberXPBonus_PCBANG = 5;
}

enum DOTALobbyVisibility {
	DOTALobbyVisibility_Public = 0;
	DOTALobbyVisibility_Friends = 1;
	DOTALobbyVisibility_Unlisted = 2;
}

enum EDOTAPlayerMMRType {
	k_EDOTAPlayerMMRType_Invalid = 0;
	k_EDOTAPlayerMMRType_GeneralHidden = 1;
	k_EDOTAPlayerMMRType_SoloHidden = 2;
	k_EDOTAPlayerMMRType_GeneralCompetitive = 3;
	k_EDOTAPlayerMMRType_SoloCompetitive = 4;
	k_EDOTAPlayerMMRType_1v1Competitive = 5;
}

enum MatchType {
	MATCH_TYPE_CASUAL = 0;
	MATCH_TYPE_COOP_BOTS = 1;
	MATCH_TYPE_TEAM_RANKED = 2;
	MATCH_TYPE_LEGACY_SOLO_QUEUE = 3;
	MATCH_TYPE_COMPETITIVE = 4;
	MATCH_TYPE_WEEKEND_TOURNEY = 5;
	MATCH_TYPE_CASUAL_1V1 = 6;
	MATCH_TYPE_EVENT = 7;
}

enum DOTABotDifficulty {
	BOT_DIFFICULTY_PASSIVE = 0;
	BOT_DIFFICULTY_EASY = 1;
	BOT_DIFFICULTY_MEDIUM = 2;
	BOT_DIFFICULTY_HARD = 3;
	BOT_DIFFICULTY_UNFAIR = 4;
	BOT_DIFFICULTY_INVALID = 5;
	BOT_DIFFICULTY_EXTRA1 = 6;
	BOT_DIFFICULTY_EXTRA2 = 7;
	BOT_DIFFICULTY_EXTRA3 = 8;
}

enum MatchLanguages {
	MATCH_LANGUAGE_INVALID = 0;
	MATCH_LANGUAGE_ENGLISH = 1;
	MATCH_LANGUAGE_RUSSIAN = 2;
	MATCH_LANGUAGE_CHINESE = 3;
	MATCH_LANGUAGE_KOREAN = 4;
	MATCH_LANGUAGE_SPANISH = 5;
	MATCH_LANGUAGE_PORTUGUESE = 6;
	MATCH_LANGUAGE_ENGLISH2 = 7;
}

enum ETournamentTemplate {
	k_ETournamentTemplate_None = 0;
	k_ETournamentTemplate_SingleElimination = 1;
}

enum ETournamentType {
	k_ETournamentType_Unknown = 0;
	k_ETournamentType_WeeklyDivision = 1;
}

enum EIngameEvent {
	k_EIngameEvent_OraclePA = 0;
	k_EIngameEvent_CNY2015 = 1;
	k_EIngameEvent_CNY2015_PreBeast = 2;
	k_EIngameEvent_TI5 = 3;
}

enum LobbyDotaTVDelay {
	LobbyDotaTV_10 = 0;
	LobbyDotaTV_120 = 1;
	LobbyDotaTV_300 = 2;
}

enum EMatchOutcome {
	k_EMatchOutcome_Unknown = 0;
	k_EMatchOutcome_RadVictory = 2;
	k_EMatchOutcome_DireVictory = 3;
	k_EMatchOutcome_NotScored_PoorNetworkConditions = 64;
	k_EMatchOutcome_NotScored_Leaver = 65;
	k_EMatchOutcome_NotScored_ServerCrash = 66;
	k_EMatchOutcome_NotScored_NeverStarted = 67;
}

enum EDOTAGCSessionNeed {
	k_EDOTAGCSessionNeed_Unknown = 0;
	k_EDOTAGCSessionNeed_UserNoSessionNeeded = 100;
	k_EDOTAGCSessionNeed_UserInOnlineGame = 101;
	k_EDOTAGCSessionNeed_UserInLocalGame = 102;
	k_EDOTAGCSessionNeed_UserInUIWasConnected = 103;
	k_EDOTAGCSessionNeed_UserInUINeverConnected = 104;
	k_EDOTAGCSessionNeed_UserTutorials = 105;
	k_EDOTAGCSessionNeed_GameServerOnline = 200;
	k_EDOTAGCSessionNeed_GameServerLocal = 201;
	k_EDOTAGCSessionNeed_GameServerIdle = 202;
	k_EDOTAGCSessionNeed_GameServerRelay = 203;
	k_EDOTAGCSessionNeed_GameServerLocalUpload = 204;
}

enum Fantasy_Roles {
	FANTASY_ROLE_UNDEFINED = 0;
	FANTASY_ROLE_CORE = 1;
	FANTASY_ROLE_SUPPORT = 2;
}

enum Fantasy_Team_Slots {
	FANTASY_SLOT_NONE = 0;
	FANTASY_SLOT_CORE = 1;
	FANTASY_SLOT_SUPPORT = 2;
	FANTASY_SLOT_ANY = 3;
	FANTASY_SLOT_BENCH = 4;
}

enum Fantasy_Selection_Mode {
	FANTASY_SELECTION_INVALID = 0;
	FANTASY_SELECTION_LOCKED = 1;
	FANTASY_SELECTION_SHUFFLE = 2;
	FANTASY_SELECTION_FREE_PICK = 3;
	FANTASY_SELECTION_ENDED = 4;
	FANTASY_SELECTION_PRE_SEASON = 5;
	FANTASY_SELECTION_PRE_DRAFT = 6;
	FANTASY_SELECTION_DRAFTING = 7;
	FANTASY_SELECTION_REGULAR_SEASON = 8;
}

enum DOTA_TournamentEvents {
	TE_FIRST_BLOOD = 0;
	TE_GAME_END = 1;
	TE_MULTI_KILL = 2;
	TE_HERO_DENY = 3;
	TE_AEGIS_DENY = 4;
	TE_AEGIS_STOLEN = 5;
	TE_GODLIKE = 6;
	TE_COURIER_KILL = 7;
	TE_ECHOSLAM = 8;
	TE_RAPIER = 9;
	TE_EARLY_ROSHAN = 10;
	TE_BLACK_HOLE = 11;
}

enum DOTA_COMBATLOG_TYPES {
	DOTA_COMBATLOG_DAMAGE = 0;
	DOTA_COMBATLOG_HEAL = 1;
	DOTA_COMBATLOG_MODIFIER_ADD = 2;
	DOTA_COMBATLOG_MODIFIER_REMOVE = 3;
	DOTA_COMBATLOG_DEATH = 4;
	DOTA_COMBATLOG_ABILITY = 5;
	DOTA_COMBATLOG_ITEM = 6;
	DOTA_COMBATLOG_LOCATION = 7;
	DOTA_COMBATLOG_GOLD = 8;
	DOTA_COMBATLOG_GAME_STATE = 9;
	DOTA_COMBATLOG_XP = 10;
	DOTA_COMBATLOG_PURCHASE = 11;
	DOTA_COMBATLOG_BUYBACK = 12;
	DOTA_COMBATLOG_ABILITY_TRIGGER = 13;
	DOTA_COMBATLOG_PLAYERSTATS = 14;
	DOTA_COMBATLOG_MULTIKILL = 15;
	DOTA_COMBATLOG_KILLSTREAK = 16;
	DOTA_COMBATLOG_TEAM_BUILDING_KILL = 17;
	DOTA_COMBATLOG_FIRST_BLOOD = 18;
	DOTA_COMBATLOG_MODIFIER_REFRESH = 19;
}

message CSODOTAGameAccountClient {
	optional uint32 account_id = 1 [(key_field) = true];
	optional uint32 wins = 3;
	optional uint32 losses = 4;
	optional uint32 xp = 12;
	optional uint32 level = 13;
	optional uint32 initial_skill = 14;
	optional uint32 leaver_count = 15;
	optional uint32 secondary_leaver_count = 58;
	optional uint32 low_priority_until_date = 18;
	optional uint32 prevent_text_chat_until_date = 20;
	optional uint32 prevent_voice_until_date = 21;
	optional uint32 last_abandoned_game_date = 22;
	optional uint32 last_secondary_abandoned_game_date = 59;
	optional uint32 leaver_penalty_count = 23;
	optional uint32 completed_game_streak = 24;
	optional uint32 teaching = 28;
	optional uint32 leadership = 29;
	optional uint32 friendly = 30;
	optional uint32 forgiving = 31;
	optional uint32 account_disabled_until_date = 38;
	optional uint32 account_disabled_count = 39;
	optional uint32 showcase_hero_id = 40;
	optional uint32 match_disabled_until_date = 41;
	optional uint32 match_disabled_count = 42;
	optional .PartnerAccountType partner_account_type = 44 [default = PARTNER_NONE];
	optional uint32 partner_account_state = 45;
	optional uint32 shutdownlawterminatetimestamp = 47;
	optional uint32 low_priority_games_remaining = 48;
	optional uint32 competitive_rank = 49;
	optional uint32 calibration_games_remaining = 51;
	optional uint32 solo_competitive_rank = 52;
	optional uint32 solo_calibration_games_remaining = 54;
	optional uint32 competitive_1v1_rank = 63;
	optional uint32 competitive_1v1_calibration_games_remaining = 64;
	optional uint32 recruitment_level = 55;
	optional bool has_new_notifications = 56;
	optional bool is_league_admin = 57;
	optional uint32 casual_games_played = 60;
	optional uint32 solo_competitive_games_played = 61;
	optional uint32 party_competitive_games_played = 62;
	optional uint32 casual_1v1_games_played = 65;
	optional uint32 competitive_team_games_played = 66;
	optional uint32 curr_all_hero_challenge_id = 67;
}

message CSODOTAPartyMember {
	optional .PartnerAccountType partner_type = 1 [default = PARTNER_NONE];
	optional bool is_coach = 2;
}

message CSODOTAParty {
	enum State {
		UI = 0;
		FINDING_MATCH = 1;
		IN_MATCH = 2;
	}

	optional uint64 party_id = 1 [(key_field) = true];
	optional fixed64 leader_id = 2;
	repeated fixed64 member_ids = 3;
	optional uint32 game_modes = 4;
	optional .CSODOTAParty.State state = 6 [default = UI];
	optional uint32 effective_started_matchmaking_time = 7;
	optional uint32 raw_started_matchmaking_time = 32;
	optional uint32 attempt_start_time = 33;
	optional uint32 attempt_num = 34;
	optional uint32 matchgroups = 11;
	optional uint32 low_priority_account_id = 19;
	optional .MatchType match_type = 21 [default = MATCH_TYPE_CASUAL];
	optional .DOTABotDifficulty bot_difficulty = 22 [default = BOT_DIFFICULTY_PASSIVE];
	optional uint32 team_id = 23;
	optional uint32 match_disabled_until_date = 24;
	optional uint32 match_disabled_account_id = 25;
	optional uint32 matchmaking_max_range_minutes = 26;
	optional uint32 matchlanguages = 27;
	optional uint32 map_preference = 38;
	repeated .CSODOTAPartyMember members = 29;
	optional uint32 open_guild_id = 30;
	repeated uint32 common_guilds = 31;
	optional uint32 low_priority_games_remaining = 35;
	optional uint32 min_level = 36;
	optional uint32 max_level = 37;
	repeated .EIngameEvent active_ingame_events = 39;
	optional bool open_for_join_requests = 40;
	repeated .CSODOTAPartyInvite sent_invites = 41;
	repeated .CSODOTAPartyInvite recv_invites = 42;
}

message CSODOTAPartyInvite {
	message PartyMember {
		optional string name = 1;
		optional fixed64 steam_id = 2;
		optional bool is_coach = 4;
	}

	optional uint64 group_id = 1 [(key_field) = true];
	optional fixed64 sender_id = 2;
	optional string sender_name = 3;
	repeated .CSODOTAPartyInvite.PartyMember members = 4;
	optional uint32 team_id = 5;
	optional bool low_priority_status = 6;
	optional bool as_coach = 7;
	optional fixed64 invite_gid = 8;
	optional uint32 engine = 9;
}

message CSODOTALobbyInvite {
	message LobbyMember {
		optional string name = 1;
		optional fixed64 steam_id = 2;
	}

	optional uint64 group_id = 1 [(key_field) = true];
	optional fixed64 sender_id = 2;
	optional string sender_name = 3;
	repeated .CSODOTALobbyInvite.LobbyMember members = 4;
	optional uint64 custom_game_id = 5;
	optional fixed64 invite_gid = 6;
	optional fixed64 custom_game_crc = 7;
	optional fixed32 custom_game_timestamp = 8;
}

message CDOTAClientHardwareSpecs {
	optional uint32 logical_processors = 1;
	optional fixed64 cpu_cycles_per_second = 2;
	optional fixed64 total_physical_memory = 3;
	optional bool is_64_bit_os = 4;
	optional uint64 upload_measurement = 5;
	optional bool prefer_not_host = 6;
}

message CDOTASaveGame {
	message Player {
		optional .DOTA_GC_TEAM team = 1 [default = DOTA_GC_TEAM_GOOD_GUYS];
		optional string name = 2;
		optional string hero = 3;
	}

	message SaveInstance {
		message PlayerPositions {
			optional float x = 1;
			optional float y = 2;
		}

		optional uint32 game_time = 2;
		optional uint32 team1_score = 3;
		optional uint32 team2_score = 4;
		repeated .CDOTASaveGame.SaveInstance.PlayerPositions player_positions = 5;
		optional uint32 save_id = 6;
		optional uint32 save_time = 7;
	}

	optional uint64 match_id = 5;
	optional uint32 save_time = 2;
	repeated .CDOTASaveGame.Player players = 3;
	repeated .CDOTASaveGame.SaveInstance save_instances = 4;
}

message CMsgLeaverState {
	optional uint32 lobby_state = 1;
	optional .DOTA_GameState game_state = 2 [default = DOTA_GAMERULES_STATE_INIT];
	optional bool leaver_detected = 3;
	optional bool first_blood_happened = 4;
	optional bool discard_match_results = 5;
	optional bool mass_disconnect = 6;
}

message CDOTALobbyMember {
	message CDOTALobbyMemberXPBonus {
		optional uint32 type = 1;
		optional float xp_bonus = 2;
		optional uint64 source_key = 3;
	}

	optional fixed64 id = 1 [(key_field) = true];
	optional uint32 hero_id = 2;
	optional .DOTA_GC_TEAM team = 3 [default = DOTA_GC_TEAM_GOOD_GUYS];
	optional string name = 6;
	optional uint32 slot = 7;
	optional uint64 party_id = 12;
	optional uint32 meta_level = 13;
	optional uint32 meta_xp = 14;
	optional uint32 meta_xp_awarded = 15;
	optional .DOTALeaverStatus_t leaver_status = 16 [default = DOTA_LEAVER_NONE];
	optional uint32 leaver_actions = 28;
	optional uint32 channel = 17;
	optional uint32 prize_def_index = 18;
	repeated uint32 disabled_hero_id = 20;
	optional .PartnerAccountType partner_account_type = 21 [default = PARTNER_NONE];
	repeated uint32 enabled_hero_id = 22;
	optional .DOTA_GC_TEAM coach_team = 23 [default = DOTA_GC_TEAM_GOOD_GUYS];
	optional uint32 nexon_pc_bang_no = 24;
	optional string nexon_pc_bang_name = 25;
	repeated .CDOTALobbyMember.CDOTALobbyMemberXPBonus xp_bonuses = 27;
	optional sint32 rank_change = 29;
	optional bool cameraman = 30;
	repeated uint32 custom_game_product_ids = 31;
}

message CLobbyTeamDetails {
	optional string team_name = 1;
	optional string team_tag = 3;
	optional uint32 team_id = 4;
	optional uint64 team_logo = 5;
	optional uint64 team_base_logo = 6;
	optional uint64 team_banner_logo = 7;
	optional bool team_complete = 8;
	optional string guild_name = 9;
	optional string guild_tag = 10;
	optional uint32 guild_id = 11;
	optional uint64 guild_logo = 12;
	optional uint64 guild_base_logo = 13;
	optional uint64 guild_banner_logo = 14;
	optional uint32 rank = 15;
	optional sint32 rank_change = 16;
}

message CLobbyTimedRewardDetails {
	optional uint32 item_def_index = 2;
	optional bool is_supply_crate = 3;
	optional bool is_timed_drop = 4;
	optional uint32 account_id = 5;
	optional uint32 origin = 6;
}

message CLobbyBroadcastChannelInfo {
	optional uint32 channel_id = 1;
	optional string country_code = 2;
	optional string description = 3;
	optional string language_code = 4;
}

message CSODOTALobby {
	message CExtraMsg {
		optional uint32 id = 1;
		optional bytes contents = 2;
	}

	enum State {
		UI = 0;
		READYUP = 4;
		SERVERSETUP = 1;
		RUN = 2;
		POSTGAME = 3;
		NOTREADY = 5;
		SERVERASSIGN = 6;
	}

	enum LobbyType {
		INVALID = -1;
		CASUAL_MATCH = 0;
		PRACTICE = 1;
		TOURNAMENT = 2;
		COOP_BOT_MATCH = 4;
		LEGACY_TEAM_MATCH = 5;
		LEGACY_SOLO_QUEUE_MATCH = 6;
		COMPETITIVE_MATCH = 7;
		CASUAL_1V1_MATCH = 8;
		WEEKEND_TOURNEY = 9;
		LOCAL_BOT_MATCH = 10;
	}

	optional uint64 lobby_id = 1 [(key_field) = true];
	repeated .CDOTALobbyMember members = 2;
	repeated .CDOTALobbyMember left_members = 7;
	optional fixed64 leader_id = 11;
	optional fixed64 server_id = 6 [default = 0];
	optional uint32 game_mode = 3;
	repeated fixed64 pending_invites = 10;
	optional .CSODOTALobby.State state = 4 [default = UI];
	optional string connect = 5;
	optional .CSODOTALobby.LobbyType lobby_type = 12 [default = INVALID];
	optional bool allow_cheats = 13;
	optional bool fill_with_bots = 14;
	optional bool intro_mode = 15;
	optional string game_name = 16;
	repeated .CLobbyTeamDetails team_details = 17;
	optional uint32 tutorial_lesson = 18;
	optional uint32 tournament_id = 19;
	optional uint32 tournament_game_id = 20;
	optional uint32 server_region = 21 [default = 0];
	optional .DOTA_GameState game_state = 22 [default = DOTA_GAMERULES_STATE_INIT];
	optional uint32 num_spectators = 23;
	optional uint32 matchgroup = 25;
	optional .DOTA_CM_PICK cm_pick = 28 [default = DOTA_CM_RANDOM];
	optional uint64 match_id = 30;
	optional bool allow_spectating = 31 [default = true];
	optional .DOTABotDifficulty bot_difficulty = 36 [default = BOT_DIFFICULTY_HARD];
	optional .DOTAGameVersion game_version = 37 [default = GAME_VERSION_CURRENT];
	repeated .CLobbyTimedRewardDetails timed_reward_details = 38;
	optional string pass_key = 39;
	repeated .DOTABotDifficulty bot_slot_difficulty = 41;
	optional uint32 leagueid = 42;
	optional uint32 penalty_level_radiant = 43 [default = 0];
	optional uint32 penalty_level_dire = 44 [default = 0];
	optional uint32 load_game_id = 45;
	optional uint32 series_type = 46;
	optional uint32 radiant_series_wins = 47;
	optional uint32 dire_series_wins = 48;
	optional uint32 loot_generated = 49;
	optional uint32 loot_awarded = 50;
	optional bool allchat = 51 [default = false];
	optional .LobbyDotaTVDelay dota_tv_delay = 53 [default = LobbyDotaTV_10];
	optional string custom_game_mode = 54;
	optional string custom_map_name = 55;
	optional uint32 custom_difficulty = 56;
	optional bool lan = 57;
	repeated .CLobbyBroadcastChannelInfo broadcast_channel_info = 58;
	optional uint32 first_leaver_accountid = 59;
	optional uint32 series_id = 60;
	optional bool low_priority = 61;
	repeated .CSODOTALobby.CExtraMsg extra_messages = 62;
	optional .CDOTASaveGame save_game = 63;
	optional bool first_blood_happened = 65;
	optional .EMatchOutcome match_outcome = 70 [default = k_EMatchOutcome_Unknown];
	optional bool mass_disconnect = 67;
	optional uint64 custom_game_id = 68;
	repeated .EIngameEvent active_ingame_events = 69;
	optional uint32 custom_min_players = 71;
	optional uint32 custom_max_players = 72;
	optional .PartnerAccountType partner_type = 73 [default = PARTNER_NONE];
	optional uint32 lan_host_ping_to_server_region = 74;
	optional .DOTALobbyVisibility visibility = 75 [default = DOTALobbyVisibility_Public];
	optional fixed64 custom_game_crc = 76;
	optional bool custom_game_auto_created_lobby = 77;
	optional fixed32 custom_game_timestamp = 80;
}

message CMsgLobbyEventPoints {
	message AccountPoints {
		optional uint32 account_id = 1;
		optional uint32 normal_points = 2;
		optional uint32 premium_points = 3;
		optional bool owned = 4;
		optional uint32 favorite_team = 5;
		optional uint32 favorite_team_level = 6;
		optional uint32 points_held = 7;
		optional uint32 premium_points_held = 8;
		optional uint32 favorite_team_foil_level = 9;
	}

	optional uint32 event_id = 1;
	repeated .CMsgLobbyEventPoints.AccountPoints account_points = 2;
}

message CMsgDOTAGenericResult {
	optional uint32 eresult = 1 [default = 2];
}

message CMsgDOTABroadcastNotification {
	optional string message = 1;
}

message CMsgDOTAPCBangTimedReward {
	optional string persona = 1;
	optional uint32 itemdef = 2;
	optional string pcbangname = 3;
}

message CAttribute_String {
	optional string value = 1;
}

message CAttribute_ItemDynamicRecipeComponent {
	optional uint32 item_def = 1;
	optional uint32 item_quality = 2;
	optional uint32 item_flags = 3;
	optional string attributes_string = 4;
	optional uint32 item_count = 5;
	optional uint32 items_fulfilled = 6;
	optional uint32 item_rarity = 7;
	optional string lootlist = 8;
	optional uint64 fulfilled_item_id = 9;
}

message CProtoItemHeroStatue {
	optional uint32 hero_id = 1;
	optional uint32 status_effect_index = 2;
	optional string sequence_name = 3;
	optional float cycle = 4;
	repeated uint32 wearable = 5;
	optional string inscription = 6;
	repeated uint32 style = 7;
	optional bool tournament_drop = 8;
}

message CProtoItemTeamShowcase {
	optional uint32 hero_id = 1;
	optional uint32 status_effect_index = 2;
	optional string sequence_name = 3;
	optional float cycle = 4;
	repeated uint32 wearable = 5;
	optional string inscription = 6;
	repeated uint32 style = 7;
}

message CProtoItemSocket {
	optional uint64 item_id = 1;
	optional uint32 attr_def_index = 2;
	optional uint32 required_type = 3;
	optional string required_hero = 4;
	optional uint32 gem_def_index = 5;
	optional bool not_tradable = 6;
	optional string required_item_slot = 7;
}

message CProtoItemSocket_Empty {
	optional .CProtoItemSocket socket = 1;
}

message CProtoItemSocket_Effect {
	optional .CProtoItemSocket socket = 1;
	optional uint32 effect = 2;
}

message CProtoItemSocket_Color {
	optional .CProtoItemSocket socket = 1;
	optional uint32 red = 2;
	optional uint32 green = 3;
	optional uint32 blue = 4;
}

message CProtoItemSocket_Strange {
	optional .CProtoItemSocket socket = 1;
	optional uint32 strange_type = 2;
	optional uint32 strange_value = 3;
}

message CProtoItemSocket_Spectator {
	optional .CProtoItemSocket socket = 1;
	optional uint32 games_viewed = 2;
	optional uint32 corporation_id = 3;
	optional uint32 league_id = 4;
	optional uint32 team_id = 5;
}

message CProtoItemSocket_AssetModifier {
	optional .CProtoItemSocket socket = 1;
	optional uint32 asset_modifier = 2;
}

message CProtoItemSocket_AssetModifier_DESERIALIZE_FROM_STRING_ONLY {
	optional .CProtoItemSocket socket = 1;
	optional uint32 asset_modifier = 2;
	optional uint32 anim_modifier = 3;
	optional uint32 ability_effect = 4;
}

message CProtoItemSocket_Autograph {
	optional .CProtoItemSocket socket = 1;
	optional string autograph = 2;
	optional uint32 autograph_id = 3;
}

message CProtoItemSocket_StaticVisuals {
	optional .CProtoItemSocket socket = 1;
}

message CMatchPlayerAbilityUpgrade {
	optional uint32 ability = 1;
	optional uint32 time = 2;
}

message CMatchAdditionalUnitInventory {
	optional string unit_name = 1;
	repeated uint32 items = 2;
}

message CMatchHeroSelectEvent {
	optional bool is_pick = 1;
	optional uint32 team = 2;
	optional uint32 hero_id = 3;
}

message CMsgDOTAProcessFantasyScheduledEvent {
	optional uint32 event = 1;
	optional uint32 timestamp = 2;
	optional uint32 fantasy_league_id = 3;
	optional uint32 season = 4;
	optional uint32 reference_data = 5;
}

message CMsgDOTAHasItemQuery {
	optional uint32 account_id = 1;
	optional uint64 item_id = 2;
}

message CMsgDOTAHasItemResponse {
	optional bool has_item = 1;
}

message CMsgDOTAHasItemDefsQuery {
	optional uint32 account_id = 1;
	repeated uint32 itemdef_ids = 2;
}

message CMsgDOTAHasItemDefsResponse {
	optional bool has_items = 1;
}

message CMsgDOTAConsumeFantasyTicket {
	optional uint32 account_id = 1;
	optional uint64 item_id = 2;
	optional uint32 fantasy_league_id = 3;
}

message CMsgDOTAConsumeFantasyTicketFailure {
	optional uint32 account_id = 1;
	optional uint64 item_id = 2;
	optional uint32 fantasy_league_id = 3;
}

message CMsgGCToGCFantasySetMatchLeague {
	optional uint64 match_id = 1;
	optional uint32 league_id = 2;
}

message CSODOTAMapLocationState {
	optional uint32 account_id = 1 [(key_field) = true];
	optional int32 location_id = 2 [(key_field) = true];
	optional bool completed = 3;
}

message CMsgNexonPartnerUpdate {
	optional uint32 messagetype = 1;
	optional uint32 timeremaining = 2;
	optional bool terminate = 3;
}

message CMsgMakeOffering {
	optional uint64 item_id = 1;
}

message CMsgRequestOfferings {
}

message CMsgRequestOfferingsResponse {
	message NewYearsOffering {
		optional uint32 def_index = 1;
		optional uint64 item_id = 2;
	}

	repeated .CMsgRequestOfferingsResponse.NewYearsOffering offerings = 1;
	optional bool completed = 2;
}

message CMsgLeagueAdminList {
	repeated uint32 account_ids = 1;
}

message CMsgPerfectWorldUserLookupRequest {
	optional string user_name = 1;
}

message CMsgPerfectWorldUserLookupResponse {
	enum EResultCode {
		SUCCESS_ACCOUNT_FOUND = 0;
		ERROR_UNKNOWN = 1;
		ERROR_USER_NAME_WRONG_FORMAT = 2;
		ERROR_NO_PERFECT_WORLD_ACCOUNT_FOUND = 3;
		ERROR_NO_LINKED_STEAM_ACCOUNT_FOUND = 4;
	}

	optional .CMsgPerfectWorldUserLookupResponse.EResultCode result_code = 1 [default = SUCCESS_ACCOUNT_FOUND];
	optional uint32 account_id = 2;
}

message CCompendiumTimestampedData {
	optional uint32 game_time = 1;
	optional uint32 gpm = 2;
	optional uint32 xpm = 3;
	optional uint32 kills = 4;
	optional uint32 deaths = 5;
	repeated uint32 item_purchases = 6;
}

message CCompendiumGameTimeline {
	repeated .CCompendiumTimestampedData data = 1;
	repeated string tags = 2;
}

message CCompendiumGameList {
	repeated .CCompendiumGameTimeline games = 1;
}

message CAdditionalEquipSlot {
	optional uint32 class_id = 1;
	optional uint32 slot_id = 2;
	optional uint32 def_index = 3;
}

message CMsgDOTARedeemItem {
	optional uint64 currency_id = 1;
	optional uint32 purchase_def = 2;
}

message CMsgDOTARedeemItemResponse {
}

message CMsgDOTACombatLogEntry {
	optional .DOTA_COMBATLOG_TYPES type = 1 [default = DOTA_COMBATLOG_DAMAGE];
	optional uint32 target_name = 2;
	optional uint32 target_source_name = 3;
	optional uint32 attacker_name = 4;
	optional uint32 damage_source_name = 5;
	optional uint32 inflictor_name = 6;
	optional bool is_attacker_illusion = 7;
	optional bool is_attacker_hero = 8;
	optional bool is_target_illusion = 9;
	optional bool is_target_hero = 10;
	optional bool is_visible_radiant = 11;
	optional bool is_visible_dire = 12;
	optional uint32 value = 13;
	optional int32 health = 14;
	optional float timestamp = 15;
	optional float stun_duration = 16;
	optional float slow_duration = 17;
	optional bool is_ability_toggle_on = 18;
	optional bool is_ability_toggle_off = 19;
	optional uint32 ability_level = 20;
	optional float location_x = 21;
	optional float location_y = 22;
	optional uint32 gold_reason = 23;
	optional float timestamp_raw = 24;
	optional float modifier_duration = 25;
	optional uint32 xp_reason = 26;
	optional uint32 last_hits = 27;
	optional uint32 attacker_team = 28;
	optional uint32 target_team = 29;
	optional uint32 obs_wards_placed = 30;
	optional uint32 assist_player0 = 31;
	optional uint32 assist_player1 = 32;
	optional uint32 assist_player2 = 33;
	optional uint32 assist_player3 = 34;
	optional uint32 stack_count = 35;
	optional bool hidden_modifier = 36;
}

message CMsgDOTAProfileCard {
	message Slot {
		message Trophy {
			optional uint32 trophy_id = 1;
			optional uint32 trophy_score = 2;
		}

		message Stat {
			optional .CMsgDOTAProfileCard.EStatID stat_id = 1 [default = k_eStat_SoloRank];
			optional uint32 stat_score = 2;
		}

		message Item {
			optional bytes serialized_item = 1;
		}

		message Hero {
			optional uint32 hero_id = 1;
			optional uint32 hero_wins = 2;
			optional uint32 hero_losses = 3;
		}

		message Emoticon {
			optional uint32 emoticon_id = 1;
		}

		optional uint32 slot_id = 1;
		optional .CMsgDOTAProfileCard.Slot.Trophy trophy = 2;
		optional .CMsgDOTAProfileCard.Slot.Stat stat = 3;
		optional .CMsgDOTAProfileCard.Slot.Item item = 4;
		optional .CMsgDOTAProfileCard.Slot.Hero hero = 5;
		optional .CMsgDOTAProfileCard.Slot.Emoticon emoticon = 6;
	}

	enum EStatID {
		k_eStat_SoloRank = 1;
		k_eStat_PartyRank = 2;
		k_eStat_Wins = 3;
		k_eStat_Commends = 4;
		k_eStat_GamesPlayed = 5;
		k_eStat_FirstMatchDate = 6;
	}

	optional uint32 account_id = 1;
	optional uint32 background_def_index = 2;
	repeated .CMsgDOTAProfileCard.Slot slots = 3;
}

message CMsgGCToClientNewBloomTimingUpdated {
	optional bool is_active = 1;
	optional uint32 next_transition_time = 2;
	optional uint32 bonus_amount = 3;
	optional uint32 standby_duration = 4;
	optional uint32 transition_time = 5;
}

message CSODOTAPlayerChallenge {
	enum EFlags {
		eFlag_InstantRerollUncompleted = 1;
	}

	optional uint32 account_id = 1 [(key_field) = true];
	optional uint32 event_id = 2 [(key_field) = true];
	optional uint32 slot_id = 3 [(key_field) = true];
	optional uint32 challenge_type = 4;
	optional uint32 int_param_0 = 5;
	optional uint32 int_param_1 = 6;
	optional uint32 created_time = 7;
	optional uint32 completed = 8;
	optional uint32 sequence_id = 9;
	optional uint32 challenge_tier = 10;
	optional uint32 flags = 11;
}

message CMsgClientToGCRerollPlayerChallenge {
	optional uint32 event_id = 1;
	optional uint32 sequence_id = 3;
}

message CMsgGCRerollPlayerChallengeResponse {
	enum EResult {
		eResult_Success = 0;
		eResult_Dropped = 1;
		eResult_NotFound = 2;
		eResult_CantReroll = 3;
		eResult_ServerError = 4;
	}

	optional .CMsgGCRerollPlayerChallengeResponse.EResult result = 1 [default = eResult_Success];
}

message CMsgGCTopCustomGamesList {
	repeated uint64 top_custom_games = 1;
}

message CMsgDOTARealtimeGameStats {
	message TeamDetails {
		optional uint32 team_number = 1;
		optional uint32 team_id = 2;
		optional string team_name = 3;
		optional fixed64 team_logo = 4;
		optional uint32 score = 5;
		repeated .CMsgDOTARealtimeGameStats.PlayerDetails players = 6;
		optional bool only_team = 7;
		optional uint32 cheers = 8;
	}

	message ItemDetails {
		optional uint32 id = 1;
		optional string name = 2;
		optional int32 time = 3;
		optional bool sold = 4;
		optional uint32 stackcount = 5;
	}

	message AbilityDetails {
		optional uint32 id = 1;
		optional string name = 2;
		optional uint32 level = 3;
	}

	message HeroToHeroStats {
		optional uint32 victimid = 1;
		optional uint32 kills = 2;
		optional uint32 assists = 3;
	}

	message AbilityList {
		repeated uint32 id = 1;
	}

	message PlayerDetails {
		optional uint32 accountid = 1;
		optional uint32 playerid = 2;
		optional string name = 3;
		optional uint32 team = 4;
		optional uint32 heroid = 5;
		optional uint32 healthpoints = 6;
		optional uint32 maxhealthpoints = 7;
		optional float healthregenrate = 8;
		optional uint32 manapoints = 9;
		optional uint32 maxmanapoints = 10;
		optional float manaregenrate = 11;
		optional uint32 base_strength = 12;
		optional uint32 base_agility = 13;
		optional uint32 base_intelligence = 14;
		optional int32 base_armor = 15;
		optional uint32 base_movespeed = 16;
		optional uint32 base_damage = 17;
		optional uint32 strength = 18;
		optional uint32 agility = 19;
		optional uint32 intelligence = 20;
		optional int32 armor = 21;
		optional uint32 movespeed = 22;
		optional uint32 damage = 23;
		optional uint32 hero_damage = 24;
		optional uint32 tower_damage = 25;
		repeated .CMsgDOTARealtimeGameStats.AbilityDetails abilities = 26;
		optional uint32 level = 27;
		optional uint32 kill_count = 28;
		optional uint32 death_count = 29;
		optional uint32 assists_count = 30;
		optional uint32 denies_count = 31;
		optional uint32 lh_count = 32;
		optional uint32 hero_healing = 33;
		optional uint32 gold_per_min = 34;
		optional uint32 xp_per_min = 35;
		optional uint32 net_gold = 36;
		optional uint32 gold = 37;
		optional float x = 38;
		optional float y = 39;
		optional int32 respawn_time = 40;
		optional uint32 ultimate_cooldown = 41;
		optional bool has_buyback = 42;
		repeated .CMsgDOTARealtimeGameStats.ItemDetails items = 43;
		repeated .CMsgDOTARealtimeGameStats.ItemDetails stashitems = 44;
		repeated .CMsgDOTARealtimeGameStats.ItemDetails itemshoppinglist = 45;
		repeated .CMsgDOTARealtimeGameStats.AbilityList levelpoints = 46;
		repeated .CMsgDOTARealtimeGameStats.HeroToHeroStats hero_to_hero_stats = 47;
		optional bool has_ultimate = 48;
		optional bool has_ultimate_mana = 49;
	}

	message BuildingDetails {
		optional uint32 team = 2;
		optional float heading = 3;
		optional uint32 lane = 4;
		optional uint32 tier = 5;
		optional uint32 type = 6;
		optional float x = 7;
		optional float y = 8;
	}

	message KillDetails {
		optional uint32 player_id = 1;
		optional int32 death_time = 2;
		optional uint32 killer_player_id = 3;
	}

	message BroadcasterDetails {
		optional uint32 player_id = 1;
		optional uint32 selected_hero = 2;
		optional uint32 selected_graph = 3;
	}

	message PickBanDetails {
		optional uint32 hero = 1;
		optional uint32 team = 2;
	}

	message MatchDetails {
		optional fixed64 server_steam_id = 1;
		optional uint64 matchid = 2;
		optional uint32 timestamp = 3;
		optional float time_of_day = 4;
		optional bool is_nightstalker_night = 5;
		optional int32 game_time = 6;
		optional uint32 teamid_radiant = 8;
		optional uint32 teamid_dire = 9;
		repeated .CMsgDOTARealtimeGameStats.PickBanDetails picks = 10;
		repeated .CMsgDOTARealtimeGameStats.PickBanDetails bans = 11;
		repeated .CMsgDOTARealtimeGameStats.KillDetails kills = 12;
		repeated .CMsgDOTARealtimeGameStats.BroadcasterDetails broadcasters = 13;
		optional uint32 game_mode = 14;
		optional uint32 league_id = 15;
		optional bool single_team = 16;
		optional uint32 cheers_peak = 17;
	}

	message GraphData {
		message LocationStats {
			repeated int32 stats = 1;
		}

		message TeamLocationStats {
			repeated .CMsgDOTARealtimeGameStats.GraphData.LocationStats loc_stats = 1;
		}

		enum eStat {
			CreepGoldEarned = 0;
			KillGoldEarned = 1;
			DeathAndBuybackGoldLost = 2;
			XPEarned = 3;
		}

		enum eLocation {
			BotLane = 0;
			MidLane = 1;
			TopLane = 2;
			Jungle = 3;
			Ancients = 4;
			Other = 5;
		}

		repeated int32 graph_gold = 1;
		repeated int32 graph_xp = 2;
		repeated int32 graph_kill = 3;
		repeated int32 graph_tower = 4;
		repeated int32 graph_rax = 5;
		repeated .CMsgDOTARealtimeGameStats.GraphData.TeamLocationStats team_loc_stats = 6;
	}

	optional .CMsgDOTARealtimeGameStats.MatchDetails match = 1;
	repeated .CMsgDOTARealtimeGameStats.TeamDetails teams = 2;
	repeated .CMsgDOTARealtimeGameStats.BuildingDetails buildings = 3;
	optional .CMsgDOTARealtimeGameStats.GraphData graph_data = 4;
	optional bool delta_frame = 5;
}

message CMsgDOTARealtimeGameStatsTerse {
	message TeamDetails {
		optional uint32 team_number = 1;
		optional uint32 team_id = 2;
		optional string team_name = 3;
		optional fixed64 team_logo = 4;
		optional uint32 score = 5;
		repeated .CMsgDOTARealtimeGameStatsTerse.PlayerDetails players = 6;
	}

	message PlayerDetails {
		optional uint32 accountid = 1;
		optional uint32 playerid = 2;
		optional string name = 3;
		optional uint32 team = 4;
		optional uint32 heroid = 5;
		optional uint32 level = 6;
		optional uint32 kill_count = 7;
		optional uint32 death_count = 8;
		optional uint32 assists_count = 9;
		optional uint32 denies_count = 10;
		optional uint32 lh_count = 11;
		optional uint32 gold = 12;
		optional float x = 13;
		optional float y = 14;
	}

	message BuildingDetails {
		optional uint32 team = 1;
		optional float heading = 2;
		optional uint32 type = 3;
		optional uint32 lane = 4;
		optional uint32 tier = 5;
		optional float x = 6;
		optional float y = 7;
	}

	message MatchDetails {
		optional fixed64 server_steam_id = 1;
		optional uint64 matchid = 2;
		optional uint32 timestamp = 3;
		optional int32 game_time = 4;
		repeated uint32 steam_broadcaster_account_ids = 6;
		optional uint32 game_mode = 7;
		optional uint32 league_id = 8;
	}

	message GraphData {
		repeated int32 graph_gold = 1;
	}

	optional .CMsgDOTARealtimeGameStatsTerse.MatchDetails match = 1;
	repeated .CMsgDOTARealtimeGameStatsTerse.TeamDetails teams = 2;
	repeated .CMsgDOTARealtimeGameStatsTerse.BuildingDetails buildings = 3;
	optional .CMsgDOTARealtimeGameStatsTerse.GraphData graph_data = 4;
	optional bool delta_frame = 5;
}

