Full Code of ValvePython/csgo for AI

master ed81efa8c361 cached
51 files
1.3 MB
377.4k tokens
83 symbols
1 requests
Download .txt
Showing preview only (1,374K chars total). Download the full file or copy to clipboard to get everything.
Repository: ValvePython/csgo
Branch: master
Commit: ed81efa8c361
Files: 51
Total size: 1.3 MB

Directory structure:
gitextract_tr2o_r6m/

├── .coveragerc
├── .gitignore
├── Makefile
├── README.rst
├── csgo/
│   ├── __init__.py
│   ├── client.py
│   ├── common_enums.py
│   ├── enums.py
│   ├── features/
│   │   ├── __init__.py
│   │   ├── items.py
│   │   ├── match.py
│   │   ├── player.py
│   │   └── sharedobjects.py
│   ├── msg.py
│   ├── proto_enums.py
│   ├── protobufs/
│   │   ├── __init__.py
│   │   ├── base_gcmessages_pb2.py
│   │   ├── cstrike15_gcmessages_pb2.py
│   │   ├── econ_gcmessages_pb2.py
│   │   ├── engine_gcmessages_pb2.py
│   │   ├── gcsdk_gcmessages_pb2.py
│   │   ├── gcsystemmsgs_pb2.py
│   │   └── steammessages_pb2.py
│   └── sharecode.py
├── docs/
│   ├── .gitignore
│   ├── Makefile
│   ├── conf.py
│   ├── csgo.client.rst
│   ├── csgo.enums.rst
│   ├── csgo.features.items.rst
│   ├── csgo.features.match.rst
│   ├── csgo.features.player.rst
│   ├── csgo.features.rst
│   ├── csgo.features.sharedobjects.rst
│   ├── csgo.msg.rst
│   ├── csgo.rst
│   ├── csgo.sharecode.rst
│   ├── index.rst
│   └── user_guide.rst
├── gen_enum_from_protos.py
├── protobuf_list.txt
├── protobufs/
│   ├── base_gcmessages.proto
│   ├── cstrike15_gcmessages.proto
│   ├── econ_gcmessages.proto
│   ├── engine_gcmessages.proto
│   ├── gcsdk_gcmessages.proto
│   ├── gcsystemmsgs.proto
│   ├── google/
│   │   └── protobuf/
│   │       └── descriptor.proto
│   └── steammessages.proto
├── requirements.txt
└── setup.py

================================================
FILE CONTENTS
================================================

================================================
FILE: .coveragerc
================================================
[run]
concurrency = gevent
omit =
    dota2/protobufs/*


================================================
FILE: .gitignore
================================================
dist
*.egg-info
*.pyc
.coverage
*.swp

csgo/protobufs/*.proto
credentials/*


================================================
FILE: Makefile
================================================
define HELPBODY
Available commands:

	make help       - this thing.

	make init       - install python dependancies
	make test       - run tests and coverage
	make pylint     - code analysis
	make build      - pylint + test
	make docs       - generate html docs using sphinx

	make dist		- build source distribution
	mage register	- register in pypi
	make upload 	- upload to pypi

	make pb_fetch   - fetch protobufs from SteamRE
	make pb_compile - compile with protoc
	make pb_clear   - removes *.proto
	make pb_update  - pb_fetch + pb_compile

endef

export HELPBODY
help:
	@echo "$$HELPBODY"

init:
	pip install -r requirements.txt

test:
	coverage erase
	PYTHONHASHSEED=0 nosetests --verbosity 1 --with-coverage --cover-package=csgo

pylint:
	pylint -r n -f colorized csgo || true

build: pylint test docs

.FORCE:
docs: .FORCE
	$(MAKE) -C docs html

clean:
	rm -rf dist csgo.egg-info csgo/*.pyc

dist: clean
	python setup.py sdist

register:
	python setup.py register -r pypi

upload: dist register
	twine upload -r pypi dist/*

pb_fetch:
	wget -nv --show-progress -N -P ./protobufs/ -i protobuf_list.txt
	sed -i '1s/^/syntax = "proto2"\;\npackage csgo\;\n/' protobufs/*.proto
	sed -i 's/\(optional\|repeated\) \.\([A-Z]\)/\1 csgo.\2/' protobufs/*.proto
	sed -i 's/cc_generic_services/py_generic_services/' protobufs/*.proto

pb_compile:
	for filepath in `ls ./protobufs/*.proto`; do \
		protoc3 --python_out ./csgo/protobufs/ --proto_path=./protobufs "$$filepath"; \
	done;
	sed -i '/^import sys/! s/^import /import csgo.protobufs./' csgo/protobufs/*_pb2.py

pb_clear:
	rm -f ./protobufs/*.proto ./csgo/protobufs/*_pb2.py

gen_enums:
	python gen_enum_from_protos.py > csgo/proto_enums.py

pb_update: pb_fetch pb_compile gen_enums


================================================
FILE: README.rst
================================================
| |pypi| |license| |docs|
| |sonar_maintainability| |sonar_reliability| |sonar_security|

Supports Python ``2.7+`` and ``3.3+``.

Module based on `steam <https://github.com/ValvePython/steam/>`_
for interacting with CSGO's Game Coordinator.

**Documentation**: http://csgo.readthedocs.io

| Note that this module should be considered an alpha.
| Contributions and suggestion are always welcome.


Installation
------------

Install latest version from PYPI::

    pip install -U csgo

Install the current dev version from ``github``::

    pip install git+https://github.com/ValvePython/csgo


.. |pypi| image:: https://img.shields.io/pypi/v/csgo.svg?style=flat&label=latest%20version
    :target: https://pypi.python.org/pypi/csgo
    :alt: Latest version released on PyPi

.. |license| image:: https://img.shields.io/pypi/l/csgo.svg?style=flat&label=license
    :target: https://pypi.python.org/pypi/csgo
    :alt: MIT License

.. |docs| image:: https://readthedocs.org/projects/csgo/badge/?version=latest
    :target: http://csgo.readthedocs.io/en/latest/?badge=latest
    :alt: Documentation status

.. |sonar_maintainability| image:: https://sonarcloud.io/api/project_badges/measure?project=ValvePython_csgo&metric=sqale_rating
    :target: https://sonarcloud.io/dashboard?id=ValvePython_csgo
    :alt: SonarCloud Rating

.. |sonar_reliability| image:: https://sonarcloud.io/api/project_badges/measure?project=ValvePython_csgo&metric=reliability_rating
    :target: https://sonarcloud.io/dashboard?id=ValvePython_csgo
    :alt: SonarCloud Rating

.. |sonar_security| image:: https://sonarcloud.io/api/project_badges/measure?project=ValvePython_csgo&metric=security_rating
    :target: https://sonarcloud.io/dashboard?id=ValvePython_csgo
    :alt: SonarCloud Rating


================================================
FILE: csgo/__init__.py
================================================
__version__ = "1.0.0"
__author__ = "Rossen Georgiev"

version_info = (1, 0, 0)


================================================
FILE: csgo/client.py
================================================
"""
Only the most essential features to :class:`csgo.client.CSGOClient` are found here. Every other feature is inherited from
the :mod:`csgo.features` package and it's submodules.
"""

import logging
import gevent
import google.protobuf
from steam.core.msg import GCMsgHdrProto
from steam.client.gc import GameCoordinator
from steam.enums.emsg import EMsg
from steam.utils.proto import proto_fill_from_dict
from csgo.features import FeatureBase
from csgo.enums import EGCBaseClientMsg, GCConnectionStatus, GCClientLauncherType
from csgo.msg import get_emsg_enum, find_proto
from csgo.protobufs import gcsdk_gcmessages_pb2 as pb_gc
from csgo.protobufs import cstrike15_gcmessages_pb2 as pb_gclient


class CSGOClient(GameCoordinator, FeatureBase):
    """
    :param steam_client: Instance of the steam client
    :type steam_client: :class:`steam.client.SteamClient`
    """
    _retry_welcome_loop = None
    verbose_debug = False
    #: enable pretty print of messages in debug logging
    app_id = 730
    #: main client app id
    launcher = GCClientLauncherType.DEFAULT
    #: launcher type (used for access to PW) See: :class:`csgo.enums.GCClientLauncherType`
    current_jobid = 0
    ready = False
    #: ``True`` when we have a session with GC
    connection_status = GCConnectionStatus.NO_SESSION
    #: See :class:`csgo.enums.GCConnectionStatus`

    @property
    def account_id(self):
        """
        Account ID of the logged-in user in the steam client
        """
        return self.steam.steam_id.id

    @property
    def steam_id(self):
        """
        :class:`steam.steamid.SteamID` of the logged-in user in the steam client
        """
        return self.steam.steam_id

    def __init__(self, steam_client):
        GameCoordinator.__init__(self, steam_client, self.app_id)
        self._LOG = logging.getLogger(self.__class__.__name__)

        FeatureBase.__init__(self)

        self.steam.on('disconnected', self._handle_disconnect)
        self.steam.on(EMsg.ClientPlayingSessionState, self._handle_play_sess_state)

        # register GC message handles
        self.on(EGCBaseClientMsg.EMsgGCClientConnectionStatus, self._handle_conn_status)
        self.on(EGCBaseClientMsg.EMsgGCClientWelcome, self._handle_client_welcome)

    def __repr__(self):
        return "<%s(%s) %s>" % (self.__class__.__name__,
                                              repr(self.steam),
                                              repr(self.connection_status),
                                              )

    def _handle_play_sess_state(self, message):
        if self.ready and message.playing_app != self.app_id:
            self._set_connection_status(GCConnectionStatus.NO_SESSION)

    def _handle_disconnect(self):
        if self._retry_welcome_loop:
            self._retry_welcome_loop.kill()

        self._set_connection_status(GCConnectionStatus.NO_SESSION)

    def _handle_client_welcome(self, message):
        self._set_connection_status(GCConnectionStatus.HAVE_SESSION)

        # handle CSGO Welcome
        submessage = pb_gclient.CMsgCStrike15Welcome()
        submessage.ParseFromString(message.game_data)

        if self.verbose_debug:
            self._LOG.debug("Got CStrike15Welcome:\n%s" % str(submessage))
        else:
            self._LOG.debug("Got CStrike15Welcome")

        self.emit('csgo_welcome', submessage)

    def _handle_conn_status(self, message):
        self._set_connection_status(message.status)

    def _process_gc_message(self, emsg, header, payload):
        emsg = get_emsg_enum(emsg)
        proto = find_proto(emsg)

        if proto is None:
            self._LOG.error("Failed to parse: %s" % repr(emsg))
            return

        message = proto()
        message.ParseFromString(payload)

        if self.verbose_debug:
            self._LOG.debug("Incoming: %s\n%s\n---------\n%s" % (repr(emsg),
                                                              str(header),
                                                              str(message),
                                                              ))
        else:
            self._LOG.debug("Incoming: %s", repr(emsg))

        self.emit(emsg, message)

        if header.proto.job_id_target != 18446744073709551615:
            self.emit('job_%d' % header.proto.job_id_target, message)

    def _set_connection_status(self, status):
        prev_status = self.connection_status
        self.connection_status = GCConnectionStatus(status)

        if self.connection_status != prev_status:
            self.emit("connection_status", self.connection_status)

        if self.connection_status == GCConnectionStatus.HAVE_SESSION and not self.ready:
            self.ready = True
            self.emit('ready')
        elif self.connection_status != GCConnectionStatus.HAVE_SESSION and self.ready:
            self.ready = False
            self.emit('notready')

    def wait_msg(self, event, timeout=None, raises=None):
        """Wait for a message, similiar to :meth:`.wait_event`

        :param event: event id
        :type  event: :class:`.ECsgoGCMsg` or job id
        :param timeout: seconds to wait before timeout
        :type  timeout: :class:`int`
        :param raises: On timeout when ``False`` returns :class:`None`, else raise :class:`gevent.Timeout`
        :type  raises: :class:`bool`
        :return: returns a message or :class:`None`
        :rtype: :class:`None`, or `proto message`
        :raises: :class:`gevent.Timeout`
        """
        resp = self.wait_event(event, timeout, raises)

        if resp is not None:
            return resp[0]

    def send_job(self, *args, **kwargs):
        """
        Send a message as a job

        Exactly the same as :meth:`send`

        :return: jobid event identifier
        :rtype: :class:`str`

        """
        jobid = self.current_jobid = ((self.current_jobid + 1) % 10000) or 1
        self.remove_all_listeners('job_%d' % jobid)

        self._send(*args, jobid=jobid, **kwargs)

        return "job_%d" % jobid

    def send(self, emsg, data={}, proto=None):
        """
        Send a message

        :param emsg: Enum for the message
        :param data: data for the proto message
        :type data: :class:`dict`
        :param proto: (optional) manually specify protobuf, other it's detected based on ``emsg``
        """
        self._send(emsg, data, proto)

    def _send(self, emsg, data={}, proto=None, jobid=None):
        if not isinstance(data, dict):
            raise ValueError("data kwarg can only be a dict")

        if proto is None:
            proto = find_proto(emsg)

        if proto is None or not issubclass(proto, google.protobuf.message.Message):
            raise ValueError("Unable to find proto for emsg, or proto kwarg is invalid")

        message = proto()
        proto_fill_from_dict(message, data)

        header = GCMsgHdrProto(emsg)

        if jobid is not None:
            header.proto.job_id_source = jobid

        if self.verbose_debug:
            str_message = ''
            str_header = str(header)
            str_body = str(message)

            if str_header:
                str_message += "-- header ---------\n%s\n" % str_header
            if str_body:
                str_message += "-- message --------\n%s\n" % str_body

            self._LOG.debug("Outgoing: %s\n%s" % (repr(emsg), str_message))
        else:
            self._LOG.debug("Outgoing: %s", repr(emsg))

        GameCoordinator.send(self, header, message.SerializeToString())

    def _knock_on_gc(self):
            n = 1

            while True:
                if not self.ready:
                    if self.launcher == GCClientLauncherType.PERFECTWORLD:
                        self.send(EGCBaseClientMsg.EMsgGCClientHelloPW, {
                            'client_launcher': self.launcher,
                            })
                    else:  # GCClientLauncherType.DEFAULT
                        self.send(EGCBaseClientMsg.EMsgGCClientHello)

                    self.wait_event('ready', timeout=3 + (2**n))
                    n = min(n + 1, 4)

                else:
                    self.wait_event('notready')
                    n = 1
                    gevent.sleep(1)

    def launch(self):
        """
        Launch CSGO and establish connection with the game coordinator

        ``ready`` event will fire when the session is ready.
        If the session is lost ``notready`` event will fire.
        Alternatively, ``connection_status`` event can be monitored for changes.
        """
        if not self.steam.logged_on:
            self.steam.wait_event('logged_on')

        if not self._retry_welcome_loop and self.app_id not in self.steam.current_games_played:
            self.steam.games_played(self.steam.current_games_played + [self.app_id])
            self._retry_welcome_loop = gevent.spawn(self._knock_on_gc)

    def exit(self):
        """
        Close connection to CSGO's game coordinator
        """
        if self._retry_welcome_loop:
            self._retry_welcome_loop.kill()

        if self.app_id in self.steam.current_games_played:
            self.steam.current_games_played.remove(self.app_id)
            self.steam.games_played(self.steam.current_games_played)

        self._set_connection_status(GCConnectionStatus.NO_SESSION)


================================================
FILE: csgo/common_enums.py
================================================
from enum import IntEnum

class ESOType(IntEnum):
    CSOEconItem = 1
    CSOPersonaDataPublic = 2
    CSOItemRecipe = 5
    CSOEconGameAccountClient = 7
    CSOEconItemDropRateBonus = 38
    CSOEconItemEventTicket = 40
    CSOAccountSeasonalOperation = 41
    CSOEconDefaultEquippedDefinitionInstanceClient = 43
    CSOEconCoupon = 45
    CSOQuestProgress = 46


class EXPBonusFlag(IntEnum):
    EarnedXpThisPeriod         = 1 << 0
    FirstReward                = 1 << 1
    Msg_YourReportGotConvicted = 1 << 2
    Msg_YouPartiedWithCheaters = 1 << 3
    PrestigeEarned             = 1 << 4
    ChinaGovernmentCert        = 1 << 5
    OverwatchBonus             = 1 << 28
    BonusBoostConsumed         = 1 << 29
    ReducedGain                = 1 << 30


# Do not remove
from sys import modules
from enum import EnumMeta

__all__ = [obj.__name__
           for obj in modules[__name__].__dict__.values()
           if obj.__class__ is EnumMeta and obj.__name__ != 'IntEnum'
           ]

del modules, EnumMeta


================================================
FILE: csgo/enums.py
================================================

from csgo.common_enums import *
from csgo.proto_enums import *


================================================
FILE: csgo/features/__init__.py
================================================
from csgo.features.match import Match
from csgo.features.player import Player
from csgo.features.items import Items
from csgo.features.sharedobjects import SOBase

class FeatureBase(Match, Player, Items, SOBase):
    """
    This object is used to all high level functionality to CSGOClient.
    The features are seperated into submodules with a single class.
    """
    pass


================================================
FILE: csgo/features/items.py
================================================
from csgo.enums import ECsgoGCMsg

class Items(object):
    def __init__(self):
        super(Items, self).__init__()

        # register our handlers
        self.on(ECsgoGCMsg.EMsgGCCStrike15_v2_Client2GCEconPreviewDataBlockResponse, self.__handle_preview_data_block)

    def request_preview_data_block(self, s, a, d, m):
        """
        Request item preview data block

        The parameters can be taken from ``inspect`` links either from an inventory or market.
        The market has the ``m`` paramter, while the inventory one has ``s``.
        Set the missing one to ``0``. Example ``inpsect`` links:

        .. code:: text

            steam://rungame/730/765xxxxxxxxxxxxxx/+csgo_econ_action_preview%20S11111111111111111A2222222222D33333333333333333333``
            steam://rungame/730/765xxxxxxxxxxxxxx/+csgo_econ_action_preview%20M444444444444444444A2222222222D33333333333333333333``

        :param s: steam id of owner (set to ``0`` if not available)
        :type s: :class:`int`
        :param a: item id
        :type a: :class:`int`
        :param d: UNKNOWN
        :type d: :class:`int`
        :param m: market id (set to ``0`` if not available)
        :type m: :class:`int`

        Response event: ``item_data_block``

        :param message: `CEconItemPreviewDataBlock <https://github.com/ValvePython/csgo/blob/386b76b17640f7717fe9ead5a6a607e0c821010c/protobufs/cstrike15_gcmessages.proto#L681>`_
        :type message: proto message

        """
        self.send(ECsgoGCMsg.EMsgGCCStrike15_v2_Client2GCEconPreviewDataBlockRequest, {
                    'param_s': s,
                    'param_a': a,
                    'param_d': d,
                    'param_m': m,
                 })

    def __handle_preview_data_block(self, message):
        self.emit("item_data_block", message.iteminfo)


================================================
FILE: csgo/features/match.py
================================================
from csgo.enums import ECsgoGCMsg

class Match(object):
    def __init__(self):
        super(Match, self).__init__()

        # register our handlers
        self.on(ECsgoGCMsg.EMsgGCCStrike15_v2_MatchmakingGC2ClientHello, self.__handle_mmstats)
        self.on(ECsgoGCMsg.EMsgGCCStrike15_v2_MatchList, self.__handle_match_list)
        self.on(ECsgoGCMsg.EMsgGCCStrike15_v2_WatchInfoUsers, self.__handle_watch_info)

    def request_matchmaking_stats(self):
        """
        Request matchmaking statistics

        Response event: ``matchmaking_stats``

        :param message: `CMsgGCCStrike15_v2_MatchmakingGC2ClientHello <https://github.com/ValvePython/csgo/blob/386b76b17640f7717fe9ead5a6a607e0c821010c/protobufs/cstrike15_gcmessages.proto#L463>`_
	:type message: proto message

        """
        self.send(ECsgoGCMsg.EMsgGCCStrike15_v2_MatchmakingClient2GCHello)

    def __handle_mmstats(self, message):
        self.emit("matchmaking_stats", message)

    def request_current_live_games(self):
        """
        Request current live games

        Response event: ``current_live_games``

        :param message: `CMsgGCCStrike15_v2_MatchList <https://github.com/ValvePython/csgo/blob/386b76b17640f7717fe9ead5a6a607e0c821010c/protobufs/cstrike15_gcmessages.proto#L798>`_
	:type message: proto message

        """
        self.send(ECsgoGCMsg.EMsgGCCStrike15_v2_MatchListRequestCurrentLiveGames)

    def request_live_game_for_user(self, account_id):
        """
        .. warning::
            Deprecated. CSGO no longer reponds for this method

        Request recent games for a specific user

        :param account_id: account id of the user
        :type account_id: :class:`int`

        Response event: ``live_game_for_user``

        :param message: `CMsgGCCStrike15_v2_MatchList <https://github.com/ValvePython/csgo/blob/386b76b17640f7717fe9ead5a6a607e0c821010c/protobufs/cstrike15_gcmessages.proto#L798>`_
	:type message: proto message

        """
        self.send(ECsgoGCMsg.EMsgGCCStrike15_v2_MatchListRequestLiveGameForUser, {
                    'accountid': account_id,
                 })

    def request_full_match_info(self, matchid, outcomeid, token):
        """
        Request full match info. The parameters can be decoded from a match ShareCode

        :param matchid: match id
        :type matchid: :class:`int`
        :param outcomeid: outcome id
        :type outcomeid: :class:`int`
        :param token: token
        :type token: :class:`int`

        Response event: ``full_match_info``

        :param message: `CMsgGCCStrike15_v2_MatchList <https://github.com/ValvePython/csgo/blob/386b76b17640f7717fe9ead5a6a607e0c821010c/protobufs/cstrike15_gcmessages.proto#L798>`_
	:type message: proto message
        """
        self.send(ECsgoGCMsg.EMsgGCCStrike15_v2_MatchListRequestFullGameInfo, {
                    'matchid': matchid,
                    'outcomeid': outcomeid,
                    'token': token,
                 })

    def request_recent_user_games(self, account_id):
        """
        Request recent games for a specific user

        :param account_id: account id of the user
        :type account_id: :class:`int`

        Response event: ``recent_user_games``

        :param message: `CMsgGCCStrike15_v2_MatchList <https://github.com/ValvePython/csgo/blob/386b76b17640f7717fe9ead5a6a607e0c821010c/protobufs/cstrike15_gcmessages.proto#L798>`_
	:type message: proto message
        """
        self.send(ECsgoGCMsg.EMsgGCCStrike15_v2_MatchListRequestRecentUserGames, {
                    'accountid': account_id,
                 })

    def __handle_match_list(self, message):
        emsg = message.msgrequestid

        if emsg == ECsgoGCMsg.EMsgGCCStrike15_v2_MatchListRequestCurrentLiveGames:
            self.emit("current_live_games", message)
        elif emsg == ECsgoGCMsg.EMsgGCCStrike15_v2_MatchListRequestLiveGameForUser:
            self.emit("live_game_for_user", message)
        elif emsg == ECsgoGCMsg.EMsgGCCStrike15_v2_MatchListRequestRecentUserGames:
            self.emit("recent_user_games", message)
        elif emsg == ECsgoGCMsg.EMsgGCCStrike15_v2_MatchListRequestFullGameInfo:
            self.emit("full_match_info", message)


    def request_watch_info_friends(self, account_ids, request_id=1, serverid=0, matchid=0):
        """Request watch info for friends

        :param account_ids: list of account ids
        :type account_ids: list
        :param request_id: request id, used to match reponse with request (default: 1)
        :type request_id: int
        :param serverid: server id
        :type serverid: int
        :param matchid: match id
        :type matchid: int

        Response event: ``watch_info``

        :param message: `CMsgGCCStrike15_v2_WatchInfoUsers <https://github.com/ValvePython/csgo/blob/386b76b17640f7717fe9ead5a6a607e0c821010c/protobufs/cstrike15_gcmessages.proto#L611>`_
	:type message: proto message
        """
        self.send(ECsgoGCMsg.EMsgGCCStrike15_v2_ClientRequestWatchInfoFriends2, {
            'account_ids': account_ids,
            'request_id': request_id,
            'serverid': serverid,
            'matchid': matchid
            })

    def __handle_watch_info(self, message):
        self.emit("watch_info", message)


================================================
FILE: csgo/features/player.py
================================================
from csgo.enums import ECsgoGCMsg

class Player(object):
    ranks_map = {
        0: "Not Ranked",
        1: "Silver I",
        2: "Silver II",
        3: "Silver III",
        4: "Silver IV",
        5: "Silver Elite",
        6: "Silver Elite Master",
        7: "Gold Nova I",
        8: "Gold Nova II",
        9: "Gold Nova III",
        10: "Gold Nova Master",
        11: "Master Guardian I",
        12: "Master Guardian II",
        13: "Master Guardian Elite",
        14: "Distinguished Master Guardian",
        15: "Legendary Eagle",
        16: "Legendary Eagle Master",
        17: "Supreme Master First Class",
        18: "The Global Elite"
        }
    """:class:`dict` mapping rank id to name"""
    wingman_ranks_map = ranks_map
    """:class:`dict` mapping wingman rank id to name"""
    dangerzone_ranks_map = {
        0: "Hidden",
        1: "Lab Rat I",
        2: "Lab Rat II",
        3: "Sprinting Hare I",
        4: "Sprinting Hare II",
        5: "Wild Scout I",
        6: "Wild Scout II",
        7: "Wild Scout Elite",
        8: "Hunter Fox I",
        9: "Hunter Fox II",
        10: "Hunter Fox II",
        11: "Hunter Fox Elite",
        12: "Timber Wolf",
        13: "Ember Wolf",
        14: "Wildfire Wolf",
        15: "The Howling Alpha",
    }
    """:class:`dict` mapping dangerzone rank id to name"""
    levels_map = {
        0: 'Not Recruited',
        1: 'Recruit',
        2: 'Private',
        3: 'Private',
        4: 'Private',
        5: 'Corporal',
        6: 'Corporal',
        7: 'Corporal',
        8: 'Corporal',
        9: 'Sergeant',
        10: 'Sergeant',
        11: 'Sergeant',
        12: 'Sergeant',
        13: 'Master Sergeant',
        14: 'Master Sergeant',
        15: 'Master Sergeant',
        16: 'Master Sergeant',
        17: 'Sergeant Major',
        18: 'Sergeant Major',
        19: 'Sergeant Major',
        20: 'Sergeant Major',
        21: 'Lieutenant',
        22: 'Lieutenant',
        23: 'Lieutenant',
        24: 'Lieutenant',
        25: 'Captain',
        26: 'Captain',
        27: 'Captain',
        28: 'Captain',
        29: 'Major',
        30: 'Major',
        31: 'Major',
        32: 'Major',
        33: 'Colonel',
        34: 'Colonel',
        35: 'Colonel',
        36: 'Brigadier General',
        37: 'Major General',
        38: 'Lieutenant General',
        39: 'General',
        40: 'Global General'
        }
    """:class:`dict` mapping level to name"""


    def __init__(self):
        super(Player, self).__init__()

        # register our handlers
        self.on(ECsgoGCMsg.EMsgGCCStrike15_v2_PlayersProfile, self.__handle_player_profile)

    def request_player_profile(self, account_id, request_level=32):
        """
        Request player profile

        :param account_id: account id
        :type account_id: :class:`int`
        :param request_level: no clue what this is used for; if you do, please make pull request
        :type request_level: :class:`int`

        Response event: ``player_profile``

        :param message: `CMsgGCCStrike15_v2_MatchmakingGC2ClientHello <https://github.com/ValvePython/csgo/blob/386b76b17640f7717fe9ead5a6a607e0c821010c/protobufs/cstrike15_gcmessages.proto#L463>`_
        :type message: proto message

        """
        self.send(ECsgoGCMsg.EMsgGCCStrike15_v2_ClientRequestPlayersProfile, {
                    'account_id': account_id,
                    'request_level': request_level,
                 })

    def __handle_player_profile(self, message):
        if message.account_profiles:
            self.emit("player_profile", message.account_profiles[0])


================================================
FILE: csgo/features/sharedobjects.py
================================================
"""Essentially a :class:`dict` containing shared object caches.
The objects are read-only, so don't change any values.
The instance reference of individual objects will remain the same thought their lifetime.
Individual objects can be accessed via their key, if they have one.

.. note::
    Some cache types don't have a key and only hold one object instance.
    Then only the the cache type is needed to access it.
    (e.g. ``CSOEconGameAccountClient``)

.. code:: python

    csgo_client.socache[ESOType.CSOEconItem]          # dict with item objects, key = item id
    csgo_client.socache[ESOType.CSOEconItem][123456]  # item object

    csgo_client.socache[ESOType.CSOEconGameAccountClient]  # returns a CSOEconGameAccountClient object

Events will be fired when individual objects are updated.
Event key is a :class:`tuple`` in the following format: ``(event, cache_type)``.

The available events are ``new``, ``updated``, and ``removed``.
Each event has a single parameter, which is the object instance.
Even when removed, there is object instance returned, usually only with the key field filled.

.. code:: python

    @csgo_client.socache.on(('new', ESOType.CSOEconItem))
    def got_a_new_item(obj):
        print "Got a new item! Yay"
        print obj

    # access the item via socache at any time
    print csgo_client.socache[ESOType.CSOEconItem][obj.id]

"""
import logging
from eventemitter import EventEmitter
from csgo.enums import EGCBaseClientMsg, ESOMsg, ESOType
from csgo.protobufs import base_gcmessages_pb2 as _gc_base
from csgo.protobufs import cstrike15_gcmessages_pb2 as _gc_cstrike


def find_so_proto(type_id):
    """Resolves proto massage for given type_id

    :param type_id: SO type
    :type type_id: :class:`csgo.enums.ESOType`
    :returns: proto message or `None`
    """
    if not isinstance(type_id, ESOType):
        return None

    proto = getattr(_gc_base, type_id.name, None)
    if proto is None:
        proto = getattr(_gc_cstrike, type_id.name, None)

    return proto

# hack to mark certain CSO as having no key
class NO_KEY:
    pass

so_key_fields = {
#     _gc_base.CSOPartyInvite.DESCRIPTOR: ['group_id'],
#     _gc_base.CSOLobbyInvite.DESCRIPTOR: ['group_id'],
#     _gc_base.CSOEconItemLeagueViewPass.DESCRIPTOR: ['account_id', 'league_id'],
#     _gc_base.CSOEconDefaultEquippedDefinitionInstanceClient.DESCRIPTOR: ['account_id', 'class_id', 'slot_id'],
    _gc_base.CSOEconItem.DESCRIPTOR: ['id'],
    _gc_base.CSOEconGameAccountClient.DESCRIPTOR: NO_KEY,
    _gc_base.CSOEconItemEventTicket.DESCRIPTOR: NO_KEY,
    _gc_cstrike.CSOPersonaDataPublic.DESCRIPTOR: NO_KEY,
#     _gc_cstrike.CSOEconCoupon.DESCRIPTOR: ['entryid'],
#     _gc_cstrike.CSOQuestProgress.DESCRIPTOR: ['questid'],

}

# key is either one or a number of fields marked with option 'key_field'=true in protos
def get_so_key_fields(desc):
    if desc in so_key_fields:
        return so_key_fields[desc]
    else:
        fields = []

        for field in desc.fields:
            for odesc, value in field.GetOptions().ListFields():
                if odesc.name == 'key_field' and value == True:
                    fields.append(field.name)

        so_key_fields[desc] = fields
        return fields

def get_key_for_object(obj):
    key = get_so_key_fields(obj.DESCRIPTOR)

    if key is NO_KEY:
        return NO_KEY
    elif not key:
        return None
    elif len(key) == 1:
        return getattr(obj, key[0])
    else:
        return tuple(map(lambda x: getattr(obj, x), key))


class SOBase(object):
    def __init__(self):
        super(SOBase, self).__init__()

        #: Shared Object Caches
        name = "%s.socache" % self.__class__.__name__
        self.socache = SOCache(self, name)


class SOCache(EventEmitter, dict):
    ESOType = ESOType   #: expose ESOType

    def __init__(self, csgo_client, logger_name):
        self._LOG = logging.getLogger(logger_name if logger_name else self.__class__.__name__)
        self._caches = {}
        self._csgo = csgo_client

        # register our handlers
        csgo_client.on(ESOMsg.Create, self._handle_create)
        csgo_client.on(ESOMsg.Update, self._handle_update)
        csgo_client.on(ESOMsg.Destroy, self._handle_destroy)
        csgo_client.on(ESOMsg.UpdateMultiple, self._handle_update_multiple)
        csgo_client.on(ESOMsg.CacheSubscribed, self._handle_cache_subscribed)
        csgo_client.on(ESOMsg.CacheUnsubscribed, self._handle_cache_unsubscribed)
        csgo_client.on(EGCBaseClientMsg.EMsgGCClientWelcome, self._handle_client_welcome)
        csgo_client.on('notready', self._handle_cleanup)

    def __hash__(self):
        # pretend that we are a hashable dict, lol
        # don't attach more than one SOCache per CSGOClient
        return hash((self._csgo, 42))

    def __getitem__(self, key):
        try:
            key = ESOType(key)
        except ValueError:
            raise KeyError("%s" % key)
        if key not in self:
            self[key] = dict()
        return dict.__getitem__(self, key)

    def __repr__(self):
        return "<SOCache(%s)>" % repr(self._csgo)

    def emit(self, event, *args):
        if event is not None:
            self._LOG.debug("Emit event: %s" % repr(event))
        super(SOCache, self).emit(event, *args)

    def _handle_cleanup(self):
        for v in self.values():
            if isinstance(v, dict):
                v.clear()
        self.clear()
        self._caches.clear()

    def _get_proto_for_type(self, type_id):
        try:
            type_id = ESOType(type_id)
        except ValueError:
            self._LOG.error("Unsupported type: %d" % type_id)
            return

        proto = find_so_proto(type_id)

        if proto is None:
            self._LOG.error("Unable to locate proto for: %s" % repr(type_id))
            return

        return proto

    def _parse_object_data(self, type_id, object_data):
        proto = self._get_proto_for_type(type_id)

        if proto is None:
            return

        if not get_so_key_fields(proto.DESCRIPTOR):
            self._LOG.error("Unable to find key for %s" % type_id)
            return

        obj = proto.FromString(object_data)
        key = get_key_for_object(obj)

        return key, obj

    def _update_object(self, type_id, object_data):
        result = self._parse_object_data(type_id, object_data)

        if result:
            key, obj = result
            type_id = ESOType(type_id)

            if key is NO_KEY:
                if not isinstance(self[type_id], dict):
                    self[type_id].CopyFrom(obj)
                    obj = self[type_id]
                else:
                    self[type_id] = obj
            else:
                if key in self[type_id]:
                    self[type_id][key].CopyFrom(obj)
                    obj = self[type_id][key]
                else:
                    self[type_id][key] = obj

            return type_id, obj

    def _handle_create(self, message):
        result = self._update_object(message.type_id, message.object_data)
        if result:
            type_id, obj = result
            self.emit(('new', type_id), obj)

    def _handle_update(self, message):
        result = self._update_object(message.type_id, message.object_data)
        if result:
            type_id, obj = result
            self.emit(('updated', type_id), obj)

    def _handle_destroy(self, message):
        result = self._parse_object_data(message.type_id, message.object_data)
        if result:
            key, obj = result
            type_id = ESOType(message.type_id)
            current = None

            if key is NO_KEY:
                current = self.pop(type_id, None)
            else:
                current = self[type_id].pop(key, None)

            if current: current.CopyFrom(obj)

            self.emit(('removed', type_id), current or obj)

    def _handle_update_multiple(self, message):
        for so_object in message.objects_modified:
            self._handle_update(so_object)
#       for so_object in message.objects_added:
#           self._handle_create(so_object)
#       for so_object in message.objects_removed:
#           self._handle_destroy(so_object)

    def _handle_client_welcome(self, message):
        for one in message.outofdate_subscribed_caches:
            self._handle_cache_subscribed(one)

    def _handle_cache_subscribed(self, message):
        cache_key = message.owner_soid.type, message.owner_soid.id
        self._caches.setdefault(cache_key, dict())

        cache = self._caches[cache_key]
        cache['version'] = message.version
        cache.setdefault('type_ids', set()).update(map(lambda x: x.type_id, message.objects))

        for objects in message.objects:
            for object_bytes in objects.object_data:
                result = self._update_object(objects.type_id, object_bytes)
                if not result: break

                type_id, obj = result
                self.emit(('new', type_id), obj)

    def _handle_cache_unsubscribed(self, message):
        cache_key = message.owner_soid.type, message.owner_soid.id

        if cache_key not in self._caches: return
        cache = self._caches[cache_key]

        for type_id in cache['type_ids']:
            if type_id in self:
                type_id = ESOType(type_id)

                if isinstance(self[type_id], dict):
                    for key in list(self[type_id].keys()):
                        self.emit(('removed', type_id), self[type_id].pop(key))
                else:
                    self.emit(('removed', type_id), self.pop(type_id))

                del self[type_id]
        del self._caches[cache_key]




================================================
FILE: csgo/msg.py
================================================
"""
Various utility function for dealing with messages.

"""

from csgo.enums import EGCBaseClientMsg, ECsgoGCMsg, EGCItemMsg
from csgo.protobufs import gcsdk_gcmessages_pb2
from csgo.protobufs import cstrike15_gcmessages_pb2
from csgo.protobufs import econ_gcmessages_pb2
from csgo.protobufs import base_gcmessages_pb2


def get_emsg_enum(emsg):
    """
    Attempts to find the Enum for the given :class:`int`

    :param emsg: integer corresponding to a Enum
    :type emsg: :class:`int`
    :return: Enum if found, `emsg` if not
    :rtype: Enum, :class:`int`
    """
    for enum in (EGCBaseClientMsg,
                 ECsgoGCMsg,
                 EGCItemMsg,
                 ):
        try:
            return enum(emsg)
        except ValueError:
            pass

    return emsg

def find_proto(emsg):
    """
    Attempts to find the protobuf message for a given Enum

    :param emsg: Enum corrensponding to a protobuf message
    :type emsg: `Enum`
    :return: protobuf message class
    """

    if type(emsg) is int:
        return None

    proto = _proto_map_why_cant_we_name_things_properly.get(emsg, None)

    if proto is not None:
        return proto

    for module in (gcsdk_gcmessages_pb2,
                   cstrike15_gcmessages_pb2,
                   econ_gcmessages_pb2,
                   base_gcmessages_pb2,
                  ):

        proto = getattr(module, emsg.name.replace("EMsg", "CMsg"), None)

        if proto is None:
            proto = getattr(module, emsg.name.replace("EMsgGC", "CMsg"), None)

        if proto is not None:
            break

    return proto


_proto_map_why_cant_we_name_things_properly = {
    EGCBaseClientMsg.EMsgGCClientConnectionStatus: gcsdk_gcmessages_pb2.CMsgConnectionStatus,
    EGCBaseClientMsg.EMsgGCClientHelloPartner: gcsdk_gcmessages_pb2.CMsgClientHello,
    EGCBaseClientMsg.EMsgGCClientHelloPW: gcsdk_gcmessages_pb2.CMsgClientHello,
    EGCBaseClientMsg.EMsgGCClientHelloR2: gcsdk_gcmessages_pb2.CMsgClientHello,
    EGCBaseClientMsg.EMsgGCClientHelloR3: gcsdk_gcmessages_pb2.CMsgClientHello,
    EGCBaseClientMsg.EMsgGCClientHelloR4: gcsdk_gcmessages_pb2.CMsgClientHello,
    ECsgoGCMsg.EMsgGCCStrike15_v2_ClientRequestWatchInfoFriends2: cstrike15_gcmessages_pb2.CMsgGCCStrike15_v2_ClientRequestWatchInfoFriends,
    ECsgoGCMsg.EMsgGCCStrike15_v2_GC2ClientGlobalStats: cstrike15_gcmessages_pb2.GlobalStatistics,
}


================================================
FILE: csgo/proto_enums.py
================================================
from enum import IntEnum

class EClientReportingVersion(IntEnum):
    OldVersion = 0
    BetaVersion = 1
    SupportsTrustedMode = 2

class ECommunityItemAttribute(IntEnum):
    Invalid = 0
    CardBorder = 1
    Level = 2
    IssueNumber = 3
    TradableTime = 4
    StorePackageID = 5
    CommunityItemAppID = 6
    CommunityItemType = 7
    ProfileModiferEnabled = 8
    ExpiryTime = 9

class ECommunityItemClass(IntEnum):
    Invalid = 0
    Badge = 1
    GameCard = 2
    ProfileBackground = 3
    Emoticon = 4
    BoosterPack = 5
    Consumable = 6
    GameGoo = 7
    ProfileModifier = 8
    Scene = 9
    SalienItem = 10

class ECsgoGCMsg(IntEnum):
    EMsgGCCStrike15_v2_Base = 9100
    EMsgGCCStrike15_v2_MatchmakingStart = 9101
    EMsgGCCStrike15_v2_MatchmakingStop = 9102
    EMsgGCCStrike15_v2_MatchmakingClient2ServerPing = 9103
    EMsgGCCStrike15_v2_MatchmakingGC2ClientUpdate = 9104
    EMsgGCCStrike15_v2_MatchmakingServerReservationResponse = 9106
    EMsgGCCStrike15_v2_MatchmakingGC2ClientReserve = 9107
    EMsgGCCStrike15_v2_MatchmakingClient2GCHello = 9109
    EMsgGCCStrike15_v2_MatchmakingGC2ClientHello = 9110
    EMsgGCCStrike15_v2_MatchmakingGC2ClientAbandon = 9112
    EMsgGCCStrike15_v2_MatchmakingGCOperationalStats = 9115
    EMsgGCCStrike15_v2_MatchmakingOperator2GCBlogUpdate = 9117
    EMsgGCCStrike15_v2_ServerNotificationForUserPenalty = 9118
    EMsgGCCStrike15_v2_ClientReportPlayer = 9119
    EMsgGCCStrike15_v2_ClientReportServer = 9120
    EMsgGCCStrike15_v2_ClientCommendPlayer = 9121
    EMsgGCCStrike15_v2_ClientReportResponse = 9122
    EMsgGCCStrike15_v2_ClientCommendPlayerQuery = 9123
    EMsgGCCStrike15_v2_ClientCommendPlayerQueryResponse = 9124
    EMsgGCCStrike15_v2_WatchInfoUsers = 9126
    EMsgGCCStrike15_v2_ClientRequestPlayersProfile = 9127
    EMsgGCCStrike15_v2_PlayersProfile = 9128
    EMsgGCCStrike15_v2_PlayerOverwatchCaseUpdate = 9131
    EMsgGCCStrike15_v2_PlayerOverwatchCaseAssignment = 9132
    EMsgGCCStrike15_v2_PlayerOverwatchCaseStatus = 9133
    EMsgGCCStrike15_v2_GC2ClientTextMsg = 9134
    EMsgGCCStrike15_v2_Client2GCTextMsg = 9135
    EMsgGCCStrike15_v2_MatchEndRunRewardDrops = 9136
    EMsgGCCStrike15_v2_MatchEndRewardDropsNotification = 9137
    EMsgGCCStrike15_v2_ClientRequestWatchInfoFriends2 = 9138
    EMsgGCCStrike15_v2_MatchList = 9139
    EMsgGCCStrike15_v2_MatchListRequestCurrentLiveGames = 9140
    EMsgGCCStrike15_v2_MatchListRequestRecentUserGames = 9141
    EMsgGCCStrike15_v2_GC2ServerReservationUpdate = 9142
    EMsgGCCStrike15_v2_ClientVarValueNotificationInfo = 9144
    EMsgGCCStrike15_v2_MatchListRequestTournamentGames = 9146
    EMsgGCCStrike15_v2_MatchListRequestFullGameInfo = 9147
    EMsgGCCStrike15_v2_GiftsLeaderboardRequest = 9148
    EMsgGCCStrike15_v2_GiftsLeaderboardResponse = 9149
    EMsgGCCStrike15_v2_ServerVarValueNotificationInfo = 9150
    EMsgGCCStrike15_v2_ClientSubmitSurveyVote = 9152
    EMsgGCCStrike15_v2_Server2GCClientValidate = 9153
    EMsgGCCStrike15_v2_MatchListRequestLiveGameForUser = 9154
    EMsgGCCStrike15_v2_Client2GCEconPreviewDataBlockRequest = 9156
    EMsgGCCStrike15_v2_Client2GCEconPreviewDataBlockResponse = 9157
    EMsgGCCStrike15_v2_AccountPrivacySettings = 9158
    EMsgGCCStrike15_v2_SetMyActivityInfo = 9159
    EMsgGCCStrike15_v2_MatchListRequestTournamentPredictions = 9160
    EMsgGCCStrike15_v2_MatchListUploadTournamentPredictions = 9161
    EMsgGCCStrike15_v2_DraftSummary = 9162
    EMsgGCCStrike15_v2_ClientRequestJoinFriendData = 9163
    EMsgGCCStrike15_v2_ClientRequestJoinServerData = 9164
    EMsgGCCStrike15_v2_ClientRequestNewMission = 9165
    EMsgGCCStrike15_v2_GC2ClientTournamentInfo = 9167
    EMsgGC_GlobalGame_Subscribe = 9168
    EMsgGC_GlobalGame_Unsubscribe = 9169
    EMsgGC_GlobalGame_Play = 9170
    EMsgGCCStrike15_v2_AcknowledgePenalty = 9171
    EMsgGCCStrike15_v2_Client2GCRequestPrestigeCoin = 9172
    EMsgGCCStrike15_v2_GC2ClientGlobalStats = 9173
    EMsgGCCStrike15_v2_Client2GCStreamUnlock = 9174
    EMsgGCCStrike15_v2_FantasyRequestClientData = 9175
    EMsgGCCStrike15_v2_FantasyUpdateClientData = 9176
    EMsgGCCStrike15_v2_GCToClientSteamdatagramTicket = 9177
    EMsgGCCStrike15_v2_ClientToGCRequestTicket = 9178
    EMsgGCCStrike15_v2_ClientToGCRequestElevate = 9179
    EMsgGCCStrike15_v2_GlobalChat = 9180
    EMsgGCCStrike15_v2_GlobalChat_Subscribe = 9181
    EMsgGCCStrike15_v2_GlobalChat_Unsubscribe = 9182
    EMsgGCCStrike15_v2_ClientAuthKeyCode = 9183
    EMsgGCCStrike15_v2_GotvSyncPacket = 9184
    EMsgGCCStrike15_v2_ClientPlayerDecalSign = 9185
    EMsgGCCStrike15_v2_ClientLogonFatalError = 9187
    EMsgGCCStrike15_v2_ClientPollState = 9188
    EMsgGCCStrike15_v2_Party_Register = 9189
    EMsgGCCStrike15_v2_Party_Unregister = 9190
    EMsgGCCStrike15_v2_Party_Search = 9191
    EMsgGCCStrike15_v2_Party_Invite = 9192
    EMsgGCCStrike15_v2_Account_RequestCoPlays = 9193
    EMsgGCCStrike15_v2_ClientGCRankUpdate = 9194
    EMsgGCCStrike15_v2_ClientRequestOffers = 9195
    EMsgGCCStrike15_v2_ClientAccountBalance = 9196
    EMsgGCCStrike15_v2_ClientPartyJoinRelay = 9197
    EMsgGCCStrike15_v2_ClientPartyWarning = 9198
    EMsgGCCStrike15_v2_SetEventFavorite = 9200
    EMsgGCCStrike15_v2_GetEventFavorites_Request = 9201
    EMsgGCCStrike15_v2_ClientPerfReport = 9202
    EMsgGCCStrike15_v2_GetEventFavorites_Response = 9203
    EMsgGCCStrike15_v2_ClientRequestSouvenir = 9204
    EMsgGCCStrike15_v2_ClientReportValidation = 9205
    EMsgGCCStrike15_v2_GC2ClientRefuseSecureMode = 9206
    EMsgGCCStrike15_v2_GC2ClientRequestValidation = 9207
    EMsgGCCStrike15_v2_ClientRedeemMissionReward = 9209
    EMsgGCCStrike15_ClientDeepStats = 9210
    EMsgGCCStrike15_StartAgreementSessionInGame = 9211

class ECsgoSteamUserStat(IntEnum):
    XpEarnedGames = 1
    MatchWinsCompetitive = 2
    SurvivedDangerZone = 3

class EGCBaseClientMsg(IntEnum):
    EMsgGCClientWelcome = 4004
    EMsgGCServerWelcome = 4005
    EMsgGCClientHello = 4006
    EMsgGCServerHello = 4007
    EMsgGCClientConnectionStatus = 4009
    EMsgGCServerConnectionStatus = 4010
    EMsgGCClientHelloPartner = 4011
    EMsgGCClientHelloPW = 4012
    EMsgGCClientHelloR2 = 4013
    EMsgGCClientHelloR3 = 4014
    EMsgGCClientHelloR4 = 4015

class EGCItemCustomizationNotification(IntEnum):
    NameItem = 1006
    UnlockCrate = 1007
    XRayItemReveal = 1008
    XRayItemClaim = 1009
    CasketTooFull = 1011
    CasketContents = 1012
    CasketAdded = 1013
    CasketRemoved = 1014
    CasketInvFull = 1015
    NameBaseItem = 1019
    RemoveItemName = 1030
    RemoveSticker = 1053
    ApplySticker = 1086
    StatTrakSwap = 1088
    RemovePatch = 1089
    ApplyPatch = 1090
    ActivateFanToken = 9178
    ActivateOperationCoin = 9179
    GraffitiUnseal = 9185
    GenerateSouvenir = 9204
    ClientRedeemMissionReward = 9209

class EGCItemMsg(IntEnum):
    EMsgGCBase = 1000
    EMsgGCSetItemPosition = 1001
    EMsgGCCraft = 1002
    EMsgGCCraftResponse = 1003
    EMsgGCDelete = 1004
    EMsgGCVerifyCacheSubscription = 1005
    EMsgGCNameItem = 1006
    EMsgGCUnlockCrate = 1007
    EMsgGCUnlockCrateResponse = 1008
    EMsgGCPaintItem = 1009
    EMsgGCPaintItemResponse = 1010
    EMsgGCGoldenWrenchBroadcast = 1011
    EMsgGCMOTDRequest = 1012
    EMsgGCMOTDRequestResponse = 1013
    EMsgGCAddItemToSocket_DEPRECATED = 1014
    EMsgGCAddItemToSocketResponse_DEPRECATED = 1015
    EMsgGCAddSocketToBaseItem_DEPRECATED = 1016
    EMsgGCAddSocketToItem_DEPRECATED = 1017
    EMsgGCAddSocketToItemResponse_DEPRECATED = 1018
    EMsgGCNameBaseItem = 1019
    EMsgGCNameBaseItemResponse = 1020
    EMsgGCRemoveSocketItem_DEPRECATED = 1021
    EMsgGCRemoveSocketItemResponse_DEPRECATED = 1022
    EMsgGCCustomizeItemTexture = 1023
    EMsgGCCustomizeItemTextureResponse = 1024
    EMsgGCUseItemRequest = 1025
    EMsgGCUseItemResponse = 1026
    EMsgGCGiftedItems_DEPRECATED = 1027
    EMsgGCRemoveItemName = 1030
    EMsgGCRemoveItemPaint = 1031
    EMsgGCGiftWrapItem = 1032
    EMsgGCGiftWrapItemResponse = 1033
    EMsgGCDeliverGift = 1034
    EMsgGCDeliverGiftResponseGiver = 1035
    EMsgGCDeliverGiftResponseReceiver = 1036
    EMsgGCUnwrapGiftRequest = 1037
    EMsgGCUnwrapGiftResponse = 1038
    EMsgGCSetItemStyle = 1039
    EMsgGCUsedClaimCodeItem = 1040
    EMsgGCSortItems = 1041
    EMsgGC_RevolvingLootList_DEPRECATED = 1042
    EMsgGCLookupAccount = 1043
    EMsgGCLookupAccountResponse = 1044
    EMsgGCLookupAccountName = 1045
    EMsgGCLookupAccountNameResponse = 1046
    EMsgGCUpdateItemSchema = 1049
    EMsgGCRemoveCustomTexture = 1051
    EMsgGCRemoveCustomTextureResponse = 1052
    EMsgGCRemoveMakersMark = 1053
    EMsgGCRemoveMakersMarkResponse = 1054
    EMsgGCRemoveUniqueCraftIndex = 1055
    EMsgGCRemoveUniqueCraftIndexResponse = 1056
    EMsgGCSaxxyBroadcast = 1057
    EMsgGCBackpackSortFinished = 1058
    EMsgGCAdjustItemEquippedState = 1059
    EMsgGCCollectItem = 1061
    EMsgGCItemAcknowledged__DEPRECATED = 1062
    EMsgGC_ReportAbuse = 1065
    EMsgGC_ReportAbuseResponse = 1066
    EMsgGCNameItemNotification = 1068
    EMsgGCApplyConsumableEffects = 1069
    EMsgGCConsumableExhausted = 1070
    EMsgGCShowItemsPickedUp = 1071
    EMsgGCClientDisplayNotification = 1072
    EMsgGCApplyStrangePart = 1073
    EMsgGC_IncrementKillCountAttribute = 1074
    EMsgGC_IncrementKillCountResponse = 1075
    EMsgGCApplyPennantUpgrade = 1076
    EMsgGCSetItemPositions = 1077
    EMsgGCApplyEggEssence = 1078
    EMsgGCNameEggEssenceResponse = 1079
    EMsgGCPaintKitItem = 1080
    EMsgGCPaintKitBaseItem = 1081
    EMsgGCPaintKitItemResponse = 1082
    EMsgGCGiftedItems = 1083
    EMsgGCUnlockItemStyle = 1084
    EMsgGCUnlockItemStyleResponse = 1085
    EMsgGCApplySticker = 1086
    EMsgGCItemAcknowledged = 1087
    EMsgGCStatTrakSwap = 1088
    EMsgGCUserTrackTimePlayedConsecutively = 1089
    EMsgGCItemCustomizationNotification = 1090
    EMsgGCModifyItemAttribute = 1091
    EMsgGCCasketItemAdd = 1092
    EMsgGCCasketItemExtract = 1093
    EMsgGCCasketItemLoadContents = 1094
    EMsgGCTradingBase = 1500
    EMsgGCTrading_InitiateTradeRequest = 1501
    EMsgGCTrading_InitiateTradeResponse = 1502
    EMsgGCTrading_StartSession = 1503
    EMsgGCTrading_SetItem = 1504
    EMsgGCTrading_RemoveItem = 1505
    EMsgGCTrading_UpdateTradeInfo = 1506
    EMsgGCTrading_SetReadiness = 1507
    EMsgGCTrading_ReadinessResponse = 1508
    EMsgGCTrading_SessionClosed = 1509
    EMsgGCTrading_CancelSession = 1510
    EMsgGCTrading_TradeChatMsg = 1511
    EMsgGCTrading_ConfirmOffer = 1512
    EMsgGCTrading_TradeTypingChatMsg = 1513
    EMsgGCServerBrowser_FavoriteServer = 1601
    EMsgGCServerBrowser_BlacklistServer = 1602
    EMsgGCServerRentalsBase = 1700
    EMsgGCItemPreviewCheckStatus = 1701
    EMsgGCItemPreviewStatusResponse = 1702
    EMsgGCItemPreviewRequest = 1703
    EMsgGCItemPreviewRequestResponse = 1704
    EMsgGCItemPreviewExpire = 1705
    EMsgGCItemPreviewExpireNotification = 1706
    EMsgGCItemPreviewItemBoughtNotification = 1707
    EMsgGCDev_NewItemRequest = 2001
    EMsgGCDev_NewItemRequestResponse = 2002
    EMsgGCDev_PaintKitDropItem = 2003
    EMsgGCStoreGetUserData = 2500
    EMsgGCStoreGetUserDataResponse = 2501
    EMsgGCStorePurchaseInit_DEPRECATED = 2502
    EMsgGCStorePurchaseInitResponse_DEPRECATED = 2503
    EMsgGCStorePurchaseFinalize = 2504
    EMsgGCStorePurchaseFinalizeResponse = 2505
    EMsgGCStorePurchaseCancel = 2506
    EMsgGCStorePurchaseCancelResponse = 2507
    EMsgGCStorePurchaseQueryTxn = 2508
    EMsgGCStorePurchaseQueryTxnResponse = 2509
    EMsgGCStorePurchaseInit = 2510
    EMsgGCStorePurchaseInitResponse = 2511
    EMsgGCBannedWordListRequest = 2512
    EMsgGCBannedWordListResponse = 2513
    EMsgGCToGCBannedWordListBroadcast = 2514
    EMsgGCToGCBannedWordListUpdated = 2515
    EMsgGCToGCDirtySDOCache = 2516
    EMsgGCToGCDirtyMultipleSDOCache = 2517
    EMsgGCToGCUpdateSQLKeyValue = 2518
    EMsgGCToGCIsTrustedServer = 2519
    EMsgGCToGCIsTrustedServerResponse = 2520
    EMsgGCToGCBroadcastConsoleCommand = 2521
    EMsgGCServerVersionUpdated = 2522
    EMsgGCApplyAutograph = 2523
    EMsgGCToGCWebAPIAccountChanged = 2524
    EMsgGCRequestAnnouncements = 2525
    EMsgGCRequestAnnouncementsResponse = 2526
    EMsgGCRequestPassportItemGrant = 2527
    EMsgGCClientVersionUpdated = 2528
    EMsgGCAdjustItemEquippedStateMulti = 2529

class EGCMsgResponse(IntEnum):
    EGCMsgResponseOK = 0
    EGCMsgResponseDenied = 1
    EGCMsgResponseServerError = 2
    EGCMsgResponseTimeout = 3
    EGCMsgResponseInvalid = 4
    EGCMsgResponseNoMatch = 5
    EGCMsgResponseUnknownError = 6
    EGCMsgResponseNotLoggedOn = 7
    EGCMsgFailedToCreate = 8
    EGCMsgLimitExceeded = 9
    EGCMsgCommitUnfinalized = 10

class EGCSystemMsg(IntEnum):
    EGCMsgInvalid = 0
    EGCMsgMulti = 1
    EGCMsgGenericReply = 10
    EGCMsgSystemBase = 50
    EGCMsgAchievementAwarded = 51
    EGCMsgConCommand = 52
    EGCMsgStartPlaying = 53
    EGCMsgStopPlaying = 54
    EGCMsgStartGameserver = 55
    EGCMsgStopGameserver = 56
    EGCMsgWGRequest = 57
    EGCMsgWGResponse = 58
    EGCMsgGetUserGameStatsSchema = 59
    EGCMsgGetUserGameStatsSchemaResponse = 60
    EGCMsgGetUserStatsDEPRECATED = 61
    EGCMsgGetUserStatsResponse = 62
    EGCMsgAppInfoUpdated = 63
    EGCMsgValidateSession = 64
    EGCMsgValidateSessionResponse = 65
    EGCMsgLookupAccountFromInput = 66
    EGCMsgSendHTTPRequest = 67
    EGCMsgSendHTTPRequestResponse = 68
    EGCMsgPreTestSetup = 69
    EGCMsgRecordSupportAction = 70
    EGCMsgGetAccountDetails_DEPRECATED = 71
    EGCMsgReceiveInterAppMessage = 73
    EGCMsgFindAccounts = 74
    EGCMsgPostAlert = 75
    EGCMsgGetLicenses = 76
    EGCMsgGetUserStats = 77
    EGCMsgGetCommands = 78
    EGCMsgGetCommandsResponse = 79
    EGCMsgAddFreeLicense = 80
    EGCMsgAddFreeLicenseResponse = 81
    EGCMsgGetIPLocation = 82
    EGCMsgGetIPLocationResponse = 83
    EGCMsgSystemStatsSchema = 84
    EGCMsgGetSystemStats = 85
    EGCMsgGetSystemStatsResponse = 86
    EGCMsgSendEmail = 87
    EGCMsgSendEmailResponse = 88
    EGCMsgGetEmailTemplate = 89
    EGCMsgGetEmailTemplateResponse = 90
    EGCMsgGrantGuestPass = 91
    EGCMsgGrantGuestPassResponse = 92
    EGCMsgGetAccountDetails = 93
    EGCMsgGetAccountDetailsResponse = 94
    EGCMsgGetPersonaNames = 95
    EGCMsgGetPersonaNamesResponse = 96
    EGCMsgMultiplexMsg = 97
    EGCMsgMultiplexMsgResponse = 98
    EGCMsgWebAPIRegisterInterfaces = 101
    EGCMsgWebAPIJobRequest = 102
    EGCMsgWebAPIJobRequestHttpResponse = 104
    EGCMsgWebAPIJobRequestForwardResponse = 105
    EGCMsgMemCachedGet = 200
    EGCMsgMemCachedGetResponse = 201
    EGCMsgMemCachedSet = 202
    EGCMsgMemCachedDelete = 203
    EGCMsgMemCachedStats = 204
    EGCMsgMemCachedStatsResponse = 205
    EGCMsgMasterSetDirectory = 220
    EGCMsgMasterSetDirectoryResponse = 221
    EGCMsgMasterSetWebAPIRouting = 222
    EGCMsgMasterSetWebAPIRoutingResponse = 223
    EGCMsgMasterSetClientMsgRouting = 224
    EGCMsgMasterSetClientMsgRoutingResponse = 225
    EGCMsgSetOptions = 226
    EGCMsgSetOptionsResponse = 227
    EGCMsgSystemBase2 = 500
    EGCMsgGetPurchaseTrustStatus = 501
    EGCMsgGetPurchaseTrustStatusResponse = 502
    EGCMsgUpdateSession = 503
    EGCMsgGCAccountVacStatusChange = 504
    EGCMsgCheckFriendship = 505
    EGCMsgCheckFriendshipResponse = 506
    EGCMsgGetPartnerAccountLink = 507
    EGCMsgGetPartnerAccountLinkResponse = 508
    EGCMsgDPPartnerMicroTxns = 512
    EGCMsgDPPartnerMicroTxnsResponse = 513
    EGCMsgVacVerificationChange = 518
    EGCMsgAccountPhoneNumberChange = 519
    EGCMsgInviteUserToLobby = 523
    EGCMsgGetGamePersonalDataCategoriesRequest = 524
    EGCMsgGetGamePersonalDataCategoriesResponse = 525
    EGCMsgGetGamePersonalDataEntriesRequest = 526
    EGCMsgGetGamePersonalDataEntriesResponse = 527
    EGCMsgTerminateGamePersonalDataEntriesRequest = 528
    EGCMsgTerminateGamePersonalDataEntriesResponse = 529

class EGCToGCMsg(IntEnum):
    EGCToGCMsgMasterAck = 150
    EGCToGCMsgMasterAckResponse = 151
    EGCToGCMsgRouted = 152
    EGCToGCMsgRoutedReply = 153
    EMsgUpdateSessionIP = 154
    EMsgRequestSessionIP = 155
    EMsgRequestSessionIPResponse = 156
    EGCToGCMsgMasterStartupComplete = 157

class ESOMsg(IntEnum):
    Create = 21
    Update = 22
    Destroy = 23
    CacheSubscribed = 24
    CacheUnsubscribed = 25
    UpdateMultiple = 26
    CacheSubscriptionCheck = 27
    CacheSubscriptionRefresh = 28

class EUnlockStyle(IntEnum):
    UnlockStyle_Succeeded = 0
    UnlockStyle_Failed_PreReq = 1
    UnlockStyle_Failed_CantAfford = 2
    UnlockStyle_Failed_CantCommit = 3
    UnlockStyle_Failed_CantLockCache = 4
    UnlockStyle_Failed_CantAffordAttrib = 5

class GCClientLauncherType(IntEnum):
    DEFAULT = 0
    PERFECTWORLD = 1
    STEAMCHINA = 2

class GCConnectionStatus(IntEnum):
    HAVE_SESSION = 0
    GC_GOING_DOWN = 1
    NO_SESSION = 2
    NO_SESSION_IN_LOGON_QUEUE = 3
    NO_STEAM = 4

__all__ = [
    'EClientReportingVersion',
    'ECommunityItemAttribute',
    'ECommunityItemClass',
    'ECsgoGCMsg',
    'ECsgoSteamUserStat',
    'EGCBaseClientMsg',
    'EGCItemCustomizationNotification',
    'EGCItemMsg',
    'EGCMsgResponse',
    'EGCSystemMsg',
    'EGCToGCMsg',
    'ESOMsg',
    'EUnlockStyle',
    'GCClientLauncherType',
    'GCConnectionStatus',
    ]


================================================
FILE: csgo/protobufs/__init__.py
================================================


================================================
FILE: csgo/protobufs/base_gcmessages_pb2.py
================================================
# -*- coding: utf-8 -*-
# Generated by the protocol buffer compiler.  DO NOT EDIT!
# source: base_gcmessages.proto

import sys
_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1'))
from google.protobuf.internal import enum_type_wrapper
from google.protobuf import descriptor as _descriptor
from google.protobuf import message as _message
from google.protobuf import reflection as _reflection
from google.protobuf import symbol_database as _symbol_database
# @@protoc_insertion_point(imports)

_sym_db = _symbol_database.Default()


import csgo.protobufs.steammessages_pb2 as steammessages__pb2


DESCRIPTOR = _descriptor.FileDescriptor(
  name='base_gcmessages.proto',
  package='csgo',
  syntax='proto2',
  serialized_options=_b('H\001\220\001\000'),
  serialized_pb=_b('\n\x15\x62\x61se_gcmessages.proto\x12\x04\x63sgo\x1a\x13steammessages.proto\"}\n\x1d\x43GCStorePurchaseInit_LineItem\x12\x13\n\x0bitem_def_id\x18\x01 \x01(\r\x12\x10\n\x08quantity\x18\x02 \x01(\r\x12\x1e\n\x16\x63ost_in_local_currency\x18\x03 \x01(\r\x12\x15\n\rpurchase_type\x18\x04 \x01(\r\"\x87\x01\n\x17\x43MsgGCStorePurchaseInit\x12\x0f\n\x07\x63ountry\x18\x01 \x01(\t\x12\x10\n\x08language\x18\x02 \x01(\x05\x12\x10\n\x08\x63urrency\x18\x03 \x01(\x05\x12\x37\n\nline_items\x18\x04 \x03(\x0b\x32#.csgo.CGCStorePurchaseInit_LineItem\"`\n\x1f\x43MsgGCStorePurchaseInitResponse\x12\x0e\n\x06result\x18\x01 \x01(\x05\x12\x0e\n\x06txn_id\x18\x02 \x01(\x04\x12\x0b\n\x03url\x18\x03 \x01(\t\x12\x10\n\x08item_ids\x18\x04 \x03(\x04\"P\n\x0e\x43SOPartyInvite\x12\x16\n\x08group_id\x18\x01 \x01(\x04\x42\x04\x80\xa6\x1d\x01\x12\x11\n\tsender_id\x18\x02 \x01(\x06\x12\x13\n\x0bsender_name\x18\x03 \x01(\t\"P\n\x0e\x43SOLobbyInvite\x12\x16\n\x08group_id\x18\x01 \x01(\x04\x42\x04\x80\xa6\x1d\x01\x12\x11\n\tsender_id\x18\x02 \x01(\x06\x12\x13\n\x0bsender_name\x18\x03 \x01(\t\"&\n\x13\x43MsgSystemBroadcast\x12\x0f\n\x07message\x18\x01 \x01(\t\"R\n\x11\x43MsgInviteToParty\x12\x10\n\x08steam_id\x18\x01 \x01(\x06\x12\x16\n\x0e\x63lient_version\x18\x02 \x01(\r\x12\x13\n\x0bteam_invite\x18\x03 \x01(\r\";\n\x15\x43MsgInvitationCreated\x12\x10\n\x08group_id\x18\x01 \x01(\x04\x12\x10\n\x08steam_id\x18\x02 \x01(\x06\"h\n\x17\x43MsgPartyInviteResponse\x12\x10\n\x08party_id\x18\x01 \x01(\x04\x12\x0e\n\x06\x61\x63\x63\x65pt\x18\x02 \x01(\x08\x12\x16\n\x0e\x63lient_version\x18\x03 \x01(\r\x12\x13\n\x0bteam_invite\x18\x04 \x01(\r\"%\n\x11\x43MsgKickFromParty\x12\x10\n\x08steam_id\x18\x01 \x01(\x06\"\x10\n\x0e\x43MsgLeaveParty\"\x15\n\x13\x43MsgServerAvailable\"*\n\x16\x43MsgLANServerAvailable\x12\x10\n\x08lobby_id\x18\x01 \x01(\x06\"\xb4\x01\n\x18\x43SOEconGameAccountClient\x12$\n\x19\x61\x64\x64itional_backpack_slots\x18\x01 \x01(\r:\x01\x30\x12\"\n\x1a\x62onus_xp_timestamp_refresh\x18\x0c \x01(\x07\x12\x1a\n\x12\x62onus_xp_usedflags\x18\r \x01(\r\x12\x16\n\x0e\x65levated_state\x18\x0e \x01(\r\x12\x1a\n\x12\x65levated_timestamp\x18\x0f \x01(\r\"r\n\x18\x43SOItemCriteriaCondition\x12\n\n\x02op\x18\x01 \x01(\x05\x12\r\n\x05\x66ield\x18\x02 \x01(\t\x12\x10\n\x08required\x18\x03 \x01(\x08\x12\x13\n\x0b\x66loat_value\x18\x04 \x01(\x02\x12\x14\n\x0cstring_value\x18\x05 \x01(\t\"\xb6\x02\n\x0f\x43SOItemCriteria\x12\x12\n\nitem_level\x18\x01 \x01(\r\x12\x14\n\x0citem_quality\x18\x02 \x01(\x05\x12\x16\n\x0eitem_level_set\x18\x03 \x01(\x08\x12\x18\n\x10item_quality_set\x18\x04 \x01(\x08\x12\x19\n\x11initial_inventory\x18\x05 \x01(\r\x12\x18\n\x10initial_quantity\x18\x06 \x01(\r\x12\x1b\n\x13ignore_enabled_flag\x18\x08 \x01(\x08\x12\x32\n\nconditions\x18\t \x03(\x0b\x32\x1e.csgo.CSOItemCriteriaCondition\x12\x13\n\x0bitem_rarity\x18\n \x01(\x05\x12\x17\n\x0fitem_rarity_set\x18\x0b \x01(\x08\x12\x13\n\x0brecent_only\x18\x0c \x01(\x08\"\xdf\x03\n\rCSOItemRecipe\x12\x11\n\tdef_index\x18\x01 \x01(\r\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x0b\n\x03n_a\x18\x03 \x01(\t\x12\x13\n\x0b\x64\x65sc_inputs\x18\x04 \x01(\t\x12\x14\n\x0c\x64\x65sc_outputs\x18\x05 \x01(\t\x12\x0c\n\x04\x64i_a\x18\x06 \x01(\t\x12\x0c\n\x04\x64i_b\x18\x07 \x01(\t\x12\x0c\n\x04\x64i_c\x18\x08 \x01(\t\x12\x0c\n\x04\x64o_a\x18\t \x01(\t\x12\x0c\n\x04\x64o_b\x18\n \x01(\t\x12\x0c\n\x04\x64o_c\x18\x0b \x01(\t\x12\x1f\n\x17requires_all_same_class\x18\x0c \x01(\x08\x12\x1e\n\x16requires_all_same_slot\x18\r \x01(\x08\x12\x1e\n\x16\x63lass_usage_for_output\x18\x0e \x01(\x05\x12\x1d\n\x15slot_usage_for_output\x18\x0f \x01(\x05\x12\x16\n\x0eset_for_output\x18\x10 \x01(\x05\x12\x33\n\x14input_items_criteria\x18\x14 \x03(\x0b\x32\x15.csgo.CSOItemCriteria\x12\x34\n\x15output_items_criteria\x18\x15 \x03(\x0b\x32\x15.csgo.CSOItemCriteria\x12\x1e\n\x16input_item_dupe_counts\x18\x16 \x03(\r\"R\n\x15\x43MsgDevNewItemRequest\x12\x10\n\x08receiver\x18\x01 \x01(\x06\x12\'\n\x08\x63riteria\x18\x02 \x01(\x0b\x32\x15.csgo.CSOItemCriteria\"\x8c\x01\n\x1f\x43MsgIncrementKillCountAttribute\x12\x19\n\x11killer_account_id\x18\x01 \x01(\x07\x12\x19\n\x11victim_account_id\x18\x02 \x01(\x07\x12\x0f\n\x07item_id\x18\x03 \x01(\x04\x12\x12\n\nevent_type\x18\x04 \x01(\r\x12\x0e\n\x06\x61mount\x18\x05 \x01(\r\"\x86\x01\n\x10\x43MsgApplySticker\x12\x17\n\x0fsticker_item_id\x18\x01 \x01(\x04\x12\x14\n\x0citem_item_id\x18\x02 \x01(\x04\x12\x14\n\x0csticker_slot\x18\x03 \x01(\r\x12\x17\n\x0f\x62\x61seitem_defidx\x18\x04 \x01(\r\x12\x14\n\x0csticker_wear\x18\x05 \x01(\x02\"S\n\x17\x43MsgModifyItemAttribute\x12\x0f\n\x07item_id\x18\x01 \x01(\x04\x12\x13\n\x0b\x61ttr_defidx\x18\x02 \x01(\r\x12\x12\n\nattr_value\x18\x03 \x01(\r\"]\n\x15\x43MsgApplyStatTrakSwap\x12\x14\n\x0ctool_item_id\x18\x01 \x01(\x04\x12\x16\n\x0eitem_1_item_id\x18\x02 \x01(\x04\x12\x16\n\x0eitem_2_item_id\x18\x03 \x01(\x04\"J\n\x14\x43MsgApplyStrangePart\x12\x1c\n\x14strange_part_item_id\x18\x01 \x01(\x04\x12\x14\n\x0citem_item_id\x18\x02 \x01(\x04\"K\n\x17\x43MsgApplyPennantUpgrade\x12\x17\n\x0fupgrade_item_id\x18\x01 \x01(\x04\x12\x17\n\x0fpennant_item_id\x18\x02 \x01(\x04\"C\n\x13\x43MsgApplyEggEssence\x12\x17\n\x0f\x65ssence_item_id\x18\x01 \x01(\x04\x12\x13\n\x0b\x65gg_item_id\x18\x02 \x01(\x04\"M\n\x14\x43SOEconItemAttribute\x12\x11\n\tdef_index\x18\x01 \x01(\r\x12\r\n\x05value\x18\x02 \x01(\r\x12\x13\n\x0bvalue_bytes\x18\x03 \x01(\x0c\":\n\x13\x43SOEconItemEquipped\x12\x11\n\tnew_class\x18\x01 \x01(\r\x12\x10\n\x08new_slot\x18\x02 \x01(\r\"\xae\x03\n\x0b\x43SOEconItem\x12\n\n\x02id\x18\x01 \x01(\x04\x12\x12\n\naccount_id\x18\x02 \x01(\r\x12\x11\n\tinventory\x18\x03 \x01(\r\x12\x11\n\tdef_index\x18\x04 \x01(\r\x12\x10\n\x08quantity\x18\x05 \x01(\r\x12\r\n\x05level\x18\x06 \x01(\r\x12\x0f\n\x07quality\x18\x07 \x01(\r\x12\x10\n\x05\x66lags\x18\x08 \x01(\r:\x01\x30\x12\x0e\n\x06origin\x18\t \x01(\r\x12\x13\n\x0b\x63ustom_name\x18\n \x01(\t\x12\x13\n\x0b\x63ustom_desc\x18\x0b \x01(\t\x12-\n\tattribute\x18\x0c \x03(\x0b\x32\x1a.csgo.CSOEconItemAttribute\x12(\n\rinterior_item\x18\r \x01(\x0b\x32\x11.csgo.CSOEconItem\x12\x15\n\x06in_use\x18\x0e \x01(\x08:\x05\x66\x61lse\x12\x10\n\x05style\x18\x0f \x01(\r:\x01\x30\x12\x16\n\x0boriginal_id\x18\x10 \x01(\x04:\x01\x30\x12\x31\n\x0e\x65quipped_state\x18\x12 \x03(\x0b\x32\x19.csgo.CSOEconItemEquipped\x12\x0e\n\x06rarity\x18\x13 \x01(\r\"a\n\x1b\x43MsgAdjustItemEquippedState\x12\x0f\n\x07item_id\x18\x01 \x01(\x04\x12\x11\n\tnew_class\x18\x02 \x01(\r\x12\x10\n\x08new_slot\x18\x03 \x01(\r\x12\x0c\n\x04swap\x18\x04 \x01(\x08\"^\n CMsgAdjustItemEquippedStateMulti\x12\x10\n\x08t_equips\x18\x01 \x03(\x04\x12\x11\n\tct_equips\x18\x02 \x03(\x04\x12\x15\n\rnoteam_equips\x18\x03 \x03(\x04\"\"\n\rCMsgSortItems\x12\x11\n\tsort_type\x18\x01 \x01(\r\"^\n\x10\x43SOEconClaimCode\x12\x12\n\naccount_id\x18\x01 \x01(\r\x12\x11\n\tcode_type\x18\x02 \x01(\r\x12\x15\n\rtime_acquired\x18\x03 \x01(\r\x12\x0c\n\x04\x63ode\x18\x04 \x01(\t\"E\n\x14\x43MsgStoreGetUserData\x12\x1b\n\x13price_sheet_version\x18\x01 \x01(\x07\x12\x10\n\x08\x63urrency\x18\x02 \x01(\x05\"\x99\x01\n\x1c\x43MsgStoreGetUserDataResponse\x12\x0e\n\x06result\x18\x01 \x01(\x05\x12\x1b\n\x13\x63urrency_deprecated\x18\x02 \x01(\x05\x12\x1a\n\x12\x63ountry_deprecated\x18\x03 \x01(\t\x12\x1b\n\x13price_sheet_version\x18\x04 \x01(\x07\x12\x13\n\x0bprice_sheet\x18\x08 \x01(\x0c\"\x86\x01\n\x14\x43MsgUpdateItemSchema\x12\x12\n\nitems_game\x18\x01 \x01(\x0c\x12\x1b\n\x13item_schema_version\x18\x02 \x01(\x07\x12%\n\x1ditems_game_url_DEPRECATED2013\x18\x03 \x01(\t\x12\x16\n\x0eitems_game_url\x18\x04 \x01(\t\"!\n\x0b\x43MsgGCError\x12\x12\n\nerror_text\x18\x01 \x01(\t\"\x1d\n\x1b\x43MsgRequestInventoryRefresh\".\n\x0f\x43MsgConVarValue\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t\">\n\x14\x43MsgReplicateConVars\x12&\n\x07\x63onvars\x18\x01 \x03(\x0b\x32\x15.csgo.CMsgConVarValue\"\x8e\x01\n\x0b\x43MsgUseItem\x12\x0f\n\x07item_id\x18\x01 \x01(\x04\x12\x17\n\x0ftarget_steam_id\x18\x02 \x01(\x06\x12\x1f\n\x17gift__potential_targets\x18\x03 \x03(\r\x12\x18\n\x10\x64uel__class_lock\x18\x04 \x01(\r\x12\x1a\n\x12initiator_steam_id\x18\x05 \x01(\x06\"d\n\x1b\x43MsgReplayUploadedToYouTube\x12\x13\n\x0byoutube_url\x18\x01 \x01(\t\x12\x1c\n\x14youtube_account_name\x18\x02 \x01(\t\x12\x12\n\nsession_id\x18\x03 \x01(\x04\".\n\x17\x43MsgConsumableExhausted\x12\x13\n\x0bitem_def_id\x18\x01 \x01(\x05\"\x9e\x01\n CMsgItemAcknowledged__DEPRECATED\x12\x12\n\naccount_id\x18\x01 \x01(\r\x12\x11\n\tinventory\x18\x02 \x01(\r\x12\x11\n\tdef_index\x18\x03 \x01(\r\x12\x0f\n\x07quality\x18\x04 \x01(\r\x12\x0e\n\x06rarity\x18\x05 \x01(\r\x12\x0e\n\x06origin\x18\x06 \x01(\r\x12\x0f\n\x07item_id\x18\x07 \x01(\x04\"\xa2\x01\n\x14\x43MsgSetItemPositions\x12?\n\x0eitem_positions\x18\x01 \x03(\x0b\x32\'.csgo.CMsgSetItemPositions.ItemPosition\x1aI\n\x0cItemPosition\x12\x16\n\x0elegacy_item_id\x18\x01 \x01(\r\x12\x10\n\x08position\x18\x02 \x01(\r\x12\x0f\n\x07item_id\x18\x03 \x01(\x04\"\xb8\x01\n\x11\x43MsgGCReportAbuse\x12\x17\n\x0ftarget_steam_id\x18\x01 \x01(\x06\x12\x13\n\x0b\x64\x65scription\x18\x04 \x01(\t\x12\x0b\n\x03gid\x18\x05 \x01(\x04\x12\x12\n\nabuse_type\x18\x02 \x01(\r\x12\x14\n\x0c\x63ontent_type\x18\x03 \x01(\r\x12\x1d\n\x15target_game_server_ip\x18\x06 \x01(\x07\x12\x1f\n\x17target_game_server_port\x18\x07 \x01(\r\"[\n\x19\x43MsgGCReportAbuseResponse\x12\x17\n\x0ftarget_steam_id\x18\x01 \x01(\x06\x12\x0e\n\x06result\x18\x02 \x01(\r\x12\x15\n\rerror_message\x18\x03 \x01(\t\"f\n\x1a\x43MsgGCNameItemNotification\x12\x16\n\x0eplayer_steamid\x18\x01 \x01(\x06\x12\x16\n\x0eitem_def_index\x18\x02 \x01(\r\x12\x18\n\x10item_name_custom\x18\x03 \x01(\t\"\xb6\x01\n\x1f\x43MsgGCClientDisplayNotification\x12+\n#notification_title_localization_key\x18\x01 \x01(\t\x12*\n\"notification_body_localization_key\x18\x02 \x01(\t\x12\x1b\n\x13\x62ody_substring_keys\x18\x03 \x03(\t\x12\x1d\n\x15\x62ody_substring_values\x18\x04 \x03(\t\"1\n\x17\x43MsgGCShowItemsPickedUp\x12\x16\n\x0eplayer_steamid\x18\x01 \x01(\x06\"|\n CMsgGCIncrementKillCountResponse\x12\x1f\n\x11killer_account_id\x18\x01 \x01(\rB\x04\x80\xa6\x1d\x01\x12\x11\n\tnum_kills\x18\x02 \x01(\r\x12\x10\n\x08item_def\x18\x03 \x01(\r\x12\x12\n\nlevel_type\x18\x04 \x01(\r\"\x8f\x01\n\x18\x43SOEconItemDropRateBonus\x12\x12\n\naccount_id\x18\x01 \x01(\r\x12\x17\n\x0f\x65xpiration_date\x18\x02 \x01(\x07\x12\r\n\x05\x62onus\x18\x03 \x01(\x02\x12\x13\n\x0b\x62onus_count\x18\x04 \x01(\r\x12\x0f\n\x07item_id\x18\x05 \x01(\x04\x12\x11\n\tdef_index\x18\x06 \x01(\r\"p\n\x19\x43SOEconItemLeagueViewPass\x12\x18\n\naccount_id\x18\x01 \x01(\rB\x04\x80\xa6\x1d\x01\x12\x17\n\tleague_id\x18\x02 \x01(\rB\x04\x80\xa6\x1d\x01\x12\r\n\x05\x61\x64min\x18\x03 \x01(\r\x12\x11\n\titemindex\x18\x04 \x01(\r\"O\n\x16\x43SOEconItemEventTicket\x12\x12\n\naccount_id\x18\x01 \x01(\r\x12\x10\n\x08\x65vent_id\x18\x02 \x01(\r\x12\x0f\n\x07item_id\x18\x03 \x01(\x04\"A\n\'CMsgGCItemPreviewItemBoughtNotification\x12\x16\n\x0eitem_def_index\x18\x01 \x01(\r\"+\n\x19\x43MsgGCStorePurchaseCancel\x12\x0e\n\x06txn_id\x18\x01 \x01(\x04\"3\n!CMsgGCStorePurchaseCancelResponse\x12\x0e\n\x06result\x18\x01 \x01(\r\"-\n\x1b\x43MsgGCStorePurchaseFinalize\x12\x0e\n\x06txn_id\x18\x01 \x01(\x04\"G\n#CMsgGCStorePurchaseFinalizeResponse\x12\x0e\n\x06result\x18\x01 \x01(\r\x12\x10\n\x08item_ids\x18\x02 \x03(\x04\"I\n\x1b\x43MsgGCBannedWordListRequest\x12\x19\n\x11\x62\x61n_list_group_id\x18\x01 \x01(\r\x12\x0f\n\x07word_id\x18\x02 \x01(\r\"\x1c\n\x1a\x43MsgGCRequestAnnouncements\"\x82\x01\n\"CMsgGCRequestAnnouncementsResponse\x12\x1a\n\x12\x61nnouncement_title\x18\x01 \x01(\t\x12\x14\n\x0c\x61nnouncement\x18\x02 \x01(\t\x12\x17\n\x0fnextmatch_title\x18\x03 \x01(\t\x12\x11\n\tnextmatch\x18\x04 \x01(\t\"z\n\x10\x43MsgGCBannedWord\x12\x0f\n\x07word_id\x18\x01 \x01(\r\x12G\n\tword_type\x18\x02 \x01(\x0e\x32\x17.csgo.GC_BannedWordType:\x1bGC_BANNED_WORD_DISABLE_WORD\x12\x0c\n\x04word\x18\x03 \x01(\t\"d\n\x1c\x43MsgGCBannedWordListResponse\x12\x19\n\x11\x62\x61n_list_group_id\x18\x01 \x01(\r\x12)\n\tword_list\x18\x02 \x03(\x0b\x32\x16.csgo.CMsgGCBannedWord\"Z\n!CMsgGCToGCBannedWordListBroadcast\x12\x35\n\tbroadcast\x18\x01 \x01(\x0b\x32\".csgo.CMsgGCBannedWordListResponse\"3\n\x1f\x43MsgGCToGCBannedWordListUpdated\x12\x10\n\x08group_id\x18\x01 \x01(\r\"\x92\x01\n.CSOEconDefaultEquippedDefinitionInstanceClient\x12\x18\n\naccount_id\x18\x01 \x01(\rB\x04\x80\xa6\x1d\x01\x12\x17\n\x0fitem_definition\x18\x02 \x01(\r\x12\x16\n\x08\x63lass_id\x18\x03 \x01(\rB\x04\x80\xa6\x1d\x01\x12\x15\n\x07slot_id\x18\x04 \x01(\rB\x04\x80\xa6\x1d\x01\"?\n\x17\x43MsgGCToGCDirtySDOCache\x12\x10\n\x08sdo_type\x18\x01 \x01(\r\x12\x12\n\nkey_uint64\x18\x02 \x01(\x04\"G\n\x1f\x43MsgGCToGCDirtyMultipleSDOCache\x12\x10\n\x08sdo_type\x18\x01 \x01(\r\x12\x12\n\nkey_uint64\x18\x02 \x03(\x04\"H\n\x11\x43MsgGCCollectItem\x12\x1a\n\x12\x63ollection_item_id\x18\x01 \x01(\x04\x12\x17\n\x0fsubject_item_id\x18\x02 \x01(\x04\"\x14\n\x12\x43MsgSDONoMemcached\"/\n\x1b\x43MsgGCToGCUpdateSQLKeyValue\x12\x10\n\x08key_name\x18\x01 \x01(\t\"-\n\x19\x43MsgGCToGCIsTrustedServer\x12\x10\n\x08steam_id\x18\x01 \x01(\x06\"7\n!CMsgGCToGCIsTrustedServerResponse\x12\x12\n\nis_trusted\x18\x01 \x01(\x08\"8\n!CMsgGCToGCBroadcastConsoleCommand\x12\x13\n\x0b\x63on_command\x18\x01 \x01(\t\"4\n\x1a\x43MsgGCServerVersionUpdated\x12\x16\n\x0eserver_version\x18\x01 \x01(\r\"4\n\x1a\x43MsgGCClientVersionUpdated\x12\x16\n\x0e\x63lient_version\x18\x01 \x01(\r\" \n\x1e\x43MsgGCToGCWebAPIAccountChanged\"^\n\"CMsgGCToGCRequestPassportItemGrant\x12\x10\n\x08steam_id\x18\x01 \x01(\x06\x12\x11\n\tleague_id\x18\x02 \x01(\r\x12\x13\n\x0breward_flag\x18\x03 \x01(\x05\"\xed\x04\n\x12\x43MsgGameServerInfo\x12\x1d\n\x15server_public_ip_addr\x18\x01 \x01(\x07\x12\x1e\n\x16server_private_ip_addr\x18\x02 \x01(\x07\x12\x13\n\x0bserver_port\x18\x03 \x01(\r\x12\x16\n\x0eserver_tv_port\x18\x04 \x01(\r\x12\x12\n\nserver_key\x18\x05 \x01(\t\x12\x1a\n\x12server_hibernation\x18\x06 \x01(\x08\x12\x45\n\x0bserver_type\x18\x07 \x01(\x0e\x32#.csgo.CMsgGameServerInfo.ServerType:\x0bUNSPECIFIED\x12\x15\n\rserver_region\x18\x08 \x01(\r\x12\x16\n\x0eserver_loadavg\x18\t \x01(\x02\x12 \n\x18server_tv_broadcast_time\x18\n \x01(\x02\x12\x18\n\x10server_game_time\x18\x0b \x01(\x02\x12\'\n\x1fserver_relay_connected_steam_id\x18\x0c \x01(\x06\x12\x17\n\x0frelay_slots_max\x18\r \x01(\r\x12\x18\n\x10relays_connected\x18\x0e \x01(\x05\x12\x1f\n\x17relay_clients_connected\x18\x0f \x01(\x05\x12$\n\x1crelayed_game_server_steam_id\x18\x10 \x01(\x06\x12\x1a\n\x12parent_relay_count\x18\x11 \x01(\r\x12\x16\n\x0etv_secret_code\x18\x12 \x01(\x06\"2\n\nServerType\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x08\n\x04GAME\x10\x01\x12\t\n\x05PROXY\x10\x02*\xc7\x03\n\nEGCBaseMsg\x12\x1a\n\x15k_EMsgGCSystemMessage\x10\xa1\x1f\x12\x1d\n\x18k_EMsgGCReplicateConVars\x10\xa2\x1f\x12\x1a\n\x15k_EMsgGCConVarUpdated\x10\xa3\x1f\x12\x14\n\x0fk_EMsgGCInQueue\x10\xa8\x1f\x12\x1a\n\x15k_EMsgGCInviteToParty\x10\x95#\x12\x1e\n\x19k_EMsgGCInvitationCreated\x10\x96#\x12 \n\x1bk_EMsgGCPartyInviteResponse\x10\x97#\x12\x1a\n\x15k_EMsgGCKickFromParty\x10\x98#\x12\x17\n\x12k_EMsgGCLeaveParty\x10\x99#\x12\x1c\n\x17k_EMsgGCServerAvailable\x10\x9a#\x12\"\n\x1dk_EMsgGCClientConnectToServer\x10\x9b#\x12\x1b\n\x16k_EMsgGCGameServerInfo\x10\x9c#\x12\x12\n\rk_EMsgGCError\x10\x9d#\x12%\n k_EMsgGCReplay_UploadedToYouTube\x10\x9e#\x12\x1f\n\x1ak_EMsgGCLANServerAvailable\x10\x9f#*Y\n\x17\x45GCBaseProtoObjectTypes\x12\x1e\n\x19k_EProtoObjectPartyInvite\x10\xe9\x07\x12\x1e\n\x19k_EProtoObjectLobbyInvite\x10\xea\x07*T\n\x11GC_BannedWordType\x12\x1f\n\x1bGC_BANNED_WORD_DISABLE_WORD\x10\x00\x12\x1e\n\x1aGC_BANNED_WORD_ENABLE_WORD\x10\x01\x42\x05H\x01\x90\x01\x00')
  ,
  dependencies=[steammessages__pb2.DESCRIPTOR,])

_EGCBASEMSG = _descriptor.EnumDescriptor(
  name='EGCBaseMsg',
  full_name='csgo.EGCBaseMsg',
  filename=None,
  file=DESCRIPTOR,
  values=[
    _descriptor.EnumValueDescriptor(
      name='k_EMsgGCSystemMessage', index=0, number=4001,
      serialized_options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='k_EMsgGCReplicateConVars', index=1, number=4002,
      serialized_options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='k_EMsgGCConVarUpdated', index=2, number=4003,
      serialized_options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='k_EMsgGCInQueue', index=3, number=4008,
      serialized_options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='k_EMsgGCInviteToParty', index=4, number=4501,
      serialized_options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='k_EMsgGCInvitationCreated', index=5, number=4502,
      serialized_options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='k_EMsgGCPartyInviteResponse', index=6, number=4503,
      serialized_options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='k_EMsgGCKickFromParty', index=7, number=4504,
      serialized_options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='k_EMsgGCLeaveParty', index=8, number=4505,
      serialized_options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='k_EMsgGCServerAvailable', index=9, number=4506,
      serialized_options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='k_EMsgGCClientConnectToServer', index=10, number=4507,
      serialized_options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='k_EMsgGCGameServerInfo', index=11, number=4508,
      serialized_options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='k_EMsgGCError', index=12, number=4509,
      serialized_options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='k_EMsgGCReplay_UploadedToYouTube', index=13, number=4510,
      serialized_options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='k_EMsgGCLANServerAvailable', index=14, number=4511,
      serialized_options=None,
      type=None),
  ],
  containing_type=None,
  serialized_options=None,
  serialized_start=8354,
  serialized_end=8809,
)
_sym_db.RegisterEnumDescriptor(_EGCBASEMSG)

EGCBaseMsg = enum_type_wrapper.EnumTypeWrapper(_EGCBASEMSG)
_EGCBASEPROTOOBJECTTYPES = _descriptor.EnumDescriptor(
  name='EGCBaseProtoObjectTypes',
  full_name='csgo.EGCBaseProtoObjectTypes',
  filename=None,
  file=DESCRIPTOR,
  values=[
    _descriptor.EnumValueDescriptor(
      name='k_EProtoObjectPartyInvite', index=0, number=1001,
      serialized_options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='k_EProtoObjectLobbyInvite', index=1, number=1002,
      serialized_options=None,
      type=None),
  ],
  containing_type=None,
  serialized_options=None,
  serialized_start=8811,
  serialized_end=8900,
)
_sym_db.RegisterEnumDescriptor(_EGCBASEPROTOOBJECTTYPES)

EGCBaseProtoObjectTypes = enum_type_wrapper.EnumTypeWrapper(_EGCBASEPROTOOBJECTTYPES)
_GC_BANNEDWORDTYPE = _descriptor.EnumDescriptor(
  name='GC_BannedWordType',
  full_name='csgo.GC_BannedWordType',
  filename=None,
  file=DESCRIPTOR,
  values=[
    _descriptor.EnumValueDescriptor(
      name='GC_BANNED_WORD_DISABLE_WORD', index=0, number=0,
      serialized_options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='GC_BANNED_WORD_ENABLE_WORD', index=1, number=1,
      serialized_options=None,
      type=None),
  ],
  containing_type=None,
  serialized_options=None,
  serialized_start=8902,
  serialized_end=8986,
)
_sym_db.RegisterEnumDescriptor(_GC_BANNEDWORDTYPE)

GC_BannedWordType = enum_type_wrapper.EnumTypeWrapper(_GC_BANNEDWORDTYPE)
k_EMsgGCSystemMessage = 4001
k_EMsgGCReplicateConVars = 4002
k_EMsgGCConVarUpdated = 4003
k_EMsgGCInQueue = 4008
k_EMsgGCInviteToParty = 4501
k_EMsgGCInvitationCreated = 4502
k_EMsgGCPartyInviteResponse = 4503
k_EMsgGCKickFromParty = 4504
k_EMsgGCLeaveParty = 4505
k_EMsgGCServerAvailable = 4506
k_EMsgGCClientConnectToServer = 4507
k_EMsgGCGameServerInfo = 4508
k_EMsgGCError = 4509
k_EMsgGCReplay_UploadedToYouTube = 4510
k_EMsgGCLANServerAvailable = 4511
k_EProtoObjectPartyInvite = 1001
k_EProtoObjectLobbyInvite = 1002
GC_BANNED_WORD_DISABLE_WORD = 0
GC_BANNED_WORD_ENABLE_WORD = 1


_CMSGGAMESERVERINFO_SERVERTYPE = _descriptor.EnumDescriptor(
  name='ServerType',
  full_name='csgo.CMsgGameServerInfo.ServerType',
  filename=None,
  file=DESCRIPTOR,
  values=[
    _descriptor.EnumValueDescriptor(
      name='UNSPECIFIED', index=0, number=0,
      serialized_options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='GAME', index=1, number=1,
      serialized_options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='PROXY', index=2, number=2,
      serialized_options=None,
      type=None),
  ],
  containing_type=None,
  serialized_options=None,
  serialized_start=8301,
  serialized_end=8351,
)
_sym_db.RegisterEnumDescriptor(_CMSGGAMESERVERINFO_SERVERTYPE)


_CGCSTOREPURCHASEINIT_LINEITEM = _descriptor.Descriptor(
  name='CGCStorePurchaseInit_LineItem',
  full_name='csgo.CGCStorePurchaseInit_LineItem',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='item_def_id', full_name='csgo.CGCStorePurchaseInit_LineItem.item_def_id', index=0,
      number=1, type=13, cpp_type=3, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='quantity', full_name='csgo.CGCStorePurchaseInit_LineItem.quantity', index=1,
      number=2, type=13, cpp_type=3, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='cost_in_local_currency', full_name='csgo.CGCStorePurchaseInit_LineItem.cost_in_local_currency', index=2,
      number=3, type=13, cpp_type=3, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='purchase_type', full_name='csgo.CGCStorePurchaseInit_LineItem.purchase_type', index=3,
      number=4, type=13, cpp_type=3, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=52,
  serialized_end=177,
)


_CMSGGCSTOREPURCHASEINIT = _descriptor.Descriptor(
  name='CMsgGCStorePurchaseInit',
  full_name='csgo.CMsgGCStorePurchaseInit',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='country', full_name='csgo.CMsgGCStorePurchaseInit.country', index=0,
      number=1, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='language', full_name='csgo.CMsgGCStorePurchaseInit.language', index=1,
      number=2, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='currency', full_name='csgo.CMsgGCStorePurchaseInit.currency', index=2,
      number=3, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='line_items', full_name='csgo.CMsgGCStorePurchaseInit.line_items', index=3,
      number=4, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=180,
  serialized_end=315,
)


_CMSGGCSTOREPURCHASEINITRESPONSE = _descriptor.Descriptor(
  name='CMsgGCStorePurchaseInitResponse',
  full_name='csgo.CMsgGCStorePurchaseInitResponse',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='result', full_name='csgo.CMsgGCStorePurchaseInitResponse.result', index=0,
      number=1, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='txn_id', full_name='csgo.CMsgGCStorePurchaseInitResponse.txn_id', index=1,
      number=2, type=4, cpp_type=4, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='url', full_name='csgo.CMsgGCStorePurchaseInitResponse.url', index=2,
      number=3, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='item_ids', full_name='csgo.CMsgGCStorePurchaseInitResponse.item_ids', index=3,
      number=4, type=4, cpp_type=4, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=317,
  serialized_end=413,
)


_CSOPARTYINVITE = _descriptor.Descriptor(
  name='CSOPartyInvite',
  full_name='csgo.CSOPartyInvite',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='group_id', full_name='csgo.CSOPartyInvite.group_id', index=0,
      number=1, type=4, cpp_type=4, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=_b('\200\246\035\001'), file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='sender_id', full_name='csgo.CSOPartyInvite.sender_id', index=1,
      number=2, type=6, cpp_type=4, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='sender_name', full_name='csgo.CSOPartyInvite.sender_name', index=2,
      number=3, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=415,
  serialized_end=495,
)


_CSOLOBBYINVITE = _descriptor.Descriptor(
  name='CSOLobbyInvite',
  full_name='csgo.CSOLobbyInvite',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='group_id', full_name='csgo.CSOLobbyInvite.group_id', index=0,
      number=1, type=4, cpp_type=4, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=_b('\200\246\035\001'), file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='sender_id', full_name='csgo.CSOLobbyInvite.sender_id', index=1,
      number=2, type=6, cpp_type=4, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='sender_name', full_name='csgo.CSOLobbyInvite.sender_name', index=2,
      number=3, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=497,
  serialized_end=577,
)


_CMSGSYSTEMBROADCAST = _descriptor.Descriptor(
  name='CMsgSystemBroadcast',
  full_name='csgo.CMsgSystemBroadcast',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='message', full_name='csgo.CMsgSystemBroadcast.message', index=0,
      number=1, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=579,
  serialized_end=617,
)


_CMSGINVITETOPARTY = _descriptor.Descriptor(
  name='CMsgInviteToParty',
  full_name='csgo.CMsgInviteToParty',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='steam_id', full_name='csgo.CMsgInviteToParty.steam_id', index=0,
      number=1, type=6, cpp_type=4, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='client_version', full_name='csgo.CMsgInviteToParty.client_version', index=1,
      number=2, type=13, cpp_type=3, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='team_invite', full_name='csgo.CMsgInviteToParty.team_invite', index=2,
      number=3, type=13, cpp_type=3, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=619,
  serialized_end=701,
)


_CMSGINVITATIONCREATED = _descriptor.Descriptor(
  name='CMsgInvitationCreated',
  full_name='csgo.CMsgInvitationCreated',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='group_id', full_name='csgo.CMsgInvitationCreated.group_id', index=0,
      number=1, type=4, cpp_type=4, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='steam_id', full_name='csgo.CMsgInvitationCreated.steam_id', index=1,
      number=2, type=6, cpp_type=4, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=703,
  serialized_end=762,
)


_CMSGPARTYINVITERESPONSE = _descriptor.Descriptor(
  name='CMsgPartyInviteResponse',
  full_name='csgo.CMsgPartyInviteResponse',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='party_id', full_name='csgo.CMsgPartyInviteResponse.party_id', index=0,
      number=1, type=4, cpp_type=4, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='accept', full_name='csgo.CMsgPartyInviteResponse.accept', index=1,
      number=2, type=8, cpp_type=7, label=1,
      has_default_value=False, default_value=False,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='client_version', full_name='csgo.CMsgPartyInviteResponse.client_version', index=2,
      number=3, type=13, cpp_type=3, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='team_invite', full_name='csgo.CMsgPartyInviteResponse.team_invite', index=3,
      number=4, type=13, cpp_type=3, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=764,
  serialized_end=868,
)


_CMSGKICKFROMPARTY = _descriptor.Descriptor(
  name='CMsgKickFromParty',
  full_name='csgo.CMsgKickFromParty',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='steam_id', full_name='csgo.CMsgKickFromParty.steam_id', index=0,
      number=1, type=6, cpp_type=4, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=870,
  serialized_end=907,
)


_CMSGLEAVEPARTY = _descriptor.Descriptor(
  name='CMsgLeaveParty',
  full_name='csgo.CMsgLeaveParty',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=909,
  serialized_end=925,
)


_CMSGSERVERAVAILABLE = _descriptor.Descriptor(
  name='CMsgServerAvailable',
  full_name='csgo.CMsgServerAvailable',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=927,
  serialized_end=948,
)


_CMSGLANSERVERAVAILABLE = _descriptor.Descriptor(
  name='CMsgLANServerAvailable',
  full_name='csgo.CMsgLANServerAvailable',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='lobby_id', full_name='csgo.CMsgLANServerAvailable.lobby_id', index=0,
      number=1, type=6, cpp_type=4, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=950,
  serialized_end=992,
)


_CSOECONGAMEACCOUNTCLIENT = _descriptor.Descriptor(
  name='CSOEconGameAccountClient',
  full_name='csgo.CSOEconGameAccountClient',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='additional_backpack_slots', full_name='csgo.CSOEconGameAccountClient.additional_backpack_slots', index=0,
      number=1, type=13, cpp_type=3, label=1,
      has_default_value=True, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='bonus_xp_timestamp_refresh', full_name='csgo.CSOEconGameAccountClient.bonus_xp_timestamp_refresh', index=1,
      number=12, type=7, cpp_type=3, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='bonus_xp_usedflags', full_name='csgo.CSOEconGameAccountClient.bonus_xp_usedflags', index=2,
      number=13, type=13, cpp_type=3, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='elevated_state', full_name='csgo.CSOEconGameAccountClient.elevated_state', index=3,
      number=14, type=13, cpp_type=3, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='elevated_timestamp', full_name='csgo.CSOEconGameAccountClient.elevated_timestamp', index=4,
      number=15, type=13, cpp_type=3, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=995,
  serialized_end=1175,
)


_CSOITEMCRITERIACONDITION = _descriptor.Descriptor(
  name='CSOItemCriteriaCondition',
  full_name='csgo.CSOItemCriteriaCondition',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='op', full_name='csgo.CSOItemCriteriaCondition.op', index=0,
      number=1, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='field', full_name='csgo.CSOItemCriteriaCondition.field', index=1,
      number=2, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='required', full_name='csgo.CSOItemCriteriaCondition.required', index=2,
      number=3, type=8, cpp_type=7, label=1,
      has_default_value=False, default_value=False,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='float_value', full_name='csgo.CSOItemCriteriaCondition.float_value', index=3,
      number=4, type=2, cpp_type=6, label=1,
      has_default_value=False, default_value=float(0),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='string_value', full_name='csgo.CSOItemCriteriaCondition.string_value', index=4,
      number=5, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1177,
  serialized_end=1291,
)


_CSOITEMCRITERIA = _descriptor.Descriptor(
  name='CSOItemCriteria',
  full_name='csgo.CSOItemCriteria',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='item_level', full_name='csgo.CSOItemCriteria.item_level', index=0,
      number=1, type=13, cpp_type=3, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='item_quality', full_name='csgo.CSOItemCriteria.item_quality', index=1,
      number=2, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='item_level_set', full_name='csgo.CSOItemCriteria.item_level_set', index=2,
      number=3, type=8, cpp_type=7, label=1,
      has_default_value=False, default_value=False,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='item_quality_set', full_name='csgo.CSOItemCriteria.item_quality_set', index=3,
      number=4, type=8, cpp_type=7, label=1,
      has_default_value=False, default_value=False,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='initial_inventory', full_name='csgo.CSOItemCriteria.initial_inventory', index=4,
      number=5, type=13, cpp_type=3, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='initial_quantity', full_name='csgo.CSOItemCriteria.initial_quantity', index=5,
      number=6, type=13, cpp_type=3, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='ignore_enabled_flag', full_name='csgo.CSOItemCriteria.ignore_enabled_flag', index=6,
      number=8, type=8, cpp_type=7, label=1,
      has_default_value=False, default_value=False,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='conditions', full_name='csgo.CSOItemCriteria.conditions', index=7,
      number=9, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='item_rarity', full_name='csgo.CSOItemCriteria.item_rarity', index=8,
      number=10, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='item_rarity_set', full_name='csgo.CSOItemCriteria.item_rarity_set', index=9,
      number=11, type=8, cpp_type=7, label=1,
      has_default_value=False, default_value=False,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='recent_only', full_name='csgo.CSOItemCriteria.recent_only', index=10,
      number=12, type=8, cpp_type=7, label=1,
      has_default_value=False, default_value=False,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1294,
  serialized_end=1604,
)


_CSOITEMRECIPE = _descriptor.Descriptor(
  name='CSOItemRecipe',
  full_name='csgo.CSOItemRecipe',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='def_index', full_name='csgo.CSOItemRecipe.def_index', index=0,
      number=1, type=13, cpp_type=3, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='name', full_name='csgo.CSOItemRecipe.name', index=1,
      number=2, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='n_a', full_name='csgo.CSOItemRecipe.n_a', index=2,
      number=3, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='desc_inputs', full_name='csgo.CSOItemRecipe.desc_inputs', index=3,
      number=4, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='desc_outputs', full_name='csgo.CSOItemRecipe.desc_outputs', index=4,
      number=5, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='di_a', full_name='csgo.CSOItemRecipe.di_a', index=5,
      number=6, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='di_b', full_name='csgo.CSOItemRecipe.di_b', index=6,
      number=7, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='di_c', full_name='csgo.CSOItemRecipe.di_c', index=7,
      number=8, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='do_a', full_name='csgo.CSOItemRecipe.do_a', index=8,
      number=9, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='do_b', full_name='csgo.CSOItemRecipe.do_b', index=9,
      number=10, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='do_c', full_name='csgo.CSOItemRecipe.do_c', index=10,
      number=11, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='requires_all_same_class', full_name='csgo.CSOItemRecipe.requires_all_same_class', index=11,
      number=12, type=8, cpp_type=7, label=1,
      has_default_value=False, default_value=False,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='requires_all_same_slot', full_name='csgo.CSOItemRecipe.requires_all_same_slot', index=12,
      number=13, type=8, cpp_type=7, label=1,
      has_default_value=False, default_value=False,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='class_usage_for_output', full_name='csgo.CSOItemRecipe.class_usage_for_output', index=13,
      number=14, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='slot_usage_for_output', full_name='csgo.CSOItemRecipe.slot_usage_for_output', index=14,
      number=15, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='set_for_output', full_name='csgo.CSOItemRecipe.set_for_output', index=15,
      number=16, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='input_items_criteria', full_name='csgo.CSOItemRecipe.input_items_criteria', index=16,
      number=20, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='output_items_criteria', full_name='csgo.CSOItemRecipe.output_items_criteria', index=17,
      number=21, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='input_item_dupe_counts', full_name='csgo.CSOItemRecipe.input_item_dupe_counts', index=18,
      number=22, type=13, cpp_type=3, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1607,
  serialized_end=2086,
)


_CMSGDEVNEWITEMREQUEST = _descriptor.Descriptor(
  name='CMsgDevNewItemRequest',
  full_name='csgo.CMsgDevNewItemRequest',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='receiver', full_name='csgo.CMsgDevNewItemRequest.receiver', index=0,
      number=1, type=6, cpp_type=4, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='criteria', full_name='csgo.CMsgDevNewItemRequest.criteria', index=1,
      number=2, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=2088,
  serialized_end=2170,
)


_CMSGINCREMENTKILLCOUNTATTRIBUTE = _descriptor.Descriptor(
  name='CMsgIncrementKillCountAttribute',
  full_name='csgo.CMsgIncrementKillCountAttribute',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='killer_account_id', full_name='csgo.CMsgIncrementKillCountAttribute.killer_account_id', index=0,
      number=1, type=7, cpp_type=3, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='victim_account_id', full_name='csgo.CMsgIncrementKillCountAttribute.victim_account_id', index=1,
      number=2, type=7, cpp_type=3, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='item_id', full_name='csgo.CMsgIncrementKillCountAttribute.item_id', index=2,
      number=3, type=4, cpp_type=4, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='event_type', full_name='csgo.CMsgIncrementKillCountAttribute.event_type', index=3,
      number=4, type=13, cpp_type=3, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='amount', full_name='csgo.CMsgIncrementKillCountAttribute.amount', index=4,
      number=5, type=13, cpp_type=3, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=2173,
  serialized_end=2313,
)


_CMSGAPPLYSTICKER = _descriptor.Descriptor(
  name='CMsgApplySticker',
  full_name='csgo.CMsgApplySticker',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='sticker_item_id', full_name='csgo.CMsgApplySticker.sticker_item_id', index=0,
      number=1, type=4, cpp_type=4, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='item_item_id', full_name='csgo.CMsgApplySticker.item_item_id', index=1,
      number=2, type=4, cpp_type=4, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='sticker_slot', full_name='csgo.CMsgApplySticker.sticker_slot', index=2,
      number=3, type=13, cpp_type=3, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='baseitem_defidx', full_name='csgo.CMsgApplySticker.baseitem_defidx', index=3,
      number=4, type=13, cpp_type=3, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='sticker_wear', full_name='csgo.CMsgApplySticker.sticker_wear', index=4,
      number=5, type=2, cpp_type=6, label=1,
      has_default_value=False, default_value=float(0),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=2316,
  serialized_end=2450,
)


_CMSGMODIFYITEMATTRIBUTE = _descriptor.Descriptor(
  name='CMsgModifyItemAttribute',
  full_name='csgo.CMsgModifyItemAttribute',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='item_id', full_name='csgo.CMsgModifyItemAttribute.item_id', index=0,
      number=1, type=4, cpp_type=4, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='attr_defidx', full_name='csgo.CMsgModifyItemAttribute.attr_defidx', index=1,
      number=2, type=13, cpp_type=3, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='attr_value', full_name='csgo.CMsgModifyItemAttribute.attr_value', index=2,
      number=3, type=13, cpp_type=3, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=2452,
  serialized_end=2535,
)


_CMSGAPPLYSTATTRAKSWAP = _descriptor.Descriptor(
  name='CMsgApplyStatTrakSwap',
  full_name='csgo.CMsgApplyStatTrakSwap',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='tool_item_id', full_name='csgo.CMsgApplyStatTrakSwap.tool_item_id', index=0,
      number=1, type=4, cpp_type=4, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='item_1_item_id', full_name='csgo.CMsgApplyStatTrakSwap.item_1_item_id', index=1,
      number=2, type=4, cpp_type=4, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='item_2_item_id', full_name='csgo.CMsgApplyStatTrakSwap.item_2_item_id', index=2,
      number=3, type=4, cpp_type=4, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=2537,
  serialized_end=2630,
)


_CMSGAPPLYSTRANGEPART = _descriptor.Descriptor(
  name='CMsgApplyStrangePart',
  full_name='csgo.CMsgApplyStrangePart',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='strange_part_item_id', full_name='csgo.CMsgApplyStrangePart.strange_part_item_id', index=0,
      number=1, type=4, cpp_type=4, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='item_item_id', full_name='csgo.CMsgApplyStrangePart.item_item_id', index=1,
      number=2, type=4, cpp_type=4, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=2632,
  serialized_end=2706,
)


_CMSGAPPLYPENNANTUPGRADE = _descriptor.Descriptor(
  name='CMsgApplyPennantUpgrade',
  full_name='csgo.CMsgApplyPennantUpgrade',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='upgrade_item_id', full_name='csgo.CMsgApplyPennantUpgrade.upgrade_item_id', index=0,
      number=1, type=4, cpp_type=4, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='pennant_item_id', full_name='csgo.CMsgApplyPennantUpgrade.pennant_item_id', index=1,
      number=2, type=4, cpp_type=4, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=2708,
  serialized_end=2783,
)


_CMSGAPPLYEGGESSENCE = _descriptor.Descriptor(
  name='CMsgApplyEggEssence',
  full_name='csgo.CMsgApplyEggEssence',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='essence_item_id', full_name='csgo.CMsgApplyEggEssence.essence_item_id', index=0,
      number=1, type=4, cpp_type=4, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='egg_item_id', full_name='csgo.CMsgApplyEggEssence.egg_item_id', index=1,
      number=2, type=4, cpp_type=4, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=2785,
  serialized_end=2852,
)


_CSOECONITEMATTRIBUTE = _descriptor.Descriptor(
  name='CSOEconItemAttribute',
  full_name='csgo.CSOEconItemAttribute',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='def_index', full_name='csgo.CSOEconItemAttribute.def_index', index=0,
      number=1, type=13, cpp_type=3, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='value', full_name='csgo.CSOEconItemAttribute.value', index=1,
      number=2, type=13, cpp_type=3, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='value_bytes', full_name='csgo.CSOEconItemAttribute.value_bytes', index=2,
      number=3, type=12, cpp_type=9, label=1,
      has_default_value=False, default_value=_b(""),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=2854,
  serialized_end=2931,
)


_CSOECONITEMEQUIPPED = _descriptor.Descriptor(
  name='CSOEconItemEquipped',
  full_name='csgo.CSOEconItemEquipped',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='new_class', full_name='csgo.CSOEconItemEquipped.new_class', index=0,
      number=1, type=13, cpp_type=3, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='new_slot', full_name='csgo.CSOEconItemEquipped.new_slot', index=1,
      number=2, type=13, cpp_type=3, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=2933,
  serialized_end=2991,
)


_CSOECONITEM = _descriptor.Descriptor(
  name='CSOEconItem',
  full_name='csgo.CSOEconItem',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='id', full_name='csgo.CSOEconItem.id', index=0,
      number=1, type=4, cpp_type=4, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='account_id', full_name='csgo.CSOEconItem.account_id', index=1,
      number=2, type=13, cpp_type=3, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='inventory', full_name='csgo.CSOEconItem.inventory', index=2,
      number=3, type=13, cpp_type=3, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='def_index', full_name='csgo.CSOEconItem.def_index', index=3,
      number=4, type=13, cpp_type=3, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='quantity', full_name='csgo.CSOEconItem.quantity', index=4,
      number=5, type=13, cpp_type=3, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='level', full_name='csgo.CSOEconItem.level', index=5,
      number=6, type=13, cpp_type=3, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='quality', full_name='csgo.CSOEconItem.quality', index=6,
      number=7, type=13, cpp_type=3, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='flags', full_name='csgo.CSOEconItem.flags', index=7,
      number=8, type=13, cpp_type=3, label=1,
      has_default_value=True, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='origin', full_name='csgo.CSOEconItem.origin', index=8,
      number=9, type=13, cpp_type=3, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='custom_name', full_name='csgo.CSOEconItem.custom_name', index=9,
      number=10, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='custom_desc', full_name='csgo.CSOEconItem.custom_desc', index=10,
      number=11, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='attribute', full_name='csgo.CSOEconItem.attribute', index=11,
      number=12, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='interior_item', full_name='csgo.CSOEconItem.interior_item', index=12,
      number=13, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='in_use', full_name='csgo.CSOEconItem.in_use', index=13,
      number=14, type=8, cpp_type=7, label=1,
      has_default_value=True, default_value=False,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='style', full_name='csgo.CSOEconItem.style', index=14,
      number=15, type=13, cpp_type=3, label=1,
      has_default_value=True, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='original_id', full_name='csgo.CSOEconItem.original_id', index=15,
      number=16, type=4, cpp_type=4, label=1,
      has_default_value=True, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='equipped_state', full_name='csgo.CSOEconItem.equipped_state', index=16,
      number=18, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='rarity', full_name='csgo.CSOEconItem.rarity', index=17,
      number=19, type=13, cpp_type=3, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=2994,
  serialized_end=3424,
)


_CMSGADJUSTITEMEQUIPPEDSTATE = _descriptor.Descriptor(
  name='CMsgAdjustItemEquippedState',
  full_name='csgo.CMsgAdjustItemEquippedState',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='item_id', full_name='csgo.CMsgAdjustItemEquippedState.item_id', index=0,
      number=1, type=4, cpp_type=4, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='new_class', full_name='csgo.CMsgAdjustItemEquippedState.new_class', index=1,
      number=2, type=13, cpp_type=3, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='new_slot', full_name='csgo.CMsgAdjustItemEquippedState.new_slot', index=2,
      number=3, type=13, cpp_type=3, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='swap', full_name='csgo.CMsgAdjustItemEquippedState.swap', index=3,
      number=4, type=8, cpp_type=7, label=1,
      has_default_value=False, default_value=False,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=3426,
  serialized_end=3523,
)


_CMSGADJUSTITEMEQUIPPEDSTATEMULTI = _descriptor.Descriptor(
  name='CMsgAdjustItemEquippedStateMulti',
  full_name='csgo.CMsgAdjustItemEquippedStateMulti',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='t_equips', full_name='csgo.CMsgAdjustItemEquippedStateMulti.t_equips', index=0,
      number=1, type=4, cpp_type=4, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='ct_equips', full_name='csgo.CMsgAdjustItemEquippedStateMulti.ct_equips', index=1,
      number=2, type=4, cpp_type=4, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='noteam_equips', full_name='csgo.CMsgAdjustItemEquippedStateMulti.noteam_equips', index=2,
      number=3, type=4, cpp_type=4, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=3525,
  serialized_end=3619,
)


_CMSGSORTITEMS = _descriptor.Descriptor(
  name='CMsgSortItems',
  full_name='csgo.CMsgSortItems',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='sort_type', full_name='csgo.CMsgSortItems.sort_type', index=0,
      number=1, type=13, cpp_type=3, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=3621,
  serialized_end=3655,
)


_CSOECONCLAIMCODE = _descriptor.Descriptor(
  name='CSOEconClaimCode',
  full_name='csgo.CSOEconClaimCode',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='account_id', full_name='csgo.CSOEconClaimCode.account_id', index=0,
      number=1, type=13, cpp_type=3, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='code_type', full_name='csgo.CSOEconClaimCode.code_type', index=1,
      number=2, type=13, cpp_type=3, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='time_acquired', full_name='csgo.CSOEconClaimCode.time_acquired', index=2,
      number=3, type=13, cpp_type=3, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='code', full_name='csgo.CSOEconClaimCode.code', index=3,
      number=4, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=3657,
  serialized_end=3751,
)


_CMSGSTOREGETUSERDATA = _descriptor.Descriptor(
  name='CMsgStoreGetUserData',
  full_name='csgo.CMsgStoreGetUserData',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='price_sheet_version', full_name='csgo.CMsgStoreGetUserData.price_sheet_version', index=0,
      number=1, type=7, cpp_type=3, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='currency', full_name='csgo.CMsgStoreGetUserData.currency', index=1,
      number=2, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=3753,
  serialized_end=3822,
)


_CMSGSTOREGETUSERDATARESPONSE = _descriptor.Descriptor(
  name='CMsgStoreGetUserDataResponse',
  full_name='csgo.CMsgStoreGetUserDataResponse',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='result', full_name='csgo.CMsgStoreGetUserDataResponse.result', index=0,
      number=1, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='currency_deprecated', full_name='csgo.CMsgStoreGetUserDataResponse.currency_deprecated', index=1,
      number=2, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='country_deprecated', full_name='csgo.CMsgStoreGetUserDataResponse.country_deprecated', index=2,
      number=3, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='price_sheet_version', full_name='csgo.CMsgStoreGetUserDataResponse.price_sheet_version', index=3,
      number=4, type=7, cpp_type=3, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='price_sheet', full_name='csgo.CMsgStoreGetUserDataResponse.price_sheet', index=4,
      number=8, type=12, cpp_type=9, label=1,
      has_default_value=False, default_value=_b(""),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=3825,
  serialized_end=3978,
)


_CMSGUPDATEITEMSCHEMA = _descriptor.Descriptor(
  name='CMsgUpdateItemSchema',
  full_name='csgo.CMsgUpdateItemSchema',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='items_game', full_name='csgo.CMsgUpdateItemSchema.items_game', index=0,
      number=1, type=12, cpp_type=9, label=1,
      has_default_value=False, default_value=_b(""),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='item_schema_version', full_name='csgo.CMsgUpdateItemSchema.item_schema_version', index=1,
      number=2, type=7, cpp_type=3, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='items_game_url_DEPRECATED2013', full_name='csgo.CMsgUpdateItemSchema.items_game_url_DEPRECATED2013', index=2,
      number=3, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='items_game_url', full_name='csgo.CMsgUpdateItemSchema.items_game_url', index=3,
      number=4, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=3981,
  serialized_end=4115,
)


_CMSGGCERROR = _descriptor.Descriptor(
  name='CMsgGCError',
  full_name='csgo.CMsgGCError',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='error_text', full_name='csgo.CMsgGCError.error_text', index=0,
      number=1, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=4117,
  serialized_end=4150,
)


_CMSGREQUESTINVENTORYREFRESH = _descriptor.Descriptor(
  name='CMsgRequestInventoryRefresh',
  full_name='csgo.CMsgRequestInventoryRefresh',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=4152,
  serialized_end=4181,
)


_CMSGCONVARVALUE = _descriptor.Descriptor(
  name='CMsgConVarValue',
  full_name='csgo.CMsgConVarValue',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='name', full_name='csgo.CMsgConVarValue.name', index=0,
      number=1, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='value', full_name='csgo.CMsgConVarValue.value', index=1,
      number=2, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=4183,
  serialized_end=4229,
)


_CMSGREPLICATECONVARS = _descriptor.Descriptor(
  name='CMsgReplicateConVars',
  full_name='csgo.CMsgReplicateConVars',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='convars', full_name='csgo.CMsgReplicateConVars.convars', index=0,
      number=1, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=4231,
  serialized_end=4293,
)


_CMSGUSEITEM = _descriptor.Descriptor(
  name='CMsgUseItem',
  full_name='csgo.CMsgUseItem',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='item_id', full_name='csgo.CMsgUseItem.item_id', index=0,
      number=1, type=4, cpp_type=4, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='target_steam_id', full_name='csgo.CMsgUseItem.target_steam_id', index=1,
      number=2, type=6, cpp_type=4, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='gift__potential_targets', full_name='csgo.CMsgUseItem.gift__potential_targets', index=2,
      number=3, type=13, cpp_type=3, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='duel__class_lock', full_name='csgo.CMsgUseItem.duel__class_lock', index=3,
      number=4, type=13, cpp_type=3, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='initiator_steam_id', full_name='csgo.CMsgUseItem.initiator_steam_id', index=4,
      number=5, type=6, cpp_type=4, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=4296,
  serialized_end=4438,
)


_CMSGREPLAYUPLOADEDTOYOUTUBE = _descriptor.Descriptor(
  name='CMsgReplayUploadedToYouTube',
  full_name='csgo.CMsgReplayUploadedToYouTube',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='youtube_url', full_name='csgo.CMsgReplayUploadedToYouTube.youtube_url', index=0,
      number=1, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='youtube_account_name', full_name='csgo.CMsgReplayUploadedToYouTube.youtube_account_name', index=1,
      number=2, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='session_id', full_name='csgo.CMsgReplayUploadedToYouTube.session_id', index=2,
      number=3, type=4, cpp_type=4, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=4440,
  serialized_end=4540,
)


_CMSGCONSUMABLEEXHAUSTED = _descriptor.Descriptor(
  name='CMsgConsumableExhausted',
  full_name='csgo.CMsgConsumableExhausted',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='item_def_id', full_name='csgo.CMsgConsumableExhausted.item_def_id', index=0,
      number=1, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=4542,
  serialized_end=4588,
)


_CMSGITEMACKNOWLEDGED__DEPRECATED = _descriptor.Descriptor(
  name='CMsgItemAcknowledged__DEPRECATED',
  full_name='csgo.CMsgItemAcknowledged__DEPRECATED',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='account_id', full_name='csgo.CMsgItemAcknowledged__DEPRECATED.account_id', index=0,
      number=1, type=13, cpp_type=3, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='inventory', full_name='csgo.CMsgItemAcknowledged__DEPRECATED.inventory', index=1,
      number=2, type=13, cpp_type=3, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='def_index', full_name='csgo.CMsgItemAcknowledged__DEPRECATED.def_index', index=2,
      number=3, type=13, cpp_type=3, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='quality', full_name='csgo.CMsgItemAcknowledged__DEPRECATED.quality', index=3,
      number=4, type=13, cpp_type=3, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='rarity', full_name='csgo.CMsgItemAcknowledged__DEPRECATED.rarity', index=4,
      number=5, type=13, cpp_type=3, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='origin', full_name='csgo.CMsgItemAcknowledged__DEPRECATED.origin', index=5,
      number=6, type=13, cpp_type=3, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='item_id', full_name='csgo.CMsgItemAcknowledged__DEPRECATED.item_id', index=6,
      number=7, type=4, cpp_type=4, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=4591,
  serialized_end=4749,
)


_CMSGSETITEMPOSITIONS_ITEMPOSITION = _descriptor.Descriptor(
  name='ItemPosition',
  full_name='csgo.CMsgSetItemPositions.ItemPosition',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='legacy_item_id', full_name='csgo.CMsgSetItemPositions.ItemPosition.legacy_item_id', index=0,
      number=1, type=13, cpp_type=3, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='position', full_name='csgo.CMsgSetItemPositions.ItemPosition.position', index=1,
      number=2, type=13, cpp_type=3, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='item_id', full_name='csgo.CMsgSetItemPositions.ItemPosition.item_id', index=2,
      number=3, type=4, cpp_type=4, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=4841,
  serialized_end=4914,
)

_CMSGSETITEMPOSITIONS = _descriptor.Descriptor(
  name='CMsgSetItemPositions',
  full_name='csgo.CMsgSetItemPositions',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='item_positions', full_name='csgo.CMsgSetItemPositions.item_positions', index=0,
      number=1, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[_CMSGSETITEMPOSITIONS_ITEMPOSITION, ],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=4752,
  serialized_end=4914,
)


_CMSGGCREPORTABUSE = _descriptor.Descriptor(
  name='CMsgGCReportAbuse',
  full_name='csgo.CMsgGCReportAbuse',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='target_steam_id', full_name='csgo.CMsgGCReportAbuse.target_steam_id', index=0,
      number=1, type=6, cpp_type=4, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='description', full_name='csgo.CMsgGCReportAbuse.description', index=1,
      number=4, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='gid', full_name='csgo.CMsgGCReportAbuse.gid', index=2,
      number=5, type=4, cpp_type=4, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='abuse_type', full_name='csgo.CMsgGCReportAbuse.abuse_type', index=3,
      number=2, type=13, cpp_type=3, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='content_type', full_name='csgo.CMsgGCReportAbuse.content_type', index=4,
      number=3, type=13, cpp_type=3, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='target_game_server_ip', full_name='csgo.CMsgGCReportAbuse.target_game_server_ip', index=5,
      number=6, type=7, cpp_type=3, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='target_game_server_port', full_name='csgo.CMsgGCReportAbuse.target_game_server_port', index=6,
      number=7, type=13, cpp_type=3, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=4917,
  serialized_end=5101,
)


_CMSGGCREPORTABUSERESPONSE = _descriptor.Descriptor(
  name='CMsgGCReportAbuseResponse',
  full_name='csgo.CMsgGCReportAbuseResponse',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='target_steam_id', full_name='csgo.CMsgGCReportAbuseResponse.target_steam_id', index=0,
      number=1, type=6, cpp_type=4, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='result', full_name='csgo.CMsgGCReportAbuseResponse.result', index=1,
      number=2, type=13, cpp_type=3, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='error_message', full_name='csgo.CMsgGCReportAbuseResponse.error_message', index=2,
      number=3, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=5103,
  serialized_end=5194,
)


_CMSGGCNAMEITEMNOTIFICATION = _descriptor.Descriptor(
  name='CMsgGCNameItemNotification',
  full_name='csgo.CMsgGCNameItemNotification',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='player_steamid', full_name='csgo.CMsgGCNameItemNotification.player_steamid', index=0,
      number=1, type=6, cpp_type=4, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='item_def_index', full_name='csgo.CMsgGCNameItemNotification.item_def_index', index=1,
      number=2, type=13, cpp_type=3, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='item_name_custom', full_name='csgo.CMsgGCNameItemNotification.item_name_custom', index=2,
      number=3, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=5196,
  serialized_end=5298,
)


_CMSGGCCLIENTDISPLAYNOTIFICATION = _descriptor.Descriptor(
  name='CMsgGCClientDisplayNotification',
  full_name='csgo.CMsgGCClientDisplayNotification',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='notification_title_localization_key', full_name='csgo.CMsgGCClientDisplayNotification.notification_title_localization_key', index=0,
      number=1, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='notification_body_localization_key', full_name='csgo.CMsgGCClientDisplayNotification.notification_body_localization_key', index=1,
      number=2, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='body_substring_keys', full_name='csgo.CMsgGCClientDisplayNotification.body_substring_keys', index=2,
      number=3, type=9, cpp_type=9, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='body_substring_values', full_name='csgo.CMsgGCClientDisplayNotification.body_substring_values', index=3,
      number=4, type=9, cpp_type=9, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=5301,
  serialized_end=5483,
)


_CMSGGCSHOWITEMSPICKEDUP = _descriptor.Descriptor(
  name='CMsgGCShowItemsPickedUp',
  full_name='csgo.CMsgGCShowItemsPickedUp',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='player_steamid', full_name='csgo.CMsgGCShowItemsPickedUp.player_steamid', index=0,
      number=1, type=6, cpp_type=4, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=5485,
  serialized_end=5534,
)


_CMSGGCINCREMENTKILLCOUNTRESPONSE = _descriptor.Descriptor(
  name='CMsgGCIncrementKillCountResponse',
  full_name='csgo.CMsgGCIncrementKillCountResponse',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='killer_account_id', full_name='csgo.CMsgGCIncrementKillCountResponse.killer_account_id', index=0,
      number=1, type=13, cpp_type=3, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=_b('\200\246\035\001'), file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='num_kills', full_name='csgo.CMsgGCIncrementKillCountResponse.num_kills', index=1,
      number=2, type=13, cpp_type=3, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='item_def', full_name='csgo.CMsgGCIncrementKillCountResponse.item_def', index=2,
      number=3, type=13, cpp_type=3, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='level_type', full_name='csgo.CMsgGCIncrementKillCountResponse.level_type', index=3,
      number=4, type=13, cpp_type=3, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=5536,
  serialized_end=5660,
)


_CSOECONITEMDROPRATEBONUS = _descriptor.Descriptor(
  name='CSOEconItemDropRateBonus',
  full_name='csgo.CSOEconItemDropRateBonus',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='account_id', full_name='csgo.CSOEconItemDropRateBonus.account_id', index=0,
      number=1, type=13, cpp_type=3, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='expiration_date', full_name='csgo.CSOEconItemDropRateBonus.expiration_date', index=1,
      number=2, type=7, cpp_type=3, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='bonus', full_name='csgo.CSOEconItemDropRateBonus.bonus', index=2,
      number=3, type=2, cpp_type=6, label=1,
      has_default_value=False, default_value=float(0),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='bonus_count', full_name='csgo.CSOEconItemDropRateBonus.bonus_count', index=3,
      number=4, type=13, cpp_type=3, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='item_id', full_name='csgo.CSOEconItemDropRateBonus.item_id', index=4,
      number=5, type=4, cpp_type=4, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='def_index', full_name='csgo.CSOEconItemDropRateBonus.def_index', index=5,
      number=6, type=13, cpp_type=3, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=5663,
  serialized_end=5806,
)


_CSOECONITEMLEAGUEVIEWPASS = _descriptor.Descriptor(
  name='CSOEconItemLeagueViewPass',
  full_name='csgo.CSOEconItemLeagueViewPass',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='account_id', full_name='csgo.CSOEconItemLeagueViewPass.account_id', index=0,
      number=1, type=13, cpp_type=3, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=_b('\200\246\035\001'), file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='league_id', full_name='csgo.CSOEconItemLeagueViewPass.league_id', index=1,
      number=2, type=13, cpp_type=3, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=_b('\200\246\035\001'), file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='admin', full_name='csgo.CSOEconItemLeagueViewPass.admin', index=2,
      number=3, type=13, cpp_type=3, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='itemindex', full_name='csgo.CSOEconItemLeagueViewPass.itemindex', index=3,
      number=4, type=13, cpp_type=3, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=5808,
  serialized_end=5920,
)


_CSOECONITEMEVENTTICKET = _descriptor.Descriptor(
  name='CSOEconItemEventTicket',
  full_name='csgo.CSOEconItemEventTicket',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='account_id', full_name='csgo.CSOEconItemEventTicket.account_id', index=0,
      number=1, type=13, cpp_type=3, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='event_id', full_name='csgo.CSOEconItemEventTicket.event_id', index=1,
      number=2, type=13, cpp_type=3, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='item_id', full_name='csgo.CSOEconItemEventTicket.item_id', index=2,
      number=3, type=4, cpp_type=4, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=5922,
  serialized_end=6001,
)


_CMSGGCITEMPREVIEWITEMBOUGHTNOTIFICATION = _descriptor.Descriptor(
  name='CMsgGCItemPreviewItemBoughtNotification',
  full_name='csgo.CMsgGCItemPreviewItemBoughtNotification',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='item_def_index', full_name='csgo.CMsgGCItemPreviewItemBoughtNotification.item_def_index', index=0,
      number=1, type=13, cpp_type=3, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=6003,
  serialized_end=6068,
)


_CMSGGCSTOREPURCHASECANCEL = _descriptor.Descriptor(
  name='CMsgGCStorePurchaseCancel',
  full_name='csgo.CMsgGCStorePurchaseCancel',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='txn_id', full_name='csgo.CMsgGCStorePurchaseCancel.txn_id', index=0,
      number=1, type=4, cpp_type=4, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=6070,
  serialized_end=6113,
)


_CMSGGCSTOREPURCHASECANCELRESPONSE = _descriptor.Descriptor(
  name='CMsgGCStorePurchaseCancelResponse',
  full_name='csgo.CMsgGCStorePurchaseCancelResponse',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='result', full_name='csgo.CMsgGCStorePurchaseCancelResponse.result', index=0,
      number=1, type=13, cpp_type=3, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=6115,
  serialized_end=6166,
)


_CMSGGCSTOREPURCHASEFINALIZE = _descriptor.Descriptor(
  name='CMsgGCStorePurchaseFinalize',
  full_name='csgo.CMsgGCStorePurchaseFinalize',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='txn_id', full_name='csgo.CMsgGCStorePurchaseFinalize.txn_id', index=0,
      number=1, type=4, cpp_type=4, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=6168,
  serialized_end=6213,
)


_CMSGGCSTOREPURCHASEFINALIZERESPONSE = _descriptor.Descriptor(
  name='CMsgGCStorePurchaseFinalizeResponse',
  full_name='csgo.CMsgGCStorePurchaseFinalizeResponse',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='result', full_name='csgo.CMsgGCStorePurchaseFinalizeResponse.result', index=0,
      number=1, type=13, cpp_type=3, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='item_ids', full_name='csgo.CMsgGCStorePurchaseFinalizeResponse.item_ids', index=1,
      number=2, type=4, cpp_type=4, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=6215,
  serialized_end=6286,
)


_CMSGGCBANNEDWORDLISTREQUEST = _descriptor.Descriptor(
  name='CMsgGCBannedWordListRequest',
  full_name='csgo.CMsgGCBannedWordListRequest',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='ban_list_group_id', full_name='csgo.CMsgGCBannedWordListRequest.ban_list_group_id', index=0,
      number=1, type=13, cpp_type=3, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='word_id', full_name='csgo.CMsgGCBannedWordListRequest.word_id', index=1,
      number=2, type=13, cpp_type=3, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=6288,
  serialized_end=6361,
)


_CMSGGCREQUESTANNOUNCEMENTS = _descriptor.Descriptor(
  name='CMsgGCRequestAnnouncements',
  full_name='csgo.CMsgGCRequestAnnouncements',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=6363,
  serialized_end=6391,
)


_CMSGGCREQUESTANNOUNCEMENTSRESPONSE = _descriptor.Descriptor(
  name='CMsgGCRequestAnnouncementsResponse',
  full_name='csgo.CMsgGCRequestAnnouncementsResponse',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='announcement_title', full_name='csgo.CMsgGCRequestAnnouncementsResponse.announcement_title', index=0,
      number=1, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='announcement', full_name='csgo.CMsgGCRequestAnnouncementsResponse.announcement', index=1,
      number=2, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='nextmatch_title', full_name='csgo.CMsgGCRequestAnnouncementsResponse.nextmatch_title', index=2,
      number=3, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='nextmatch', full_name='csgo.CMsgGCRequestAnnouncementsResponse.nextmatch', index=3,
      number=4, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=6394,
  serialized_end=6524,
)


_CMSGGCBANNEDWORD = _descriptor.Descriptor(
  name='CMsgGCBannedWord',
  full_name='csgo.CMsgGCBannedWord',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='word_id', full_name='csgo.CMsgGCBannedWord.word_id', index=0,
      number=1, type=13, cpp_type=3, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='word_type', full_name='csgo.CMsgGCBannedWord.word_type', index=1,
      number=2, type=14, cpp_type=8, label=1,
      has_default_value=True, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='word', full_name='csgo.CMsgGCBannedWord.word', index=2,
      number=3, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=6526,
  serialized_end=6648,
)


_CMSGGCBANNEDWORDLISTRESPONSE = _descriptor.Descriptor(
  name='CMsgGCBannedWordListResponse',
  full_name='csgo.CMsgGCBannedWordListResponse',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='ban_list_group_id', full_name='csgo.CMsgGCBannedWordListResponse.ban_list_group_id', index=0,
      number=1, type=13, cpp_type=3, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='word_list', full_name='csgo.CMsgGCBannedWordListResponse.word_list', index=1,
      number=2, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=6650,
  serialized_end=6750,
)


_CMSGGCTOGCBANNEDWORDLISTBROADCAST = _descriptor.Descriptor(
  name='CMsgGCToGCBannedWordListBroadcast',
  full_name='csgo.CMsgGCToGCBannedWordListBroadcast',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='broadcast', full_name='csgo.CMsgGCToGCBannedWordListBroadcast.broadcast', index=0,
      number=1, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=6752,
  serialized_end=6842,
)


_CMSGGCTOGCBANNEDWORDLISTUPDATED = _descriptor.Descriptor(
  name='CMsgGCToGCBannedWordListUpdated',
  full_name='csgo.CMsgGCToGCBannedWordListUpdated',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='group_id', full_name='csgo.CMsgGCToGCBannedWordListUpdated.group_id', index=0,
      number=1, type=13, cpp_type=3, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=6844,
  serialized_end=6895,
)


_CSOECONDEFAULTEQUIPPEDDEFINITIONINSTANCECLIENT = _descriptor.Descriptor(
  name='CSOEconDefaultEquippedDefinitionInstanceClient',
  full_name='csgo.CSOEconDefaultEquippedDefinitionInstanceClient',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='account_id', full_name='csgo.CSOEconDefaultEquippedDefinitionInstanceClient.account_id', index=0,
      number=1, type=13, cpp_type=3, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=_b('\200\246\035\001'), file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='item_definition', full_name='csgo.CSOEconDefaultEquippedDefinitionInstanceClient.item_definition', index=1,
      number=2, type=13, cpp_type=3, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='class_id', full_name='csgo.CSOEconDefaultEquippedDefinitionInstanceClient.class_id', index=2,
      number=3, type=13, cpp_type=3, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=_b('\200\246\035\001'), file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='slot_id', full_name='csgo.CSOEconDefaultEquippedDefinitionInstanceClient.slot_id', index=3,
      number=4, type=13, cpp_type=3, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=_b('\200\246\035\001'), file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=6898,
  serialized_end=7044,
)


_CMSGGCTOGCDIRTYSDOCACHE = _descriptor.Descriptor(
  name='CMsgGCToGCDirtySDOCache',
  full_name='csgo.CMsgGCToGCDirtySDOCache',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='sdo_type', full_name='csgo.CMsgGCToGCDirtySDOCache.sdo_type', index=0,
      number=1, type=13, cpp_type=3, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='key_uint64', full_name='csgo.CMsgGCToGCDirtySDOCache.key_uint64', index=1,
      number=2, type=4, cpp_type=4, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=7046,
  serialized_end=7109,
)


_CMSGGCTOGCDIRTYMULTIPLESDOCACHE = _descriptor.Descriptor(
  name='CMsgGCToGCDirtyMultipleSDOCache',
  full_name='csgo.CMsgGCToGCDirtyMultipleSDOCache',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='sdo_type', full_name='csgo.CMsgGCToGCDirtyMultipleSDOCache.sdo_type', index=0,
      number=1, type=13, cpp_type=3, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='key_uint64', full_name='csgo.CMsgGCToGCDirtyMultipleSDOCache.key_uint64', index=1,
      number=2, type=4, cpp_type=4, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=7111,
  serialized_end=7182,
)


_CMSGGCCOLLECTITEM = _descriptor.Descriptor(
  name='CMsgGCCollectItem',
  full_name='csgo.CMsgGCCollectItem',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='collection_item_id', full_name='csgo.CMsgGCCollectItem.collection_item_id', index=0,
      number=1, type=4, cpp_type=4, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='subject_item_id', full_name='csgo.CMsgGCCollectItem.subject_item_id', index=1,
      number=2, type=4, cpp_type=4, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=7184,
  serialized_end=7256,
)


_CMSGSDONOMEMCACHED = _descriptor.Descriptor(
  name='CMsgSDONoMemcached',
  full_name='csgo.CMsgSDONoMemcached',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=7258,
  serialized_end=7278,
)


_CMSGGCTOGCUPDATESQLKEYVALUE = _descriptor.Descriptor(
  name='CMsgGCToGCUpdateSQLKeyValue',
  full_name='csgo.CMsgGCToGCUpdateSQLKeyValue',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='key_name', full_name='csgo.CMsgGCToGCUpdateSQLKeyValue.key_name', index=0,
      number=1, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=7280,
  serialized_end=7327,
)


_CMSGGCTOGCISTRUSTEDSERVER = _descriptor.Descriptor(
  name='CMsgGCToGCIsTrustedServer',
  full_name='csgo.CMsgGCToGCIsTrustedServer',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='steam_id', full_name='csgo.CMsgGCToGCIsTrustedServer.steam_id', index=0,
      number=1, type=6, cpp_type=4, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=7329,
  serialized_end=7374,
)


_CMSGGCTOGCISTRUSTEDSERVERRESPONSE = _descriptor.Descriptor(
  name='CMsgGCToGCIsTrustedServerResponse',
  full_name='csgo.CMsgGCToGCIsTrustedServerResponse',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='is_trusted', full_name='csgo.CMsgGCToGCIsTrustedServerResponse.is_trusted', index=0,
      number=1, type=8, cpp_type=7, label=1,
      has_default_value=False, default_value=False,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=7376,
  serialized_end=7431,
)


_CMSGGCTOGCBROADCASTCONSOLECOMMAND = _descriptor.Descriptor(
  name='CMsgGCToGCBroadcastConsoleCommand',
  full_name='csgo.CMsgGCToGCBroadcastConsoleCommand',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='con_command', full_name='csgo.CMsgGCToGCBroadcastConsoleCommand.con_command', index=0,
      number=1, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=7433,
  serialized_end=7489,
)


_CMSGGCSERVERVERSIONUPDATED = _descriptor.Descriptor(
  name='CMsgGCServerVersionUpdated',
  full_name='csgo.CMsgGCServerVersionUpdated',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='server_version', full_name='csgo.CMsgGCServerVersionUpdated.server_version', index=0,
      number=1, type=13, cpp_type=3, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=7491,
  serialized_end=7543,
)


_CMSGGCCLIENTVERSIONUPDATED = _descriptor.Descriptor(
  name='CMsgGCClientVersionUpdated',
  full_name='csgo.CMsgGCClientVersionUpdated',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='client_version', full_name='csgo.CMsgGCClientVersionUpdated.client_version', index=0,
      number=1, type=13, cpp_type=3, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scop
Download .txt
gitextract_tr2o_r6m/

├── .coveragerc
├── .gitignore
├── Makefile
├── README.rst
├── csgo/
│   ├── __init__.py
│   ├── client.py
│   ├── common_enums.py
│   ├── enums.py
│   ├── features/
│   │   ├── __init__.py
│   │   ├── items.py
│   │   ├── match.py
│   │   ├── player.py
│   │   └── sharedobjects.py
│   ├── msg.py
│   ├── proto_enums.py
│   ├── protobufs/
│   │   ├── __init__.py
│   │   ├── base_gcmessages_pb2.py
│   │   ├── cstrike15_gcmessages_pb2.py
│   │   ├── econ_gcmessages_pb2.py
│   │   ├── engine_gcmessages_pb2.py
│   │   ├── gcsdk_gcmessages_pb2.py
│   │   ├── gcsystemmsgs_pb2.py
│   │   └── steammessages_pb2.py
│   └── sharecode.py
├── docs/
│   ├── .gitignore
│   ├── Makefile
│   ├── conf.py
│   ├── csgo.client.rst
│   ├── csgo.enums.rst
│   ├── csgo.features.items.rst
│   ├── csgo.features.match.rst
│   ├── csgo.features.player.rst
│   ├── csgo.features.rst
│   ├── csgo.features.sharedobjects.rst
│   ├── csgo.msg.rst
│   ├── csgo.rst
│   ├── csgo.sharecode.rst
│   ├── index.rst
│   └── user_guide.rst
├── gen_enum_from_protos.py
├── protobuf_list.txt
├── protobufs/
│   ├── base_gcmessages.proto
│   ├── cstrike15_gcmessages.proto
│   ├── econ_gcmessages.proto
│   ├── engine_gcmessages.proto
│   ├── gcsdk_gcmessages.proto
│   ├── gcsystemmsgs.proto
│   ├── google/
│   │   └── protobuf/
│   │       └── descriptor.proto
│   └── steammessages.proto
├── requirements.txt
└── setup.py
Download .txt
SYMBOL INDEX (83 symbols across 10 files)

FILE: csgo/client.py
  class CSGOClient (line 20) | class CSGOClient(GameCoordinator, FeatureBase):
    method account_id (line 39) | def account_id(self):
    method steam_id (line 46) | def steam_id(self):
    method __init__ (line 52) | def __init__(self, steam_client):
    method __repr__ (line 65) | def __repr__(self):
    method _handle_play_sess_state (line 71) | def _handle_play_sess_state(self, message):
    method _handle_disconnect (line 75) | def _handle_disconnect(self):
    method _handle_client_welcome (line 81) | def _handle_client_welcome(self, message):
    method _handle_conn_status (line 95) | def _handle_conn_status(self, message):
    method _process_gc_message (line 98) | def _process_gc_message(self, emsg, header, payload):
    method _set_connection_status (line 122) | def _set_connection_status(self, status):
    method wait_msg (line 136) | def wait_msg(self, event, timeout=None, raises=None):
    method send_job (line 154) | def send_job(self, *args, **kwargs):
    method send (line 171) | def send(self, emsg, data={}, proto=None):
    method _send (line 182) | def _send(self, emsg, data={}, proto=None, jobid=None):
    method _knock_on_gc (line 216) | def _knock_on_gc(self):
    method launch (line 236) | def launch(self):
    method exit (line 251) | def exit(self):

FILE: csgo/common_enums.py
  class ESOType (line 3) | class ESOType(IntEnum):
  class EXPBonusFlag (line 16) | class EXPBonusFlag(IntEnum):

FILE: csgo/features/__init__.py
  class FeatureBase (line 6) | class FeatureBase(Match, Player, Items, SOBase):

FILE: csgo/features/items.py
  class Items (line 3) | class Items(object):
    method __init__ (line 4) | def __init__(self):
    method request_preview_data_block (line 10) | def request_preview_data_block(self, s, a, d, m):
    method __handle_preview_data_block (line 45) | def __handle_preview_data_block(self, message):

FILE: csgo/features/match.py
  class Match (line 3) | class Match(object):
    method __init__ (line 4) | def __init__(self):
    method request_matchmaking_stats (line 12) | def request_matchmaking_stats(self):
    method __handle_mmstats (line 24) | def __handle_mmstats(self, message):
    method request_current_live_games (line 27) | def request_current_live_games(self):
    method request_live_game_for_user (line 39) | def request_live_game_for_user(self, account_id):
    method request_full_match_info (line 59) | def request_full_match_info(self, matchid, outcomeid, token):
    method request_recent_user_games (line 81) | def request_recent_user_games(self, account_id):
    method __handle_match_list (line 97) | def __handle_match_list(self, message):
    method request_watch_info_friends (line 110) | def request_watch_info_friends(self, account_ids, request_id=1, server...
    method __handle_watch_info (line 134) | def __handle_watch_info(self, message):

FILE: csgo/features/player.py
  class Player (line 3) | class Player(object):
    method __init__ (line 93) | def __init__(self):
    method request_player_profile (line 99) | def request_player_profile(self, account_id, request_level=32):
    method __handle_player_profile (line 119) | def __handle_player_profile(self, message):

FILE: csgo/features/sharedobjects.py
  function find_so_proto (line 43) | def find_so_proto(type_id):
  class NO_KEY (line 60) | class NO_KEY:
  function get_so_key_fields (line 78) | def get_so_key_fields(desc):
  function get_key_for_object (line 92) | def get_key_for_object(obj):
  class SOBase (line 105) | class SOBase(object):
    method __init__ (line 106) | def __init__(self):
  class SOCache (line 114) | class SOCache(EventEmitter, dict):
    method __init__ (line 117) | def __init__(self, csgo_client, logger_name):
    method __hash__ (line 132) | def __hash__(self):
    method __getitem__ (line 137) | def __getitem__(self, key):
    method __repr__ (line 146) | def __repr__(self):
    method emit (line 149) | def emit(self, event, *args):
    method _handle_cleanup (line 154) | def _handle_cleanup(self):
    method _get_proto_for_type (line 161) | def _get_proto_for_type(self, type_id):
    method _parse_object_data (line 176) | def _parse_object_data(self, type_id, object_data):
    method _update_object (line 191) | def _update_object(self, type_id, object_data):
    method _handle_create (line 213) | def _handle_create(self, message):
    method _handle_update (line 219) | def _handle_update(self, message):
    method _handle_destroy (line 225) | def _handle_destroy(self, message):
    method _handle_update_multiple (line 241) | def _handle_update_multiple(self, message):
    method _handle_client_welcome (line 249) | def _handle_client_welcome(self, message):
    method _handle_cache_subscribed (line 253) | def _handle_cache_subscribed(self, message):
    method _handle_cache_unsubscribed (line 269) | def _handle_cache_unsubscribed(self, message):

FILE: csgo/msg.py
  function get_emsg_enum (line 13) | def get_emsg_enum(emsg):
  function find_proto (line 33) | def find_proto(emsg):

FILE: csgo/proto_enums.py
  class EClientReportingVersion (line 3) | class EClientReportingVersion(IntEnum):
  class ECommunityItemAttribute (line 8) | class ECommunityItemAttribute(IntEnum):
  class ECommunityItemClass (line 20) | class ECommunityItemClass(IntEnum):
  class ECsgoGCMsg (line 33) | class ECsgoGCMsg(IntEnum):
  class ECsgoSteamUserStat (line 130) | class ECsgoSteamUserStat(IntEnum):
  class EGCBaseClientMsg (line 135) | class EGCBaseClientMsg(IntEnum):
  class EGCItemCustomizationNotification (line 148) | class EGCItemCustomizationNotification(IntEnum):
  class EGCItemMsg (line 171) | class EGCItemMsg(IntEnum):
  class EGCMsgResponse (line 316) | class EGCMsgResponse(IntEnum):
  class EGCSystemMsg (line 329) | class EGCSystemMsg(IntEnum):
  class EGCToGCMsg (line 420) | class EGCToGCMsg(IntEnum):
  class ESOMsg (line 430) | class ESOMsg(IntEnum):
  class EUnlockStyle (line 440) | class EUnlockStyle(IntEnum):
  class GCClientLauncherType (line 448) | class GCClientLauncherType(IntEnum):
  class GCConnectionStatus (line 453) | class GCConnectionStatus(IntEnum):

FILE: csgo/sharecode.py
  function _swap_endianness (line 7) | def _swap_endianness(number):
  function decode (line 15) | def decode(code):
  function encode (line 48) | def encode(matchid, outcomeid, token):
Condensed preview — 51 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (1,421K chars).
[
  {
    "path": ".coveragerc",
    "chars": 56,
    "preview": "[run]\nconcurrency = gevent\nomit =\n    dota2/protobufs/*\n"
  },
  {
    "path": ".gitignore",
    "chars": 76,
    "preview": "dist\n*.egg-info\n*.pyc\n.coverage\n*.swp\n\ncsgo/protobufs/*.proto\ncredentials/*\n"
  },
  {
    "path": "Makefile",
    "chars": 1736,
    "preview": "define HELPBODY\nAvailable commands:\n\n\tmake help       - this thing.\n\n\tmake init       - install python dependancies\n\tmak"
  },
  {
    "path": "README.rst",
    "chars": 1770,
    "preview": "| |pypi| |license| |docs|\n| |sonar_maintainability| |sonar_reliability| |sonar_security|\n\nSupports Python ``2.7+`` and `"
  },
  {
    "path": "csgo/__init__.py",
    "chars": 79,
    "preview": "__version__ = \"1.0.0\"\n__author__ = \"Rossen Georgiev\"\n\nversion_info = (1, 0, 0)\n"
  },
  {
    "path": "csgo/client.py",
    "chars": 9351,
    "preview": "\"\"\"\nOnly the most essential features to :class:`csgo.client.CSGOClient` are found here. Every other feature is inherited"
  },
  {
    "path": "csgo/common_enums.py",
    "chars": 1013,
    "preview": "from enum import IntEnum\n\nclass ESOType(IntEnum):\n    CSOEconItem = 1\n    CSOPersonaDataPublic = 2\n    CSOItemRecipe = 5"
  },
  {
    "path": "csgo/enums.py",
    "chars": 64,
    "preview": "\nfrom csgo.common_enums import *\nfrom csgo.proto_enums import *\n"
  },
  {
    "path": "csgo/features/__init__.py",
    "chars": 377,
    "preview": "from csgo.features.match import Match\nfrom csgo.features.player import Player\nfrom csgo.features.items import Items\nfrom"
  },
  {
    "path": "csgo/features/items.py",
    "chars": 1832,
    "preview": "from csgo.enums import ECsgoGCMsg\n\nclass Items(object):\n    def __init__(self):\n        super(Items, self).__init__()\n\n "
  },
  {
    "path": "csgo/features/match.py",
    "chars": 5286,
    "preview": "from csgo.enums import ECsgoGCMsg\n\nclass Match(object):\n    def __init__(self):\n        super(Match, self).__init__()\n\n "
  },
  {
    "path": "csgo/features/player.py",
    "chars": 3636,
    "preview": "from csgo.enums import ECsgoGCMsg\n\nclass Player(object):\n    ranks_map = {\n        0: \"Not Ranked\",\n        1: \"Silver I"
  },
  {
    "path": "csgo/features/sharedobjects.py",
    "chars": 9690,
    "preview": "\"\"\"Essentially a :class:`dict` containing shared object caches.\nThe objects are read-only, so don't change any values.\nT"
  },
  {
    "path": "csgo/msg.py",
    "chars": 2400,
    "preview": "\"\"\"\nVarious utility function for dealing with messages.\n\n\"\"\"\n\nfrom csgo.enums import EGCBaseClientMsg, ECsgoGCMsg, EGCIt"
  },
  {
    "path": "csgo/proto_enums.py",
    "chars": 17318,
    "preview": "from enum import IntEnum\n\nclass EClientReportingVersion(IntEnum):\n    OldVersion = 0\n    BetaVersion = 1\n    SupportsTru"
  },
  {
    "path": "csgo/protobufs/__init__.py",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "csgo/protobufs/base_gcmessages_pb2.py",
    "chars": 188522,
    "preview": "# -*- coding: utf-8 -*-\n# Generated by the protocol buffer compiler.  DO NOT EDIT!\n# source: base_gcmessages.proto\n\nimpo"
  },
  {
    "path": "csgo/protobufs/cstrike15_gcmessages_pb2.py",
    "chars": 505104,
    "preview": "# -*- coding: utf-8 -*-\n# Generated by the protocol buffer compiler.  DO NOT EDIT!\n# source: cstrike15_gcmessages.proto\n"
  },
  {
    "path": "csgo/protobufs/econ_gcmessages_pb2.py",
    "chars": 57067,
    "preview": "# -*- coding: utf-8 -*-\n# Generated by the protocol buffer compiler.  DO NOT EDIT!\n# source: econ_gcmessages.proto\n\nimpo"
  },
  {
    "path": "csgo/protobufs/engine_gcmessages_pb2.py",
    "chars": 6067,
    "preview": "# -*- coding: utf-8 -*-\n# Generated by the protocol buffer compiler.  DO NOT EDIT!\n# source: engine_gcmessages.proto\n\nim"
  },
  {
    "path": "csgo/protobufs/gcsdk_gcmessages_pb2.py",
    "chars": 113382,
    "preview": "# -*- coding: utf-8 -*-\n# Generated by the protocol buffer compiler.  DO NOT EDIT!\n# source: gcsdk_gcmessages.proto\n\nimp"
  },
  {
    "path": "csgo/protobufs/gcsystemmsgs_pb2.py",
    "chars": 67067,
    "preview": "# -*- coding: utf-8 -*-\n# Generated by the protocol buffer compiler.  DO NOT EDIT!\n# source: gcsystemmsgs.proto\n\nimport "
  },
  {
    "path": "csgo/protobufs/steammessages_pb2.py",
    "chars": 214948,
    "preview": "# -*- coding: utf-8 -*-\n# Generated by the protocol buffer compiler.  DO NOT EDIT!\n# source: steammessages.proto\n\nimport"
  },
  {
    "path": "csgo/sharecode.py",
    "chars": 1685,
    "preview": "import re\n\ndictionary = \"ABCDEFGHJKLMNOPQRSTUVWXYZabcdefhijkmnopqrstuvwxyz23456789\"\n\n_bitmask64 = 2**64 - 1\n\ndef _swap_e"
  },
  {
    "path": "docs/.gitignore",
    "chars": 31,
    "preview": "_doc\n_build\n_static\n_templates\n"
  },
  {
    "path": "docs/Makefile",
    "chars": 7654,
    "preview": "# Makefile for Sphinx documentation\n#\n\n# You can set these variables from the command line.\nSPHINXOPTS    =\nSPHINXBUILD "
  },
  {
    "path": "docs/conf.py",
    "chars": 11727,
    "preview": "# -*- coding: utf-8 -*-\n#\n# csgo documentation build configuration file, created by\n# sphinx-quickstart on Mon Feb 15 03"
  },
  {
    "path": "docs/csgo.client.rst",
    "chars": 80,
    "preview": "client\n======\n\n.. automodule:: csgo.client\n    :members:\n    :show-inheritance:\n"
  },
  {
    "path": "docs/csgo.enums.rst",
    "chars": 197,
    "preview": "enums\n=====\n\n.. automodule:: csgo.common_enums\n    :members:\n    :undoc-members:\n    :inherited-members:\n\n.. automodule:"
  },
  {
    "path": "docs/csgo.features.items.rst",
    "chars": 106,
    "preview": "items\n=====\n\n.. automodule:: csgo.features.items\n    :members:\n    :undoc-members:\n    :show-inheritance:\n"
  },
  {
    "path": "docs/csgo.features.match.rst",
    "chars": 106,
    "preview": "match\n=====\n\n.. automodule:: csgo.features.match\n    :members:\n    :undoc-members:\n    :show-inheritance:\n"
  },
  {
    "path": "docs/csgo.features.player.rst",
    "chars": 109,
    "preview": "player\n======\n\n.. automodule:: csgo.features.player\n    :members:\n    :undoc-members:\n    :show-inheritance:\n"
  },
  {
    "path": "docs/csgo.features.rst",
    "chars": 217,
    "preview": "features\n========\n\nThis package contains all high level features of :class:`csgo.client.CSGOClient`.\n\n.. toctree::\n\n   c"
  },
  {
    "path": "docs/csgo.features.sharedobjects.rst",
    "chars": 130,
    "preview": "sharedobjects\n=============\n\n.. automodule:: csgo.features.sharedobjects\n    :members:\n    :undoc-members:\n    :show-inh"
  },
  {
    "path": "docs/csgo.msg.rst",
    "chars": 91,
    "preview": "msg\n===\n\n.. automodule:: csgo.msg\n    :members:\n    :undoc-members:\n    :show-inheritance:\n"
  },
  {
    "path": "docs/csgo.rst",
    "chars": 176,
    "preview": "csgo API\n=========\n\nDocumentation related to various APIs available in this package.\n\n.. toctree::\n\n   csgo.msg\n   csgo."
  },
  {
    "path": "docs/csgo.sharecode.rst",
    "chars": 89,
    "preview": "sharecode\n=========\n\n.. automodule:: csgo.sharecode\n    :members:\n    :show-inheritance:\n"
  },
  {
    "path": "docs/index.rst",
    "chars": 928,
    "preview": "Welcome to csgo's documentation!\n=================================\n\n|pypi| |license|\n\nSupports Python ``2.7+`` and ``3.4"
  },
  {
    "path": "docs/user_guide.rst",
    "chars": 4153,
    "preview": "User Guide\n**********\n\nThis part of the documentation is a quick start for writing applications that\ninteract with the g"
  },
  {
    "path": "gen_enum_from_protos.py",
    "chars": 1881,
    "preview": "#!/usr/bin/env python\n\nimport re\nfrom keyword import kwlist\nfrom google.protobuf.internal.enum_type_wrapper import EnumT"
  },
  {
    "path": "protobuf_list.txt",
    "chars": 739,
    "preview": "https://raw.githubusercontent.com/SteamDatabase/GameTracking-CSGO/master/Protobufs/steammessages.proto\nhttps://raw.githu"
  },
  {
    "path": "protobufs/base_gcmessages.proto",
    "chars": 13338,
    "preview": "syntax = \"proto2\";\npackage csgo;\nimport \"steammessages.proto\";\n\noption optimize_for = SPEED;\noption py_generic_services "
  },
  {
    "path": "protobufs/cstrike15_gcmessages.proto",
    "chars": 39241,
    "preview": "syntax = \"proto2\";\npackage csgo;\nimport \"steammessages.proto\";\nimport \"engine_gcmessages.proto\";\n\noption optimize_for = "
  },
  {
    "path": "protobufs/econ_gcmessages.proto",
    "chars": 8161,
    "preview": "syntax = \"proto2\";\npackage csgo;\nimport \"steammessages.proto\";\n\noption optimize_for = SPEED;\noption py_generic_services "
  },
  {
    "path": "protobufs/engine_gcmessages.proto",
    "chars": 474,
    "preview": "syntax = \"proto2\";\npackage csgo;\nimport \"google/protobuf/descriptor.proto\";\n\noption py_generic_services = false;\n\nmessag"
  },
  {
    "path": "protobufs/gcsdk_gcmessages.proto",
    "chars": 8175,
    "preview": "syntax = \"proto2\";\npackage csgo;\nimport \"steammessages.proto\";\n\noption optimize_for = SPEED;\noption py_generic_services "
  },
  {
    "path": "protobufs/gcsystemmsgs.proto",
    "chars": 7254,
    "preview": "syntax = \"proto2\";\npackage csgo;\noption optimize_for = SPEED;\noption py_generic_services = false;\n\nenum EGCSystemMsg {\n\t"
  },
  {
    "path": "protobufs/google/protobuf/descriptor.proto",
    "chars": 34017,
    "preview": "// Protocol Buffers - Google's data interchange format\n// Copyright 2008 Google Inc.  All rights reserved.\n// https://de"
  },
  {
    "path": "protobufs/steammessages.proto",
    "chars": 15767,
    "preview": "syntax = \"proto2\";\npackage csgo;\nimport \"google/protobuf/descriptor.proto\";\n\noption optimize_for = SPEED;\noption py_gene"
  },
  {
    "path": "requirements.txt",
    "chars": 122,
    "preview": "six==1.10\nenum34==1.1.2; python_version < '3.4'\ngevent>=1.3.0\nprotobuf>=3.0.0\nsteam[client]~=1.0\ngevent-eventemitter~=2."
  },
  {
    "path": "setup.py",
    "chars": 1691,
    "preview": "#!/usr/bin/env python\n\nfrom setuptools import setup, find_packages\nfrom codecs import open\nfrom os import path\nimport sy"
  }
]

About this extraction

This page contains the full source code of the ValvePython/csgo GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 51 files (1.3 MB), approximately 377.4k tokens, and a symbol index with 83 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!