diff --git a/Makefile b/Makefile index d3349e5255..79a9f80fb8 100644 --- a/Makefile +++ b/Makefile @@ -23,4 +23,4 @@ idea: cp -r scripts/idea/* .idea elastic-docker: - docker run -d -v lbryhub:/usr/share/elasticsearch/data -p 9200:9200 -p 9300:9300 -e"ES_JAVA_OPTS=-Xms512m -Xmx512m" -e "discovery.type=single-node" docker.elastic.co/elasticsearch/elasticsearch:7.12.1 + docker run -d --env network.publish_host=127.0.0.1 -v lbryhub:/usr/share/elasticsearch/data -p 9200:9200 -p 9300:9300 -e"ES_JAVA_OPTS=-Xms512m -Xmx512m" -e "discovery.type=single-node" docker.elastic.co/elasticsearch/elasticsearch:7.12.1 diff --git a/lbry/error/__init__.py b/lbry/error/__init__.py index 7e18f5bf98..4ee9ee98e2 100644 --- a/lbry/error/__init__.py +++ b/lbry/error/__init__.py @@ -1,5 +1,10 @@ from .base import BaseError, claim_id +class StreamExtensionTypeUnresolved(BaseError): + def __init__(self, url_prefix, name): + self.url_prefix = url_prefix + self.name = name + super().__init__(f"Stream extension type '{url_prefix}/{name}' could not be resolved.") class UserInputError(BaseError): """ diff --git a/lbry/extras/daemon/daemon.py b/lbry/extras/daemon/daemon.py index d3b34fe3d3..113086d21d 100644 --- a/lbry/extras/daemon/daemon.py +++ b/lbry/extras/daemon/daemon.py @@ -3352,8 +3352,13 @@ async def jsonrpc_stream_repost( # TODO: use error from lbry.error raise Exception('Invalid claim id. It is expected to be a 40 characters long hexadecimal string.') + reposted_txo = await self.ledger.get_claim_by_claim_id(claim_id, include_is_my_output=True) + if not isinstance(reposted_txo, Output) or not reposted_txo.is_claim: + raise InputValueError(f"Could not find claim '{claim_id}'.") + if not reposted_txo.can_decode_claim: + raise InputValueError(f"A claim with id '{claim_id}' was found but could not be decoded.") claim = Claim() - claim.repost.update(**kwargs) + claim.repost.update(claim_type=reposted_txo.claim.claim_type, **kwargs) claim.repost.reference.claim_id = claim_id tx = await Transaction.claim_create( name, claim, amount, claim_address, funding_accounts, funding_accounts[0], channel @@ -3735,7 +3740,13 @@ async def jsonrpc_stream_update( if old_txo.claim.is_stream: claim.stream.update(file_path=file_path, **kwargs) elif old_txo.claim.is_repost: - claim.repost.update(**kwargs) + reposted_id = old_txo.claim.repost.reference.claim_id + reposted_txo = await self.ledger.get_claim_by_claim_id(reposted_id, include_is_my_output=True) + if not isinstance(reposted_txo, Output) or not reposted_txo.is_claim: + raise InputValueError(f"Could not find reposted claim '{reposted_id}'.") + if not reposted_txo.can_decode_claim: + raise InputValueError(f"A claim with id '{reposted_id}' was found but could not be decoded.") + claim.repost.update(claim_type=reposted_txo.claim.claim_type, **kwargs) if clear_channel: claim.clear_signature() diff --git a/lbry/schema/Makefile b/lbry/schema/Makefile index 888bda7ff1..dd7a72aa06 100644 --- a/lbry/schema/Makefile +++ b/lbry/schema/Makefile @@ -1,6 +1,6 @@ build: - rm types/v2/* -rf + rm -rf types/v2/* touch types/v2/__init__.py cd types/v2/ && protoc --python_out=. -I ../../../../../types/v2/proto/ ../../../../../types/v2/proto/*.proto cd types/v2/ && cp ../../../../../types/jsonschema/* ./ - sed -e 's/^import\ \(.*\)_pb2\ /from . import\ \1_pb2\ /g' -i types/v2/*.py + sed -e 's/^import\ \(.*\)_pb2\ /from . import\ \1_pb2\ /g' -i.bak types/v2/*.py diff --git a/lbry/schema/attrs.py b/lbry/schema/attrs.py index 522dc3413b..3c9d16039d 100644 --- a/lbry/schema/attrs.py +++ b/lbry/schema/attrs.py @@ -2,25 +2,33 @@ import logging import os.path import hashlib +from collections.abc import MutableMapping, MutableSet, Iterable from typing import Tuple, List from string import ascii_letters from decimal import Decimal, ROUND_UP from binascii import hexlify, unhexlify from google.protobuf.json_format import MessageToDict +from google.protobuf.any_pb2 import Any as AnyMessage +from google.protobuf import descriptor_pool +from google.protobuf.message_factory import MessageFactory from lbry.crypto.base58 import Base58 from lbry.constants import COIN -from lbry.error import MissingPublishedFileError, EmptyPublishedFileError +from lbry.error import MissingPublishedFileError, EmptyPublishedFileError, StreamExtensionTypeUnresolved +import lbry.schema.claim as claim from lbry.schema.mime_types import guess_media_type from lbry.schema.base import Metadata, BaseMessageList from lbry.schema.tags import clean_tags, normalize_tag from lbry.schema.types.v2.claim_pb2 import ( + Claim as ClaimMessage, Fee as FeeMessage, Location as LocationMessage, - Language as LanguageMessage + Language as LanguageMessage, +) +from lbry.schema.types.v2.stringmap_ext_pb2 import ( + StringMap as StringMapMessage, ) - log = logging.getLogger(__name__) @@ -369,6 +377,86 @@ def claim_hash(self) -> bytes: def claim_hash(self, claim_hash: bytes): self.message.claim_hash = claim_hash +class ModifyingClaimReference(ClaimReference): + + __slots__ = () + + @property + def modification_type(self) -> str: + return self.message.WhichOneof('type') + + @modification_type.setter + def modification_type(self, claim_type: str): + """Select the appropriate member (stream, channel, repost, or collection)""" + old_type = self.message.WhichOneof('type') + if old_type == claim_type: + return + if old_type and claim_type is None: + self.message.ClearField(old_type) + return + member = getattr(self.message, claim_type) + member.SetInParent() + + def update(self, claim_type: str, **kwargs) -> dict: + """ + Store updates to modifiable fields in deletions/edits. + Currently, only the "extensions" field (StreamExtensionList) + of a stream claim may be modified. Returns a dict containing + the unhandled portion of "kwargs". + """ + if claim_type != 'stream': + return kwargs + + clr_exts = kwargs.pop('clear_extensions', None) + set_exts = kwargs.pop('extensions', None) + if clr_exts is None and set_exts is None: + return kwargs + + self.modification_type = claim_type + if not self.modification_type == 'stream': + return kwargs + + mods = getattr(self.message, self.modification_type) + + if clr_exts is not None: + deletions = StreamModifiable(mods.deletions) + if isinstance(clr_exts, str) and clr_exts.startswith('{'): + clr_exts = json.loads(clr_exts) + deletions.extensions.merge(clr_exts) + + if set_exts is not None: + edits = StreamModifiable(mods.edits) + if isinstance(set_exts, str) and set_exts.startswith('{'): + set_exts = json.loads(set_exts) + edits.extensions.merge(set_exts) + + return kwargs + + def apply(self, reposted: 'claim.Claim') -> 'claim.Claim': + """ + Given a reposted claim, apply the stored deletions/edits, and return + the modified claim. Returns the original claim if the claim type has + changed such that the modifications are not relevant. + """ + if not self.modification_type or self.modification_type != reposted.claim_type: + return reposted + if not reposted.claim_type == 'stream': + return reposted + + m = ClaimMessage() + m.CopyFrom(reposted.message) + result = claim.Claim(m) + + # only stream claims, and only stream extensions are handled + stream = getattr(result, result.claim_type) + exts = getattr(stream, 'extensions') + + mods = getattr(self.message, self.modification_type) + # apply deletions + exts.merge(StreamModifiable(mods.deletions).extensions, delete=True) + # apply edits + exts.merge(StreamModifiable(mods.edits).extensions) + return result class ClaimList(BaseMessageList[ClaimReference]): @@ -569,3 +657,238 @@ def append(self, tag: str): tag = normalize_tag(tag) if tag and tag not in self.message: self.message.append(tag) + +class StreamExtension(Metadata): + __slots__ = Metadata.__slots__ + ('extension_schema', 'unpacked_message',) + + # Built-in extensions are those that are known at build time. + # Their protobuf descriptor containing field names/types doesn't + # need to be looked up in the blockchain or elsewhere. + BUILTIN_EXTENSIONS = { + 'ext.StringMap': StringMapMessage.DESCRIPTOR.file.serialized_pb, # Generic catch-all extension + } + + # Protobuf descriptors for StreamExtension types discovered during execution. + DESCRIPTOR_POOL = descriptor_pool.DescriptorPool() + + def __init__(self, schema, message): + super().__init__(message) + self.extension_schema = schema + self.unpacked_message = None + if message.TypeName(): + self._unpack_message() + + def _unpack_message(self): + # Check AnyMessage type and unpack contents. + value = self.message + url_prefix, _, type_name = value.type_url.rpartition('/') + pool = self.DESCRIPTOR_POOL + descriptor = None + if type_name in self.BUILTIN_EXTENSIONS: + pool.AddSerializedFile(self.BUILTIN_EXTENSIONS[type_name]) + del self.BUILTIN_EXTENSIONS[type_name] + try: + descriptor = pool.FindMessageTypeByName(type_name) + except KeyError: + raise StreamExtensionTypeUnresolved(url_prefix, type_name) + cls = MessageFactory(pool).GetPrototype(descriptor) + self.unpacked_message = cls() + value.Unpack(self.unpacked_message) + + def to_dict(self, include_schema=True): + if self.unpacked_message: + attrs = self.unpacked.to_dict() + else: + # Error: protobuf.Any contains an unknown message type + url_prefix, _, type_name = self.message.type_url.rpartition('/') + e = StreamExtensionTypeUnresolved(url_prefix, type_name) + attrs = { 'error': str(e) } + return { f'{self.schema}': attrs } if include_schema else attrs + + def from_value(self, value): + schema = None + + # If incoming is an extension, we have an AnyMessage. + if isinstance(value, StreamExtension): + schema = value.schema + value = value.message + + # Translate str -> (JSON) dict. + if isinstance(value, str) and value.startswith('{'): + value = json.loads(value) + + # Check for 1-element dictionary at top level: {: }. + if isinstance(value, dict) and len(value) == 1: + k = next(iter(value.keys())) + if self.schema is None or self.schema == k: + # Schema is determined. Extract dict containining attrs. + schema = k + value = value[schema] + + # Try to decode attrs dict -> StringMapMessage -> AnyMessage. + if isinstance(value, dict): + try: + msg = StringMapMessage() + for k, v in value.items(): + if isinstance(v, list): + msg.s[k].vs.extend(v) + else: + msg.s[k].vs.append(v) + any = AnyMessage() + any.Pack(msg, type_url_prefix='') + value = any + except (AttributeError, KeyError, IndexError): + pass + + # Either we have an AnyMessage or decoding failed. + if isinstance(value, AnyMessage): + if schema is not None: + self.extension_schema = schema + self.message.CopyFrom(value) + self._unpack_message() + else: + raise ValueError(f'Could not parse StreamExtension value: {value}') + + @property + def schema(self): + return self.extension_schema + + @property + def unpacked(self): + if not self.unpacked_message: + self._unpack_message() + if self.message.TypeName() == 'ext.StringMap': + return StringMap(self.unpacked_message) + return self.unpacked_message + + def merge(self, ext: 'StreamExtension', delete: bool = False) -> 'StreamExtension': + if not self.message.TypeName(): + self.from_value(ext) + return self + self.unpacked.merge(ext.unpacked, delete=delete) + return self + +class StringMap(Metadata, MutableMapping, Iterable): + __slots__ = () + + def to_dict(self) -> dict: + """Generate short formdictionary {"": "", "": ["", ""], ...}}""" + attrs = {} + for k, v in self.items(): + values = list(v) + if len(values) > 1: + attrs.update(**{k: values}) + elif len(values) > 0: + attrs.update(**{k: values[0]}) + return attrs + + def merge(self, other: 'StringMap', delete: bool = False) -> 'StringMap': + for k, v in other.items(): + if delete: + if k not in self: + continue + elif len(v) > 0: + self[k] -= v + else: + del self[k] + else: + if k not in self: + self[k] = v + else: + self[k] |= v + + def __getitem__(self, key): + if key in self.message.s: + return StringMapValue(self.message.s[key]) + raise KeyError(key) + + def __setitem__(self, key, value): + self.message.s[key].CopyFrom(value.message) + + def __delitem__(self, key): + del self.message.s[key] + + def __iter__(self): + return iter(self.message.s) + + def __len__(self): + return len(self.message.s) + +class StringMapValue(Metadata, MutableSet, Iterable): + __slots__ = () + item_class = str + + def __contains__(self, x): + return x in self.message.vs + + def __iter__(self): + return iter(self.message.vs) + + def __len__(self): + return len(self.message.vs) + + def add(self, x): + if x not in self: + self.message.vs.append(x) + + def discard(self, x): + for i, v in enumerate(self.message.vs): + if v == x: + del self.message.vs[i] + +class StreamExtensionMap(Metadata, MutableMapping, Iterable): + __slots__ = () + item_class = StreamExtension + + def to_dict(self): + return { k: v.to_dict(include_schema=False) for k, v in self.items() } + + def merge(self, exts, delete: bool = False) -> 'StreamExtensionMap': + if isinstance(exts, StreamExtension): + exts = {exts.schema: exts} + if isinstance(exts, str) and exts.startswith('{'): + exts = json.loads(exts) + for schema, ext in exts.items(): + obj = StreamExtension(schema, AnyMessage()) + if isinstance(ext, StreamExtension): + obj.from_value(ext) + else: + obj.from_value({schema: ext}) + if delete and not len(obj.unpacked): + del self[schema] + continue + # Decode existing extension, handling any errors. + try: + existing = StreamExtension(schema, self.message[schema]) + except Exception as e: + log.error(f"Could not decode extension '{schema}'. Error: {e}") + pass + else: + existing.merge(obj, delete=delete) + return self + + def __getitem__(self, key): + if key in self.message: + return StreamExtension(key, self.message[key]) + raise KeyError(key) + + def __setitem__(self, key, value): + del self.message[key] + self.message[key].CopyFrom(value) + + def __delitem__(self, key): + del self.message[key] + + def __iter__(self): + return self.message.__iter__() + + def __len__(self): + return len(self.message) + + +class StreamModifiable(Metadata): + __slots__ = () + + @property + def extensions(self) -> StreamExtensionMap: + return StreamExtensionMap(self.message.extensions) diff --git a/lbry/schema/claim.py b/lbry/schema/claim.py index 53565c1e1e..767163ff61 100644 --- a/lbry/schema/claim.py +++ b/lbry/schema/claim.py @@ -1,3 +1,4 @@ +import json import logging from typing import List from binascii import hexlify, unhexlify @@ -16,7 +17,8 @@ from lbry.schema.mime_types import guess_media_type, guess_stream_type from lbry.schema.attrs import ( Source, Playable, Dimmensional, Fee, Image, Video, Audio, - LanguageList, LocationList, ClaimList, ClaimReference, TagList + LanguageList, LocationList, ClaimList, ModifyingClaimReference, TagList, + StreamExtensionMap ) from lbry.schema.types.v2.claim_pb2 import Claim as ClaimMessage from lbry.error import InputValueIsNoneError @@ -196,7 +198,26 @@ class Stream(BaseClaim): object_fields = BaseClaim.object_fields + ('source',) def to_dict(self): + # Convert extensions individually, handling any errors. + extensions = {} + error_extensions = {} + for schema in iter(self.extensions): + try: + ext = self.extensions[schema] + except Exception as e: + extensions[schema] = { 'error': str(e) } + error_extensions[schema] = self.extensions.message[schema] + else: + extensions[schema] = ext.to_dict(include_schema=False) + + # Hide any bad extensions. Otherwise MessageToDict() fails. + for schema in error_extensions: + del self.extensions[schema] claim = super().to_dict() + # Restore the bad extensions. + for schema in error_extensions: + self.extensions.message[schema].CopyFrom(error_extensions[schema]) + if 'source' in claim: if 'hash' in claim['source']: claim['source']['hash'] = self.source.file_hash @@ -211,6 +232,8 @@ def to_dict(self): fee['address'] = self.fee.address if 'amount' in fee: fee['amount'] = str(self.fee.amount) + if extensions: + claim['extensions'] = extensions return claim def update(self, file_path=None, height=None, width=None, duration=None, **kwargs): @@ -264,7 +287,24 @@ def update(self, file_path=None, height=None, width=None, duration=None, **kwarg media_args['width'] = width media.update(**media_args) - super().update(**kwargs) + clr_exts = kwargs.pop('clear_extensions', None) + if clr_exts: + if isinstance(clr_exts, list): + for e in clr_exts: + self.extensions.merge(e, delete=True) + elif isinstance(clr_exts, (str, dict)): + self.extensions.merge(clr_exts, delete=True) + else: + self.message.ClearField('extensions') + set_exts = kwargs.pop('extensions', None) + if set_exts: + if isinstance(set_exts, list): + for e in set_exts: + self.extensions.merge(e) + else: + self.extensions.merge(set_exts) + + return super().update(**kwargs) @property def author(self) -> str: @@ -330,6 +370,10 @@ def video(self) -> Video: def audio(self) -> Audio: return Audio(self.message.audio) + @property + def extensions(self) -> StreamExtensionMap: + return StreamExtensionMap(self.message.extensions) + class Channel(BaseClaim): @@ -398,9 +442,20 @@ class Repost(BaseClaim): claim_type = Claim.REPOST + def update(self, **kwargs): + claim_type = kwargs.pop('claim_type', None) + if claim_type: + # Try to apply updates to ClaimReference. + kwargs = self.reference.update(claim_type, **kwargs) + # Update common fields within BaseClaim. + super().update(**kwargs) + + def apply(self, reposted: 'Claim'): + return self.reference.apply(reposted) + @property - def reference(self) -> ClaimReference: - return ClaimReference(self.message) + def reference(self) -> ModifyingClaimReference: + return ModifyingClaimReference(self.message) class Collection(BaseClaim): diff --git a/lbry/schema/result.py b/lbry/schema/result.py index b11a9df36d..09ac02d6d8 100644 --- a/lbry/schema/result.py +++ b/lbry/schema/result.py @@ -150,7 +150,7 @@ def message_to_txo(self, txo_message, tx_map): if claim.HasField('channel'): txo.channel = tx_map[claim.channel.tx_hash].outputs[claim.channel.nout] if claim.HasField('repost'): - txo.reposted_claim = tx_map[claim.repost.tx_hash].outputs[claim.repost.nout] + txo.original_reposted_claim = tx_map[claim.repost.tx_hash].outputs[claim.repost.nout] try: if txo.claim.is_channel: txo.meta['claims_in_channel'] = claim.claims_in_channel diff --git a/lbry/schema/types/v2/claim_pb2.py b/lbry/schema/types/v2/claim_pb2.py index d63f73964e..c54421095a 100644 --- a/lbry/schema/types/v2/claim_pb2.py +++ b/lbry/schema/types/v2/claim_pb2.py @@ -1,4692 +1,76 @@ +# -*- coding: utf-8 -*- # Generated by the protocol buffer compiler. DO NOT EDIT! # source: claim.proto - -import sys -_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1')) +"""Generated protocol buffer code.""" +from google.protobuf.internal import builder as _builder 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 descriptor_pool as _descriptor_pool from google.protobuf import symbol_database as _symbol_database -from google.protobuf import descriptor_pb2 # @@protoc_insertion_point(imports) _sym_db = _symbol_database.Default() - - -DESCRIPTOR = _descriptor.FileDescriptor( - name='claim.proto', - package='pb', - syntax='proto3', - serialized_pb=_b('\n\x0b\x63laim.proto\x12\x02pb\"\xab\x02\n\x05\x43laim\x12\x1c\n\x06stream\x18\x01 \x01(\x0b\x32\n.pb.StreamH\x00\x12\x1e\n\x07\x63hannel\x18\x02 \x01(\x0b\x32\x0b.pb.ChannelH\x00\x12#\n\ncollection\x18\x03 \x01(\x0b\x32\r.pb.ClaimListH\x00\x12$\n\x06repost\x18\x04 \x01(\x0b\x32\x12.pb.ClaimReferenceH\x00\x12\r\n\x05title\x18\x08 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\t \x01(\t\x12\x1d\n\tthumbnail\x18\n \x01(\x0b\x32\n.pb.Source\x12\x0c\n\x04tags\x18\x0b \x03(\t\x12\x1f\n\tlanguages\x18\x0c \x03(\x0b\x32\x0c.pb.Language\x12\x1f\n\tlocations\x18\r \x03(\x0b\x32\x0c.pb.LocationB\x06\n\x04type\"\x84\x02\n\x06Stream\x12\x1a\n\x06source\x18\x01 \x01(\x0b\x32\n.pb.Source\x12\x0e\n\x06\x61uthor\x18\x02 \x01(\t\x12\x0f\n\x07license\x18\x03 \x01(\t\x12\x13\n\x0blicense_url\x18\x04 \x01(\t\x12\x14\n\x0crelease_time\x18\x05 \x01(\x03\x12\x14\n\x03\x66\x65\x65\x18\x06 \x01(\x0b\x32\x07.pb.Fee\x12\x1a\n\x05image\x18\n \x01(\x0b\x32\t.pb.ImageH\x00\x12\x1a\n\x05video\x18\x0b \x01(\x0b\x32\t.pb.VideoH\x00\x12\x1a\n\x05\x61udio\x18\x0c \x01(\x0b\x32\t.pb.AudioH\x00\x12 \n\x08software\x18\r \x01(\x0b\x32\x0c.pb.SoftwareH\x00\x42\x06\n\x04type\"}\n\x07\x43hannel\x12\x12\n\npublic_key\x18\x01 \x01(\x0c\x12\r\n\x05\x65mail\x18\x02 \x01(\t\x12\x13\n\x0bwebsite_url\x18\x03 \x01(\t\x12\x19\n\x05\x63over\x18\x04 \x01(\x0b\x32\n.pb.Source\x12\x1f\n\x08\x66\x65\x61tured\x18\x05 \x01(\x0b\x32\r.pb.ClaimList\"$\n\x0e\x43laimReference\x12\x12\n\nclaim_hash\x18\x01 \x01(\x0c\"\x90\x01\n\tClaimList\x12)\n\tlist_type\x18\x01 \x01(\x0e\x32\x16.pb.ClaimList.ListType\x12,\n\x10\x63laim_references\x18\x02 \x03(\x0b\x32\x12.pb.ClaimReference\"*\n\x08ListType\x12\x0e\n\nCOLLECTION\x10\x00\x12\x0e\n\nDERIVATION\x10\x02\"y\n\x06Source\x12\x0c\n\x04hash\x18\x01 \x01(\x0c\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x0c\n\x04size\x18\x03 \x01(\x04\x12\x12\n\nmedia_type\x18\x04 \x01(\t\x12\x0b\n\x03url\x18\x05 \x01(\t\x12\x0f\n\x07sd_hash\x18\x06 \x01(\x0c\x12\x13\n\x0b\x62t_infohash\x18\x07 \x01(\x0c\"\x87\x01\n\x03\x46\x65\x65\x12\"\n\x08\x63urrency\x18\x01 \x01(\x0e\x32\x10.pb.Fee.Currency\x12\x0f\n\x07\x61\x64\x64ress\x18\x02 \x01(\x0c\x12\x0e\n\x06\x61mount\x18\x03 \x01(\x04\";\n\x08\x43urrency\x12\x14\n\x10UNKNOWN_CURRENCY\x10\x00\x12\x07\n\x03LBC\x10\x01\x12\x07\n\x03\x42TC\x10\x02\x12\x07\n\x03USD\x10\x03\"&\n\x05Image\x12\r\n\x05width\x18\x01 \x01(\r\x12\x0e\n\x06height\x18\x02 \x01(\r\"R\n\x05Video\x12\r\n\x05width\x18\x01 \x01(\r\x12\x0e\n\x06height\x18\x02 \x01(\r\x12\x10\n\x08\x64uration\x18\x03 \x01(\r\x12\x18\n\x05\x61udio\x18\x0f \x01(\x0b\x32\t.pb.Audio\"\x19\n\x05\x41udio\x12\x10\n\x08\x64uration\x18\x01 \x01(\r\"l\n\x08Software\x12\n\n\x02os\x18\x01 \x01(\t\"T\n\x02OS\x12\x0e\n\nUNKNOWN_OS\x10\x00\x12\x07\n\x03\x41NY\x10\x01\x12\t\n\x05LINUX\x10\x02\x12\x0b\n\x07WINDOWS\x10\x03\x12\x07\n\x03MAC\x10\x04\x12\x0b\n\x07\x41NDROID\x10\x05\x12\x07\n\x03IOS\x10\x06\"\xc7\x1d\n\x08Language\x12\'\n\x08language\x18\x01 \x01(\x0e\x32\x15.pb.Language.Language\x12#\n\x06script\x18\x02 \x01(\x0e\x32\x13.pb.Language.Script\x12$\n\x06region\x18\x03 \x01(\x0e\x32\x14.pb.Location.Country\"\x99\x0c\n\x08Language\x12\x14\n\x10UNKNOWN_LANGUAGE\x10\x00\x12\x06\n\x02\x65n\x10\x01\x12\x06\n\x02\x61\x61\x10\x02\x12\x06\n\x02\x61\x62\x10\x03\x12\x06\n\x02\x61\x65\x10\x04\x12\x06\n\x02\x61\x66\x10\x05\x12\x06\n\x02\x61k\x10\x06\x12\x06\n\x02\x61m\x10\x07\x12\x06\n\x02\x61n\x10\x08\x12\x06\n\x02\x61r\x10\t\x12\x06\n\x02\x61s\x10\n\x12\x06\n\x02\x61v\x10\x0b\x12\x06\n\x02\x61y\x10\x0c\x12\x06\n\x02\x61z\x10\r\x12\x06\n\x02\x62\x61\x10\x0e\x12\x06\n\x02\x62\x65\x10\x0f\x12\x06\n\x02\x62g\x10\x10\x12\x06\n\x02\x62h\x10\x11\x12\x06\n\x02\x62i\x10\x12\x12\x06\n\x02\x62m\x10\x13\x12\x06\n\x02\x62n\x10\x14\x12\x06\n\x02\x62o\x10\x15\x12\x06\n\x02\x62r\x10\x16\x12\x06\n\x02\x62s\x10\x17\x12\x06\n\x02\x63\x61\x10\x18\x12\x06\n\x02\x63\x65\x10\x19\x12\x06\n\x02\x63h\x10\x1a\x12\x06\n\x02\x63o\x10\x1b\x12\x06\n\x02\x63r\x10\x1c\x12\x06\n\x02\x63s\x10\x1d\x12\x06\n\x02\x63u\x10\x1e\x12\x06\n\x02\x63v\x10\x1f\x12\x06\n\x02\x63y\x10 \x12\x06\n\x02\x64\x61\x10!\x12\x06\n\x02\x64\x65\x10\"\x12\x06\n\x02\x64v\x10#\x12\x06\n\x02\x64z\x10$\x12\x06\n\x02\x65\x65\x10%\x12\x06\n\x02\x65l\x10&\x12\x06\n\x02\x65o\x10\'\x12\x06\n\x02\x65s\x10(\x12\x06\n\x02\x65t\x10)\x12\x06\n\x02\x65u\x10*\x12\x06\n\x02\x66\x61\x10+\x12\x06\n\x02\x66\x66\x10,\x12\x06\n\x02\x66i\x10-\x12\x06\n\x02\x66j\x10.\x12\x06\n\x02\x66o\x10/\x12\x06\n\x02\x66r\x10\x30\x12\x06\n\x02\x66y\x10\x31\x12\x06\n\x02ga\x10\x32\x12\x06\n\x02gd\x10\x33\x12\x06\n\x02gl\x10\x34\x12\x06\n\x02gn\x10\x35\x12\x06\n\x02gu\x10\x36\x12\x06\n\x02gv\x10\x37\x12\x06\n\x02ha\x10\x38\x12\x06\n\x02he\x10\x39\x12\x06\n\x02hi\x10:\x12\x06\n\x02ho\x10;\x12\x06\n\x02hr\x10<\x12\x06\n\x02ht\x10=\x12\x06\n\x02hu\x10>\x12\x06\n\x02hy\x10?\x12\x06\n\x02hz\x10@\x12\x06\n\x02ia\x10\x41\x12\x06\n\x02id\x10\x42\x12\x06\n\x02ie\x10\x43\x12\x06\n\x02ig\x10\x44\x12\x06\n\x02ii\x10\x45\x12\x06\n\x02ik\x10\x46\x12\x06\n\x02io\x10G\x12\x06\n\x02is\x10H\x12\x06\n\x02it\x10I\x12\x06\n\x02iu\x10J\x12\x06\n\x02ja\x10K\x12\x06\n\x02jv\x10L\x12\x06\n\x02ka\x10M\x12\x06\n\x02kg\x10N\x12\x06\n\x02ki\x10O\x12\x06\n\x02kj\x10P\x12\x06\n\x02kk\x10Q\x12\x06\n\x02kl\x10R\x12\x06\n\x02km\x10S\x12\x06\n\x02kn\x10T\x12\x06\n\x02ko\x10U\x12\x06\n\x02kr\x10V\x12\x06\n\x02ks\x10W\x12\x06\n\x02ku\x10X\x12\x06\n\x02kv\x10Y\x12\x06\n\x02kw\x10Z\x12\x06\n\x02ky\x10[\x12\x06\n\x02la\x10\\\x12\x06\n\x02lb\x10]\x12\x06\n\x02lg\x10^\x12\x06\n\x02li\x10_\x12\x06\n\x02ln\x10`\x12\x06\n\x02lo\x10\x61\x12\x06\n\x02lt\x10\x62\x12\x06\n\x02lu\x10\x63\x12\x06\n\x02lv\x10\x64\x12\x06\n\x02mg\x10\x65\x12\x06\n\x02mh\x10\x66\x12\x06\n\x02mi\x10g\x12\x06\n\x02mk\x10h\x12\x06\n\x02ml\x10i\x12\x06\n\x02mn\x10j\x12\x06\n\x02mr\x10k\x12\x06\n\x02ms\x10l\x12\x06\n\x02mt\x10m\x12\x06\n\x02my\x10n\x12\x06\n\x02na\x10o\x12\x06\n\x02nb\x10p\x12\x06\n\x02nd\x10q\x12\x06\n\x02ne\x10r\x12\x06\n\x02ng\x10s\x12\x06\n\x02nl\x10t\x12\x06\n\x02nn\x10u\x12\x06\n\x02no\x10v\x12\x06\n\x02nr\x10w\x12\x06\n\x02nv\x10x\x12\x06\n\x02ny\x10y\x12\x06\n\x02oc\x10z\x12\x06\n\x02oj\x10{\x12\x06\n\x02om\x10|\x12\x06\n\x02or\x10}\x12\x06\n\x02os\x10~\x12\x06\n\x02pa\x10\x7f\x12\x07\n\x02pi\x10\x80\x01\x12\x07\n\x02pl\x10\x81\x01\x12\x07\n\x02ps\x10\x82\x01\x12\x07\n\x02pt\x10\x83\x01\x12\x07\n\x02qu\x10\x84\x01\x12\x07\n\x02rm\x10\x85\x01\x12\x07\n\x02rn\x10\x86\x01\x12\x07\n\x02ro\x10\x87\x01\x12\x07\n\x02ru\x10\x88\x01\x12\x07\n\x02rw\x10\x89\x01\x12\x07\n\x02sa\x10\x8a\x01\x12\x07\n\x02sc\x10\x8b\x01\x12\x07\n\x02sd\x10\x8c\x01\x12\x07\n\x02se\x10\x8d\x01\x12\x07\n\x02sg\x10\x8e\x01\x12\x07\n\x02si\x10\x8f\x01\x12\x07\n\x02sk\x10\x90\x01\x12\x07\n\x02sl\x10\x91\x01\x12\x07\n\x02sm\x10\x92\x01\x12\x07\n\x02sn\x10\x93\x01\x12\x07\n\x02so\x10\x94\x01\x12\x07\n\x02sq\x10\x95\x01\x12\x07\n\x02sr\x10\x96\x01\x12\x07\n\x02ss\x10\x97\x01\x12\x07\n\x02st\x10\x98\x01\x12\x07\n\x02su\x10\x99\x01\x12\x07\n\x02sv\x10\x9a\x01\x12\x07\n\x02sw\x10\x9b\x01\x12\x07\n\x02ta\x10\x9c\x01\x12\x07\n\x02te\x10\x9d\x01\x12\x07\n\x02tg\x10\x9e\x01\x12\x07\n\x02th\x10\x9f\x01\x12\x07\n\x02ti\x10\xa0\x01\x12\x07\n\x02tk\x10\xa1\x01\x12\x07\n\x02tl\x10\xa2\x01\x12\x07\n\x02tn\x10\xa3\x01\x12\x07\n\x02to\x10\xa4\x01\x12\x07\n\x02tr\x10\xa5\x01\x12\x07\n\x02ts\x10\xa6\x01\x12\x07\n\x02tt\x10\xa7\x01\x12\x07\n\x02tw\x10\xa8\x01\x12\x07\n\x02ty\x10\xa9\x01\x12\x07\n\x02ug\x10\xaa\x01\x12\x07\n\x02uk\x10\xab\x01\x12\x07\n\x02ur\x10\xac\x01\x12\x07\n\x02uz\x10\xad\x01\x12\x07\n\x02ve\x10\xae\x01\x12\x07\n\x02vi\x10\xaf\x01\x12\x07\n\x02vo\x10\xb0\x01\x12\x07\n\x02wa\x10\xb1\x01\x12\x07\n\x02wo\x10\xb2\x01\x12\x07\n\x02xh\x10\xb3\x01\x12\x07\n\x02yi\x10\xb4\x01\x12\x07\n\x02yo\x10\xb5\x01\x12\x07\n\x02za\x10\xb6\x01\x12\x07\n\x02zh\x10\xb7\x01\x12\x07\n\x02zu\x10\xb8\x01\"\xaa\x10\n\x06Script\x12\x12\n\x0eUNKNOWN_SCRIPT\x10\x00\x12\x08\n\x04\x41\x64lm\x10\x01\x12\x08\n\x04\x41\x66\x61k\x10\x02\x12\x08\n\x04\x41ghb\x10\x03\x12\x08\n\x04\x41hom\x10\x04\x12\x08\n\x04\x41rab\x10\x05\x12\x08\n\x04\x41ran\x10\x06\x12\x08\n\x04\x41rmi\x10\x07\x12\x08\n\x04\x41rmn\x10\x08\x12\x08\n\x04\x41vst\x10\t\x12\x08\n\x04\x42\x61li\x10\n\x12\x08\n\x04\x42\x61mu\x10\x0b\x12\x08\n\x04\x42\x61ss\x10\x0c\x12\x08\n\x04\x42\x61tk\x10\r\x12\x08\n\x04\x42\x65ng\x10\x0e\x12\x08\n\x04\x42hks\x10\x0f\x12\x08\n\x04\x42lis\x10\x10\x12\x08\n\x04\x42opo\x10\x11\x12\x08\n\x04\x42rah\x10\x12\x12\x08\n\x04\x42rai\x10\x13\x12\x08\n\x04\x42ugi\x10\x14\x12\x08\n\x04\x42uhd\x10\x15\x12\x08\n\x04\x43\x61km\x10\x16\x12\x08\n\x04\x43\x61ns\x10\x17\x12\x08\n\x04\x43\x61ri\x10\x18\x12\x08\n\x04\x43ham\x10\x19\x12\x08\n\x04\x43her\x10\x1a\x12\x08\n\x04\x43irt\x10\x1b\x12\x08\n\x04\x43opt\x10\x1c\x12\x08\n\x04\x43pmn\x10\x1d\x12\x08\n\x04\x43prt\x10\x1e\x12\x08\n\x04\x43yrl\x10\x1f\x12\x08\n\x04\x43yrs\x10 \x12\x08\n\x04\x44\x65va\x10!\x12\x08\n\x04\x44ogr\x10\"\x12\x08\n\x04\x44srt\x10#\x12\x08\n\x04\x44upl\x10$\x12\x08\n\x04\x45gyd\x10%\x12\x08\n\x04\x45gyh\x10&\x12\x08\n\x04\x45gyp\x10\'\x12\x08\n\x04\x45lba\x10(\x12\x08\n\x04\x45lym\x10)\x12\x08\n\x04\x45thi\x10*\x12\x08\n\x04Geok\x10+\x12\x08\n\x04Geor\x10,\x12\x08\n\x04Glag\x10-\x12\x08\n\x04Gong\x10.\x12\x08\n\x04Gonm\x10/\x12\x08\n\x04Goth\x10\x30\x12\x08\n\x04Gran\x10\x31\x12\x08\n\x04Grek\x10\x32\x12\x08\n\x04Gujr\x10\x33\x12\x08\n\x04Guru\x10\x34\x12\x08\n\x04Hanb\x10\x35\x12\x08\n\x04Hang\x10\x36\x12\x08\n\x04Hani\x10\x37\x12\x08\n\x04Hano\x10\x38\x12\x08\n\x04Hans\x10\x39\x12\x08\n\x04Hant\x10:\x12\x08\n\x04Hatr\x10;\x12\x08\n\x04Hebr\x10<\x12\x08\n\x04Hira\x10=\x12\x08\n\x04Hluw\x10>\x12\x08\n\x04Hmng\x10?\x12\x08\n\x04Hmnp\x10@\x12\x08\n\x04Hrkt\x10\x41\x12\x08\n\x04Hung\x10\x42\x12\x08\n\x04Inds\x10\x43\x12\x08\n\x04Ital\x10\x44\x12\x08\n\x04Jamo\x10\x45\x12\x08\n\x04Java\x10\x46\x12\x08\n\x04Jpan\x10G\x12\x08\n\x04Jurc\x10H\x12\x08\n\x04Kali\x10I\x12\x08\n\x04Kana\x10J\x12\x08\n\x04Khar\x10K\x12\x08\n\x04Khmr\x10L\x12\x08\n\x04Khoj\x10M\x12\x08\n\x04Kitl\x10N\x12\x08\n\x04Kits\x10O\x12\x08\n\x04Knda\x10P\x12\x08\n\x04Kore\x10Q\x12\x08\n\x04Kpel\x10R\x12\x08\n\x04Kthi\x10S\x12\x08\n\x04Lana\x10T\x12\x08\n\x04Laoo\x10U\x12\x08\n\x04Latf\x10V\x12\x08\n\x04Latg\x10W\x12\x08\n\x04Latn\x10X\x12\x08\n\x04Leke\x10Y\x12\x08\n\x04Lepc\x10Z\x12\x08\n\x04Limb\x10[\x12\x08\n\x04Lina\x10\\\x12\x08\n\x04Linb\x10]\x12\x08\n\x04Lisu\x10^\x12\x08\n\x04Loma\x10_\x12\x08\n\x04Lyci\x10`\x12\x08\n\x04Lydi\x10\x61\x12\x08\n\x04Mahj\x10\x62\x12\x08\n\x04Maka\x10\x63\x12\x08\n\x04Mand\x10\x64\x12\x08\n\x04Mani\x10\x65\x12\x08\n\x04Marc\x10\x66\x12\x08\n\x04Maya\x10g\x12\x08\n\x04Medf\x10h\x12\x08\n\x04Mend\x10i\x12\x08\n\x04Merc\x10j\x12\x08\n\x04Mero\x10k\x12\x08\n\x04Mlym\x10l\x12\x08\n\x04Modi\x10m\x12\x08\n\x04Mong\x10n\x12\x08\n\x04Moon\x10o\x12\x08\n\x04Mroo\x10p\x12\x08\n\x04Mtei\x10q\x12\x08\n\x04Mult\x10r\x12\x08\n\x04Mymr\x10s\x12\x08\n\x04Nand\x10t\x12\x08\n\x04Narb\x10u\x12\x08\n\x04Nbat\x10v\x12\x08\n\x04Newa\x10w\x12\x08\n\x04Nkdb\x10x\x12\x08\n\x04Nkgb\x10y\x12\x08\n\x04Nkoo\x10z\x12\x08\n\x04Nshu\x10{\x12\x08\n\x04Ogam\x10|\x12\x08\n\x04Olck\x10}\x12\x08\n\x04Orkh\x10~\x12\x08\n\x04Orya\x10\x7f\x12\t\n\x04Osge\x10\x80\x01\x12\t\n\x04Osma\x10\x81\x01\x12\t\n\x04Palm\x10\x82\x01\x12\t\n\x04Pauc\x10\x83\x01\x12\t\n\x04Perm\x10\x84\x01\x12\t\n\x04Phag\x10\x85\x01\x12\t\n\x04Phli\x10\x86\x01\x12\t\n\x04Phlp\x10\x87\x01\x12\t\n\x04Phlv\x10\x88\x01\x12\t\n\x04Phnx\x10\x89\x01\x12\t\n\x04Plrd\x10\x8a\x01\x12\t\n\x04Piqd\x10\x8b\x01\x12\t\n\x04Prti\x10\x8c\x01\x12\t\n\x04Qaaa\x10\x8d\x01\x12\t\n\x04Qabx\x10\x8e\x01\x12\t\n\x04Rjng\x10\x8f\x01\x12\t\n\x04Rohg\x10\x90\x01\x12\t\n\x04Roro\x10\x91\x01\x12\t\n\x04Runr\x10\x92\x01\x12\t\n\x04Samr\x10\x93\x01\x12\t\n\x04Sara\x10\x94\x01\x12\t\n\x04Sarb\x10\x95\x01\x12\t\n\x04Saur\x10\x96\x01\x12\t\n\x04Sgnw\x10\x97\x01\x12\t\n\x04Shaw\x10\x98\x01\x12\t\n\x04Shrd\x10\x99\x01\x12\t\n\x04Shui\x10\x9a\x01\x12\t\n\x04Sidd\x10\x9b\x01\x12\t\n\x04Sind\x10\x9c\x01\x12\t\n\x04Sinh\x10\x9d\x01\x12\t\n\x04Sogd\x10\x9e\x01\x12\t\n\x04Sogo\x10\x9f\x01\x12\t\n\x04Sora\x10\xa0\x01\x12\t\n\x04Soyo\x10\xa1\x01\x12\t\n\x04Sund\x10\xa2\x01\x12\t\n\x04Sylo\x10\xa3\x01\x12\t\n\x04Syrc\x10\xa4\x01\x12\t\n\x04Syre\x10\xa5\x01\x12\t\n\x04Syrj\x10\xa6\x01\x12\t\n\x04Syrn\x10\xa7\x01\x12\t\n\x04Tagb\x10\xa8\x01\x12\t\n\x04Takr\x10\xa9\x01\x12\t\n\x04Tale\x10\xaa\x01\x12\t\n\x04Talu\x10\xab\x01\x12\t\n\x04Taml\x10\xac\x01\x12\t\n\x04Tang\x10\xad\x01\x12\t\n\x04Tavt\x10\xae\x01\x12\t\n\x04Telu\x10\xaf\x01\x12\t\n\x04Teng\x10\xb0\x01\x12\t\n\x04Tfng\x10\xb1\x01\x12\t\n\x04Tglg\x10\xb2\x01\x12\t\n\x04Thaa\x10\xb3\x01\x12\t\n\x04Thai\x10\xb4\x01\x12\t\n\x04Tibt\x10\xb5\x01\x12\t\n\x04Tirh\x10\xb6\x01\x12\t\n\x04Ugar\x10\xb7\x01\x12\t\n\x04Vaii\x10\xb8\x01\x12\t\n\x04Visp\x10\xb9\x01\x12\t\n\x04Wara\x10\xba\x01\x12\t\n\x04Wcho\x10\xbb\x01\x12\t\n\x04Wole\x10\xbc\x01\x12\t\n\x04Xpeo\x10\xbd\x01\x12\t\n\x04Xsux\x10\xbe\x01\x12\t\n\x04Yiii\x10\xbf\x01\x12\t\n\x04Zanb\x10\xc0\x01\x12\t\n\x04Zinh\x10\xc1\x01\x12\t\n\x04Zmth\x10\xc2\x01\x12\t\n\x04Zsye\x10\xc3\x01\x12\t\n\x04Zsym\x10\xc4\x01\x12\t\n\x04Zxxx\x10\xc5\x01\x12\t\n\x04Zyyy\x10\xc6\x01\x12\t\n\x04Zzzz\x10\xc7\x01\"\xec)\n\x08Location\x12%\n\x07\x63ountry\x18\x01 \x01(\x0e\x32\x14.pb.Location.Country\x12\r\n\x05state\x18\x02 \x01(\t\x12\x0c\n\x04\x63ity\x18\x03 \x01(\t\x12\x0c\n\x04\x63ode\x18\x04 \x01(\t\x12\x10\n\x08latitude\x18\x05 \x01(\x11\x12\x11\n\tlongitude\x18\x06 \x01(\x11\"\xe8(\n\x07\x43ountry\x12\x13\n\x0fUNKNOWN_COUNTRY\x10\x00\x12\x06\n\x02\x41\x46\x10\x01\x12\x06\n\x02\x41X\x10\x02\x12\x06\n\x02\x41L\x10\x03\x12\x06\n\x02\x44Z\x10\x04\x12\x06\n\x02\x41S\x10\x05\x12\x06\n\x02\x41\x44\x10\x06\x12\x06\n\x02\x41O\x10\x07\x12\x06\n\x02\x41I\x10\x08\x12\x06\n\x02\x41Q\x10\t\x12\x06\n\x02\x41G\x10\n\x12\x06\n\x02\x41R\x10\x0b\x12\x06\n\x02\x41M\x10\x0c\x12\x06\n\x02\x41W\x10\r\x12\x06\n\x02\x41U\x10\x0e\x12\x06\n\x02\x41T\x10\x0f\x12\x06\n\x02\x41Z\x10\x10\x12\x06\n\x02\x42S\x10\x11\x12\x06\n\x02\x42H\x10\x12\x12\x06\n\x02\x42\x44\x10\x13\x12\x06\n\x02\x42\x42\x10\x14\x12\x06\n\x02\x42Y\x10\x15\x12\x06\n\x02\x42\x45\x10\x16\x12\x06\n\x02\x42Z\x10\x17\x12\x06\n\x02\x42J\x10\x18\x12\x06\n\x02\x42M\x10\x19\x12\x06\n\x02\x42T\x10\x1a\x12\x06\n\x02\x42O\x10\x1b\x12\x06\n\x02\x42Q\x10\x1c\x12\x06\n\x02\x42\x41\x10\x1d\x12\x06\n\x02\x42W\x10\x1e\x12\x06\n\x02\x42V\x10\x1f\x12\x06\n\x02\x42R\x10 \x12\x06\n\x02IO\x10!\x12\x06\n\x02\x42N\x10\"\x12\x06\n\x02\x42G\x10#\x12\x06\n\x02\x42\x46\x10$\x12\x06\n\x02\x42I\x10%\x12\x06\n\x02KH\x10&\x12\x06\n\x02\x43M\x10\'\x12\x06\n\x02\x43\x41\x10(\x12\x06\n\x02\x43V\x10)\x12\x06\n\x02KY\x10*\x12\x06\n\x02\x43\x46\x10+\x12\x06\n\x02TD\x10,\x12\x06\n\x02\x43L\x10-\x12\x06\n\x02\x43N\x10.\x12\x06\n\x02\x43X\x10/\x12\x06\n\x02\x43\x43\x10\x30\x12\x06\n\x02\x43O\x10\x31\x12\x06\n\x02KM\x10\x32\x12\x06\n\x02\x43G\x10\x33\x12\x06\n\x02\x43\x44\x10\x34\x12\x06\n\x02\x43K\x10\x35\x12\x06\n\x02\x43R\x10\x36\x12\x06\n\x02\x43I\x10\x37\x12\x06\n\x02HR\x10\x38\x12\x06\n\x02\x43U\x10\x39\x12\x06\n\x02\x43W\x10:\x12\x06\n\x02\x43Y\x10;\x12\x06\n\x02\x43Z\x10<\x12\x06\n\x02\x44K\x10=\x12\x06\n\x02\x44J\x10>\x12\x06\n\x02\x44M\x10?\x12\x06\n\x02\x44O\x10@\x12\x06\n\x02\x45\x43\x10\x41\x12\x06\n\x02\x45G\x10\x42\x12\x06\n\x02SV\x10\x43\x12\x06\n\x02GQ\x10\x44\x12\x06\n\x02\x45R\x10\x45\x12\x06\n\x02\x45\x45\x10\x46\x12\x06\n\x02\x45T\x10G\x12\x06\n\x02\x46K\x10H\x12\x06\n\x02\x46O\x10I\x12\x06\n\x02\x46J\x10J\x12\x06\n\x02\x46I\x10K\x12\x06\n\x02\x46R\x10L\x12\x06\n\x02GF\x10M\x12\x06\n\x02PF\x10N\x12\x06\n\x02TF\x10O\x12\x06\n\x02GA\x10P\x12\x06\n\x02GM\x10Q\x12\x06\n\x02GE\x10R\x12\x06\n\x02\x44\x45\x10S\x12\x06\n\x02GH\x10T\x12\x06\n\x02GI\x10U\x12\x06\n\x02GR\x10V\x12\x06\n\x02GL\x10W\x12\x06\n\x02GD\x10X\x12\x06\n\x02GP\x10Y\x12\x06\n\x02GU\x10Z\x12\x06\n\x02GT\x10[\x12\x06\n\x02GG\x10\\\x12\x06\n\x02GN\x10]\x12\x06\n\x02GW\x10^\x12\x06\n\x02GY\x10_\x12\x06\n\x02HT\x10`\x12\x06\n\x02HM\x10\x61\x12\x06\n\x02VA\x10\x62\x12\x06\n\x02HN\x10\x63\x12\x06\n\x02HK\x10\x64\x12\x06\n\x02HU\x10\x65\x12\x06\n\x02IS\x10\x66\x12\x06\n\x02IN\x10g\x12\x06\n\x02ID\x10h\x12\x06\n\x02IR\x10i\x12\x06\n\x02IQ\x10j\x12\x06\n\x02IE\x10k\x12\x06\n\x02IM\x10l\x12\x06\n\x02IL\x10m\x12\x06\n\x02IT\x10n\x12\x06\n\x02JM\x10o\x12\x06\n\x02JP\x10p\x12\x06\n\x02JE\x10q\x12\x06\n\x02JO\x10r\x12\x06\n\x02KZ\x10s\x12\x06\n\x02KE\x10t\x12\x06\n\x02KI\x10u\x12\x06\n\x02KP\x10v\x12\x06\n\x02KR\x10w\x12\x06\n\x02KW\x10x\x12\x06\n\x02KG\x10y\x12\x06\n\x02LA\x10z\x12\x06\n\x02LV\x10{\x12\x06\n\x02LB\x10|\x12\x06\n\x02LS\x10}\x12\x06\n\x02LR\x10~\x12\x06\n\x02LY\x10\x7f\x12\x07\n\x02LI\x10\x80\x01\x12\x07\n\x02LT\x10\x81\x01\x12\x07\n\x02LU\x10\x82\x01\x12\x07\n\x02MO\x10\x83\x01\x12\x07\n\x02MK\x10\x84\x01\x12\x07\n\x02MG\x10\x85\x01\x12\x07\n\x02MW\x10\x86\x01\x12\x07\n\x02MY\x10\x87\x01\x12\x07\n\x02MV\x10\x88\x01\x12\x07\n\x02ML\x10\x89\x01\x12\x07\n\x02MT\x10\x8a\x01\x12\x07\n\x02MH\x10\x8b\x01\x12\x07\n\x02MQ\x10\x8c\x01\x12\x07\n\x02MR\x10\x8d\x01\x12\x07\n\x02MU\x10\x8e\x01\x12\x07\n\x02YT\x10\x8f\x01\x12\x07\n\x02MX\x10\x90\x01\x12\x07\n\x02\x46M\x10\x91\x01\x12\x07\n\x02MD\x10\x92\x01\x12\x07\n\x02MC\x10\x93\x01\x12\x07\n\x02MN\x10\x94\x01\x12\x07\n\x02ME\x10\x95\x01\x12\x07\n\x02MS\x10\x96\x01\x12\x07\n\x02MA\x10\x97\x01\x12\x07\n\x02MZ\x10\x98\x01\x12\x07\n\x02MM\x10\x99\x01\x12\x07\n\x02NA\x10\x9a\x01\x12\x07\n\x02NR\x10\x9b\x01\x12\x07\n\x02NP\x10\x9c\x01\x12\x07\n\x02NL\x10\x9d\x01\x12\x07\n\x02NC\x10\x9e\x01\x12\x07\n\x02NZ\x10\x9f\x01\x12\x07\n\x02NI\x10\xa0\x01\x12\x07\n\x02NE\x10\xa1\x01\x12\x07\n\x02NG\x10\xa2\x01\x12\x07\n\x02NU\x10\xa3\x01\x12\x07\n\x02NF\x10\xa4\x01\x12\x07\n\x02MP\x10\xa5\x01\x12\x07\n\x02NO\x10\xa6\x01\x12\x07\n\x02OM\x10\xa7\x01\x12\x07\n\x02PK\x10\xa8\x01\x12\x07\n\x02PW\x10\xa9\x01\x12\x07\n\x02PS\x10\xaa\x01\x12\x07\n\x02PA\x10\xab\x01\x12\x07\n\x02PG\x10\xac\x01\x12\x07\n\x02PY\x10\xad\x01\x12\x07\n\x02PE\x10\xae\x01\x12\x07\n\x02PH\x10\xaf\x01\x12\x07\n\x02PN\x10\xb0\x01\x12\x07\n\x02PL\x10\xb1\x01\x12\x07\n\x02PT\x10\xb2\x01\x12\x07\n\x02PR\x10\xb3\x01\x12\x07\n\x02QA\x10\xb4\x01\x12\x07\n\x02RE\x10\xb5\x01\x12\x07\n\x02RO\x10\xb6\x01\x12\x07\n\x02RU\x10\xb7\x01\x12\x07\n\x02RW\x10\xb8\x01\x12\x07\n\x02\x42L\x10\xb9\x01\x12\x07\n\x02SH\x10\xba\x01\x12\x07\n\x02KN\x10\xbb\x01\x12\x07\n\x02LC\x10\xbc\x01\x12\x07\n\x02MF\x10\xbd\x01\x12\x07\n\x02PM\x10\xbe\x01\x12\x07\n\x02VC\x10\xbf\x01\x12\x07\n\x02WS\x10\xc0\x01\x12\x07\n\x02SM\x10\xc1\x01\x12\x07\n\x02ST\x10\xc2\x01\x12\x07\n\x02SA\x10\xc3\x01\x12\x07\n\x02SN\x10\xc4\x01\x12\x07\n\x02RS\x10\xc5\x01\x12\x07\n\x02SC\x10\xc6\x01\x12\x07\n\x02SL\x10\xc7\x01\x12\x07\n\x02SG\x10\xc8\x01\x12\x07\n\x02SX\x10\xc9\x01\x12\x07\n\x02SK\x10\xca\x01\x12\x07\n\x02SI\x10\xcb\x01\x12\x07\n\x02SB\x10\xcc\x01\x12\x07\n\x02SO\x10\xcd\x01\x12\x07\n\x02ZA\x10\xce\x01\x12\x07\n\x02GS\x10\xcf\x01\x12\x07\n\x02SS\x10\xd0\x01\x12\x07\n\x02\x45S\x10\xd1\x01\x12\x07\n\x02LK\x10\xd2\x01\x12\x07\n\x02SD\x10\xd3\x01\x12\x07\n\x02SR\x10\xd4\x01\x12\x07\n\x02SJ\x10\xd5\x01\x12\x07\n\x02SZ\x10\xd6\x01\x12\x07\n\x02SE\x10\xd7\x01\x12\x07\n\x02\x43H\x10\xd8\x01\x12\x07\n\x02SY\x10\xd9\x01\x12\x07\n\x02TW\x10\xda\x01\x12\x07\n\x02TJ\x10\xdb\x01\x12\x07\n\x02TZ\x10\xdc\x01\x12\x07\n\x02TH\x10\xdd\x01\x12\x07\n\x02TL\x10\xde\x01\x12\x07\n\x02TG\x10\xdf\x01\x12\x07\n\x02TK\x10\xe0\x01\x12\x07\n\x02TO\x10\xe1\x01\x12\x07\n\x02TT\x10\xe2\x01\x12\x07\n\x02TN\x10\xe3\x01\x12\x07\n\x02TR\x10\xe4\x01\x12\x07\n\x02TM\x10\xe5\x01\x12\x07\n\x02TC\x10\xe6\x01\x12\x07\n\x02TV\x10\xe7\x01\x12\x07\n\x02UG\x10\xe8\x01\x12\x07\n\x02UA\x10\xe9\x01\x12\x07\n\x02\x41\x45\x10\xea\x01\x12\x07\n\x02GB\x10\xeb\x01\x12\x07\n\x02US\x10\xec\x01\x12\x07\n\x02UM\x10\xed\x01\x12\x07\n\x02UY\x10\xee\x01\x12\x07\n\x02UZ\x10\xef\x01\x12\x07\n\x02VU\x10\xf0\x01\x12\x07\n\x02VE\x10\xf1\x01\x12\x07\n\x02VN\x10\xf2\x01\x12\x07\n\x02VG\x10\xf3\x01\x12\x07\n\x02VI\x10\xf4\x01\x12\x07\n\x02WF\x10\xf5\x01\x12\x07\n\x02\x45H\x10\xf6\x01\x12\x07\n\x02YE\x10\xf7\x01\x12\x07\n\x02ZM\x10\xf8\x01\x12\x07\n\x02ZW\x10\xf9\x01\x12\t\n\x04R001\x10\xfa\x01\x12\t\n\x04R002\x10\xfb\x01\x12\t\n\x04R015\x10\xfc\x01\x12\t\n\x04R012\x10\xfd\x01\x12\t\n\x04R818\x10\xfe\x01\x12\t\n\x04R434\x10\xff\x01\x12\t\n\x04R504\x10\x80\x02\x12\t\n\x04R729\x10\x81\x02\x12\t\n\x04R788\x10\x82\x02\x12\t\n\x04R732\x10\x83\x02\x12\t\n\x04R202\x10\x84\x02\x12\t\n\x04R014\x10\x85\x02\x12\t\n\x04R086\x10\x86\x02\x12\t\n\x04R108\x10\x87\x02\x12\t\n\x04R174\x10\x88\x02\x12\t\n\x04R262\x10\x89\x02\x12\t\n\x04R232\x10\x8a\x02\x12\t\n\x04R231\x10\x8b\x02\x12\t\n\x04R260\x10\x8c\x02\x12\t\n\x04R404\x10\x8d\x02\x12\t\n\x04R450\x10\x8e\x02\x12\t\n\x04R454\x10\x8f\x02\x12\t\n\x04R480\x10\x90\x02\x12\t\n\x04R175\x10\x91\x02\x12\t\n\x04R508\x10\x92\x02\x12\t\n\x04R638\x10\x93\x02\x12\t\n\x04R646\x10\x94\x02\x12\t\n\x04R690\x10\x95\x02\x12\t\n\x04R706\x10\x96\x02\x12\t\n\x04R728\x10\x97\x02\x12\t\n\x04R800\x10\x98\x02\x12\t\n\x04R834\x10\x99\x02\x12\t\n\x04R894\x10\x9a\x02\x12\t\n\x04R716\x10\x9b\x02\x12\t\n\x04R017\x10\x9c\x02\x12\t\n\x04R024\x10\x9d\x02\x12\t\n\x04R120\x10\x9e\x02\x12\t\n\x04R140\x10\x9f\x02\x12\t\n\x04R148\x10\xa0\x02\x12\t\n\x04R178\x10\xa1\x02\x12\t\n\x04R180\x10\xa2\x02\x12\t\n\x04R226\x10\xa3\x02\x12\t\n\x04R266\x10\xa4\x02\x12\t\n\x04R678\x10\xa5\x02\x12\t\n\x04R018\x10\xa6\x02\x12\t\n\x04R072\x10\xa7\x02\x12\t\n\x04R748\x10\xa8\x02\x12\t\n\x04R426\x10\xa9\x02\x12\t\n\x04R516\x10\xaa\x02\x12\t\n\x04R710\x10\xab\x02\x12\t\n\x04R011\x10\xac\x02\x12\t\n\x04R204\x10\xad\x02\x12\t\n\x04R854\x10\xae\x02\x12\t\n\x04R132\x10\xaf\x02\x12\t\n\x04R384\x10\xb0\x02\x12\t\n\x04R270\x10\xb1\x02\x12\t\n\x04R288\x10\xb2\x02\x12\t\n\x04R324\x10\xb3\x02\x12\t\n\x04R624\x10\xb4\x02\x12\t\n\x04R430\x10\xb5\x02\x12\t\n\x04R466\x10\xb6\x02\x12\t\n\x04R478\x10\xb7\x02\x12\t\n\x04R562\x10\xb8\x02\x12\t\n\x04R566\x10\xb9\x02\x12\t\n\x04R654\x10\xba\x02\x12\t\n\x04R686\x10\xbb\x02\x12\t\n\x04R694\x10\xbc\x02\x12\t\n\x04R768\x10\xbd\x02\x12\t\n\x04R019\x10\xbe\x02\x12\t\n\x04R419\x10\xbf\x02\x12\t\n\x04R029\x10\xc0\x02\x12\t\n\x04R660\x10\xc1\x02\x12\t\n\x04R028\x10\xc2\x02\x12\t\n\x04R533\x10\xc3\x02\x12\t\n\x04R044\x10\xc4\x02\x12\t\n\x04R052\x10\xc5\x02\x12\t\n\x04R535\x10\xc6\x02\x12\t\n\x04R092\x10\xc7\x02\x12\t\n\x04R136\x10\xc8\x02\x12\t\n\x04R192\x10\xc9\x02\x12\t\n\x04R531\x10\xca\x02\x12\t\n\x04R212\x10\xcb\x02\x12\t\n\x04R214\x10\xcc\x02\x12\t\n\x04R308\x10\xcd\x02\x12\t\n\x04R312\x10\xce\x02\x12\t\n\x04R332\x10\xcf\x02\x12\t\n\x04R388\x10\xd0\x02\x12\t\n\x04R474\x10\xd1\x02\x12\t\n\x04R500\x10\xd2\x02\x12\t\n\x04R630\x10\xd3\x02\x12\t\n\x04R652\x10\xd4\x02\x12\t\n\x04R659\x10\xd5\x02\x12\t\n\x04R662\x10\xd6\x02\x12\t\n\x04R663\x10\xd7\x02\x12\t\n\x04R670\x10\xd8\x02\x12\t\n\x04R534\x10\xd9\x02\x12\t\n\x04R780\x10\xda\x02\x12\t\n\x04R796\x10\xdb\x02\x12\t\n\x04R850\x10\xdc\x02\x12\t\n\x04R013\x10\xdd\x02\x12\t\n\x04R084\x10\xde\x02\x12\t\n\x04R188\x10\xdf\x02\x12\t\n\x04R222\x10\xe0\x02\x12\t\n\x04R320\x10\xe1\x02\x12\t\n\x04R340\x10\xe2\x02\x12\t\n\x04R484\x10\xe3\x02\x12\t\n\x04R558\x10\xe4\x02\x12\t\n\x04R591\x10\xe5\x02\x12\t\n\x04R005\x10\xe6\x02\x12\t\n\x04R032\x10\xe7\x02\x12\t\n\x04R068\x10\xe8\x02\x12\t\n\x04R074\x10\xe9\x02\x12\t\n\x04R076\x10\xea\x02\x12\t\n\x04R152\x10\xeb\x02\x12\t\n\x04R170\x10\xec\x02\x12\t\n\x04R218\x10\xed\x02\x12\t\n\x04R238\x10\xee\x02\x12\t\n\x04R254\x10\xef\x02\x12\t\n\x04R328\x10\xf0\x02\x12\t\n\x04R600\x10\xf1\x02\x12\t\n\x04R604\x10\xf2\x02\x12\t\n\x04R239\x10\xf3\x02\x12\t\n\x04R740\x10\xf4\x02\x12\t\n\x04R858\x10\xf5\x02\x12\t\n\x04R862\x10\xf6\x02\x12\t\n\x04R021\x10\xf7\x02\x12\t\n\x04R060\x10\xf8\x02\x12\t\n\x04R124\x10\xf9\x02\x12\t\n\x04R304\x10\xfa\x02\x12\t\n\x04R666\x10\xfb\x02\x12\t\n\x04R840\x10\xfc\x02\x12\t\n\x04R010\x10\xfd\x02\x12\t\n\x04R142\x10\xfe\x02\x12\t\n\x04R143\x10\xff\x02\x12\t\n\x04R398\x10\x80\x03\x12\t\n\x04R417\x10\x81\x03\x12\t\n\x04R762\x10\x82\x03\x12\t\n\x04R795\x10\x83\x03\x12\t\n\x04R860\x10\x84\x03\x12\t\n\x04R030\x10\x85\x03\x12\t\n\x04R156\x10\x86\x03\x12\t\n\x04R344\x10\x87\x03\x12\t\n\x04R446\x10\x88\x03\x12\t\n\x04R408\x10\x89\x03\x12\t\n\x04R392\x10\x8a\x03\x12\t\n\x04R496\x10\x8b\x03\x12\t\n\x04R410\x10\x8c\x03\x12\t\n\x04R035\x10\x8d\x03\x12\t\n\x04R096\x10\x8e\x03\x12\t\n\x04R116\x10\x8f\x03\x12\t\n\x04R360\x10\x90\x03\x12\t\n\x04R418\x10\x91\x03\x12\t\n\x04R458\x10\x92\x03\x12\t\n\x04R104\x10\x93\x03\x12\t\n\x04R608\x10\x94\x03\x12\t\n\x04R702\x10\x95\x03\x12\t\n\x04R764\x10\x96\x03\x12\t\n\x04R626\x10\x97\x03\x12\t\n\x04R704\x10\x98\x03\x12\t\n\x04R034\x10\x99\x03\x12\t\n\x04R004\x10\x9a\x03\x12\t\n\x04R050\x10\x9b\x03\x12\t\n\x04R064\x10\x9c\x03\x12\t\n\x04R356\x10\x9d\x03\x12\t\n\x04R364\x10\x9e\x03\x12\t\n\x04R462\x10\x9f\x03\x12\t\n\x04R524\x10\xa0\x03\x12\t\n\x04R586\x10\xa1\x03\x12\t\n\x04R144\x10\xa2\x03\x12\t\n\x04R145\x10\xa3\x03\x12\t\n\x04R051\x10\xa4\x03\x12\t\n\x04R031\x10\xa5\x03\x12\t\n\x04R048\x10\xa6\x03\x12\t\n\x04R196\x10\xa7\x03\x12\t\n\x04R268\x10\xa8\x03\x12\t\n\x04R368\x10\xa9\x03\x12\t\n\x04R376\x10\xaa\x03\x12\t\n\x04R400\x10\xab\x03\x12\t\n\x04R414\x10\xac\x03\x12\t\n\x04R422\x10\xad\x03\x12\t\n\x04R512\x10\xae\x03\x12\t\n\x04R634\x10\xaf\x03\x12\t\n\x04R682\x10\xb0\x03\x12\t\n\x04R275\x10\xb1\x03\x12\t\n\x04R760\x10\xb2\x03\x12\t\n\x04R792\x10\xb3\x03\x12\t\n\x04R784\x10\xb4\x03\x12\t\n\x04R887\x10\xb5\x03\x12\t\n\x04R150\x10\xb6\x03\x12\t\n\x04R151\x10\xb7\x03\x12\t\n\x04R112\x10\xb8\x03\x12\t\n\x04R100\x10\xb9\x03\x12\t\n\x04R203\x10\xba\x03\x12\t\n\x04R348\x10\xbb\x03\x12\t\n\x04R616\x10\xbc\x03\x12\t\n\x04R498\x10\xbd\x03\x12\t\n\x04R642\x10\xbe\x03\x12\t\n\x04R643\x10\xbf\x03\x12\t\n\x04R703\x10\xc0\x03\x12\t\n\x04R804\x10\xc1\x03\x12\t\n\x04R154\x10\xc2\x03\x12\t\n\x04R248\x10\xc3\x03\x12\t\n\x04R830\x10\xc4\x03\x12\t\n\x04R831\x10\xc5\x03\x12\t\n\x04R832\x10\xc6\x03\x12\t\n\x04R680\x10\xc7\x03\x12\t\n\x04R208\x10\xc8\x03\x12\t\n\x04R233\x10\xc9\x03\x12\t\n\x04R234\x10\xca\x03\x12\t\n\x04R246\x10\xcb\x03\x12\t\n\x04R352\x10\xcc\x03\x12\t\n\x04R372\x10\xcd\x03\x12\t\n\x04R833\x10\xce\x03\x12\t\n\x04R428\x10\xcf\x03\x12\t\n\x04R440\x10\xd0\x03\x12\t\n\x04R578\x10\xd1\x03\x12\t\n\x04R744\x10\xd2\x03\x12\t\n\x04R752\x10\xd3\x03\x12\t\n\x04R826\x10\xd4\x03\x12\t\n\x04R039\x10\xd5\x03\x12\t\n\x04R008\x10\xd6\x03\x12\t\n\x04R020\x10\xd7\x03\x12\t\n\x04R070\x10\xd8\x03\x12\t\n\x04R191\x10\xd9\x03\x12\t\n\x04R292\x10\xda\x03\x12\t\n\x04R300\x10\xdb\x03\x12\t\n\x04R336\x10\xdc\x03\x12\t\n\x04R380\x10\xdd\x03\x12\t\n\x04R470\x10\xde\x03\x12\t\n\x04R499\x10\xdf\x03\x12\t\n\x04R807\x10\xe0\x03\x12\t\n\x04R620\x10\xe1\x03\x12\t\n\x04R674\x10\xe2\x03\x12\t\n\x04R688\x10\xe3\x03\x12\t\n\x04R705\x10\xe4\x03\x12\t\n\x04R724\x10\xe5\x03\x12\t\n\x04R155\x10\xe6\x03\x12\t\n\x04R040\x10\xe7\x03\x12\t\n\x04R056\x10\xe8\x03\x12\t\n\x04R250\x10\xe9\x03\x12\t\n\x04R276\x10\xea\x03\x12\t\n\x04R438\x10\xeb\x03\x12\t\n\x04R442\x10\xec\x03\x12\t\n\x04R492\x10\xed\x03\x12\t\n\x04R528\x10\xee\x03\x12\t\n\x04R756\x10\xef\x03\x12\t\n\x04R009\x10\xf0\x03\x12\t\n\x04R053\x10\xf1\x03\x12\t\n\x04R036\x10\xf2\x03\x12\t\n\x04R162\x10\xf3\x03\x12\t\n\x04R166\x10\xf4\x03\x12\t\n\x04R334\x10\xf5\x03\x12\t\n\x04R554\x10\xf6\x03\x12\t\n\x04R574\x10\xf7\x03\x12\t\n\x04R054\x10\xf8\x03\x12\t\n\x04R242\x10\xf9\x03\x12\t\n\x04R540\x10\xfa\x03\x12\t\n\x04R598\x10\xfb\x03\x12\t\n\x04R090\x10\xfc\x03\x12\t\n\x04R548\x10\xfd\x03\x12\t\n\x04R057\x10\xfe\x03\x12\t\n\x04R316\x10\xff\x03\x12\t\n\x04R296\x10\x80\x04\x12\t\n\x04R584\x10\x81\x04\x12\t\n\x04R583\x10\x82\x04\x12\t\n\x04R520\x10\x83\x04\x12\t\n\x04R580\x10\x84\x04\x12\t\n\x04R585\x10\x85\x04\x12\t\n\x04R581\x10\x86\x04\x12\t\n\x04R061\x10\x87\x04\x12\t\n\x04R016\x10\x88\x04\x12\t\n\x04R184\x10\x89\x04\x12\t\n\x04R258\x10\x8a\x04\x12\t\n\x04R570\x10\x8b\x04\x12\t\n\x04R612\x10\x8c\x04\x12\t\n\x04R882\x10\x8d\x04\x12\t\n\x04R772\x10\x8e\x04\x12\t\n\x04R776\x10\x8f\x04\x12\t\n\x04R798\x10\x90\x04\x12\t\n\x04R876\x10\x91\x04\x62\x06proto3') -) -_sym_db.RegisterFileDescriptor(DESCRIPTOR) - - - -_CLAIMLIST_LISTTYPE = _descriptor.EnumDescriptor( - name='ListType', - full_name='pb.ClaimList.ListType', - filename=None, - file=DESCRIPTOR, - values=[ - _descriptor.EnumValueDescriptor( - name='COLLECTION', index=0, number=0, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='DERIVATION', index=1, number=2, - options=None, - type=None), - ], - containing_type=None, - options=None, - serialized_start=852, - serialized_end=894, -) -_sym_db.RegisterEnumDescriptor(_CLAIMLIST_LISTTYPE) - -_FEE_CURRENCY = _descriptor.EnumDescriptor( - name='Currency', - full_name='pb.Fee.Currency', - filename=None, - file=DESCRIPTOR, - values=[ - _descriptor.EnumValueDescriptor( - name='UNKNOWN_CURRENCY', index=0, number=0, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='LBC', index=1, number=1, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='BTC', index=2, number=2, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='USD', index=3, number=3, - options=None, - type=None), - ], - containing_type=None, - options=None, - serialized_start=1096, - serialized_end=1155, -) -_sym_db.RegisterEnumDescriptor(_FEE_CURRENCY) - -_SOFTWARE_OS = _descriptor.EnumDescriptor( - name='OS', - full_name='pb.Software.OS', - filename=None, - file=DESCRIPTOR, - values=[ - _descriptor.EnumValueDescriptor( - name='UNKNOWN_OS', index=0, number=0, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='ANY', index=1, number=1, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='LINUX', index=2, number=2, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='WINDOWS', index=3, number=3, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='MAC', index=4, number=4, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='ANDROID', index=5, number=5, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='IOS', index=6, number=6, - options=None, - type=None), - ], - containing_type=None, - options=None, - serialized_start=1332, - serialized_end=1416, -) -_sym_db.RegisterEnumDescriptor(_SOFTWARE_OS) - -_LANGUAGE_LANGUAGE = _descriptor.EnumDescriptor( - name='Language', - full_name='pb.Language.Language', - filename=None, - file=DESCRIPTOR, - values=[ - _descriptor.EnumValueDescriptor( - name='UNKNOWN_LANGUAGE', index=0, number=0, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='en', index=1, number=1, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='aa', index=2, number=2, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='ab', index=3, number=3, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='ae', index=4, number=4, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='af', index=5, number=5, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='ak', index=6, number=6, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='am', index=7, number=7, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='an', index=8, number=8, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='ar', index=9, number=9, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='as', index=10, number=10, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='av', index=11, number=11, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='ay', index=12, number=12, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='az', index=13, number=13, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='ba', index=14, number=14, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='be', index=15, number=15, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='bg', index=16, number=16, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='bh', index=17, number=17, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='bi', index=18, number=18, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='bm', index=19, number=19, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='bn', index=20, number=20, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='bo', index=21, number=21, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='br', index=22, number=22, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='bs', index=23, number=23, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='ca', index=24, number=24, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='ce', index=25, number=25, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='ch', index=26, number=26, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='co', index=27, number=27, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='cr', index=28, number=28, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='cs', index=29, number=29, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='cu', index=30, number=30, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='cv', index=31, number=31, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='cy', index=32, number=32, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='da', index=33, number=33, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='de', index=34, number=34, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='dv', index=35, number=35, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='dz', index=36, number=36, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='ee', index=37, number=37, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='el', index=38, number=38, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='eo', index=39, number=39, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='es', index=40, number=40, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='et', index=41, number=41, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='eu', index=42, number=42, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='fa', index=43, number=43, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='ff', index=44, number=44, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='fi', index=45, number=45, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='fj', index=46, number=46, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='fo', index=47, number=47, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='fr', index=48, number=48, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='fy', index=49, number=49, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='ga', index=50, number=50, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='gd', index=51, number=51, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='gl', index=52, number=52, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='gn', index=53, number=53, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='gu', index=54, number=54, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='gv', index=55, number=55, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='ha', index=56, number=56, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='he', index=57, number=57, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='hi', index=58, number=58, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='ho', index=59, number=59, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='hr', index=60, number=60, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='ht', index=61, number=61, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='hu', index=62, number=62, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='hy', index=63, number=63, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='hz', index=64, number=64, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='ia', index=65, number=65, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='id', index=66, number=66, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='ie', index=67, number=67, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='ig', index=68, number=68, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='ii', index=69, number=69, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='ik', index=70, number=70, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='io', index=71, number=71, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='is', index=72, number=72, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='it', index=73, number=73, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='iu', index=74, number=74, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='ja', index=75, number=75, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='jv', index=76, number=76, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='ka', index=77, number=77, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='kg', index=78, number=78, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='ki', index=79, number=79, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='kj', index=80, number=80, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='kk', index=81, number=81, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='kl', index=82, number=82, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='km', index=83, number=83, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='kn', index=84, number=84, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='ko', index=85, number=85, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='kr', index=86, number=86, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='ks', index=87, number=87, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='ku', index=88, number=88, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='kv', index=89, number=89, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='kw', index=90, number=90, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='ky', index=91, number=91, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='la', index=92, number=92, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='lb', index=93, number=93, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='lg', index=94, number=94, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='li', index=95, number=95, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='ln', index=96, number=96, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='lo', index=97, number=97, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='lt', index=98, number=98, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='lu', index=99, number=99, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='lv', index=100, number=100, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='mg', index=101, number=101, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='mh', index=102, number=102, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='mi', index=103, number=103, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='mk', index=104, number=104, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='ml', index=105, number=105, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='mn', index=106, number=106, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='mr', index=107, number=107, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='ms', index=108, number=108, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='mt', index=109, number=109, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='my', index=110, number=110, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='na', index=111, number=111, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='nb', index=112, number=112, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='nd', index=113, number=113, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='ne', index=114, number=114, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='ng', index=115, number=115, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='nl', index=116, number=116, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='nn', index=117, number=117, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='no', index=118, number=118, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='nr', index=119, number=119, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='nv', index=120, number=120, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='ny', index=121, number=121, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='oc', index=122, number=122, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='oj', index=123, number=123, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='om', index=124, number=124, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='or', index=125, number=125, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='os', index=126, number=126, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='pa', index=127, number=127, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='pi', index=128, number=128, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='pl', index=129, number=129, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='ps', index=130, number=130, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='pt', index=131, number=131, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='qu', index=132, number=132, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='rm', index=133, number=133, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='rn', index=134, number=134, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='ro', index=135, number=135, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='ru', index=136, number=136, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='rw', index=137, number=137, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='sa', index=138, number=138, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='sc', index=139, number=139, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='sd', index=140, number=140, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='se', index=141, number=141, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='sg', index=142, number=142, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='si', index=143, number=143, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='sk', index=144, number=144, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='sl', index=145, number=145, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='sm', index=146, number=146, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='sn', index=147, number=147, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='so', index=148, number=148, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='sq', index=149, number=149, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='sr', index=150, number=150, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='ss', index=151, number=151, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='st', index=152, number=152, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='su', index=153, number=153, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='sv', index=154, number=154, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='sw', index=155, number=155, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='ta', index=156, number=156, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='te', index=157, number=157, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='tg', index=158, number=158, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='th', index=159, number=159, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='ti', index=160, number=160, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='tk', index=161, number=161, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='tl', index=162, number=162, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='tn', index=163, number=163, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='to', index=164, number=164, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='tr', index=165, number=165, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='ts', index=166, number=166, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='tt', index=167, number=167, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='tw', index=168, number=168, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='ty', index=169, number=169, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='ug', index=170, number=170, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='uk', index=171, number=171, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='ur', index=172, number=172, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='uz', index=173, number=173, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='ve', index=174, number=174, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='vi', index=175, number=175, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='vo', index=176, number=176, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='wa', index=177, number=177, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='wo', index=178, number=178, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='xh', index=179, number=179, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='yi', index=180, number=180, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='yo', index=181, number=181, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='za', index=182, number=182, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='zh', index=183, number=183, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='zu', index=184, number=184, - options=None, - type=None), - ], - containing_type=None, - options=None, - serialized_start=1548, - serialized_end=3109, -) -_sym_db.RegisterEnumDescriptor(_LANGUAGE_LANGUAGE) - -_LANGUAGE_SCRIPT = _descriptor.EnumDescriptor( - name='Script', - full_name='pb.Language.Script', - filename=None, - file=DESCRIPTOR, - values=[ - _descriptor.EnumValueDescriptor( - name='UNKNOWN_SCRIPT', index=0, number=0, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Adlm', index=1, number=1, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Afak', index=2, number=2, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Aghb', index=3, number=3, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Ahom', index=4, number=4, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Arab', index=5, number=5, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Aran', index=6, number=6, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Armi', index=7, number=7, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Armn', index=8, number=8, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Avst', index=9, number=9, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Bali', index=10, number=10, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Bamu', index=11, number=11, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Bass', index=12, number=12, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Batk', index=13, number=13, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Beng', index=14, number=14, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Bhks', index=15, number=15, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Blis', index=16, number=16, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Bopo', index=17, number=17, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Brah', index=18, number=18, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Brai', index=19, number=19, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Bugi', index=20, number=20, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Buhd', index=21, number=21, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Cakm', index=22, number=22, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Cans', index=23, number=23, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Cari', index=24, number=24, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Cham', index=25, number=25, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Cher', index=26, number=26, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Cirt', index=27, number=27, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Copt', index=28, number=28, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Cpmn', index=29, number=29, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Cprt', index=30, number=30, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Cyrl', index=31, number=31, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Cyrs', index=32, number=32, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Deva', index=33, number=33, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Dogr', index=34, number=34, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Dsrt', index=35, number=35, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Dupl', index=36, number=36, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Egyd', index=37, number=37, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Egyh', index=38, number=38, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Egyp', index=39, number=39, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Elba', index=40, number=40, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Elym', index=41, number=41, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Ethi', index=42, number=42, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Geok', index=43, number=43, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Geor', index=44, number=44, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Glag', index=45, number=45, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Gong', index=46, number=46, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Gonm', index=47, number=47, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Goth', index=48, number=48, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Gran', index=49, number=49, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Grek', index=50, number=50, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Gujr', index=51, number=51, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Guru', index=52, number=52, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Hanb', index=53, number=53, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Hang', index=54, number=54, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Hani', index=55, number=55, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Hano', index=56, number=56, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Hans', index=57, number=57, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Hant', index=58, number=58, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Hatr', index=59, number=59, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Hebr', index=60, number=60, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Hira', index=61, number=61, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Hluw', index=62, number=62, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Hmng', index=63, number=63, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Hmnp', index=64, number=64, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Hrkt', index=65, number=65, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Hung', index=66, number=66, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Inds', index=67, number=67, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Ital', index=68, number=68, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Jamo', index=69, number=69, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Java', index=70, number=70, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Jpan', index=71, number=71, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Jurc', index=72, number=72, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Kali', index=73, number=73, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Kana', index=74, number=74, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Khar', index=75, number=75, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Khmr', index=76, number=76, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Khoj', index=77, number=77, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Kitl', index=78, number=78, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Kits', index=79, number=79, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Knda', index=80, number=80, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Kore', index=81, number=81, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Kpel', index=82, number=82, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Kthi', index=83, number=83, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Lana', index=84, number=84, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Laoo', index=85, number=85, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Latf', index=86, number=86, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Latg', index=87, number=87, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Latn', index=88, number=88, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Leke', index=89, number=89, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Lepc', index=90, number=90, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Limb', index=91, number=91, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Lina', index=92, number=92, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Linb', index=93, number=93, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Lisu', index=94, number=94, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Loma', index=95, number=95, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Lyci', index=96, number=96, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Lydi', index=97, number=97, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Mahj', index=98, number=98, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Maka', index=99, number=99, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Mand', index=100, number=100, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Mani', index=101, number=101, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Marc', index=102, number=102, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Maya', index=103, number=103, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Medf', index=104, number=104, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Mend', index=105, number=105, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Merc', index=106, number=106, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Mero', index=107, number=107, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Mlym', index=108, number=108, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Modi', index=109, number=109, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Mong', index=110, number=110, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Moon', index=111, number=111, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Mroo', index=112, number=112, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Mtei', index=113, number=113, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Mult', index=114, number=114, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Mymr', index=115, number=115, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Nand', index=116, number=116, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Narb', index=117, number=117, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Nbat', index=118, number=118, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Newa', index=119, number=119, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Nkdb', index=120, number=120, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Nkgb', index=121, number=121, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Nkoo', index=122, number=122, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Nshu', index=123, number=123, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Ogam', index=124, number=124, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Olck', index=125, number=125, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Orkh', index=126, number=126, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Orya', index=127, number=127, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Osge', index=128, number=128, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Osma', index=129, number=129, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Palm', index=130, number=130, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Pauc', index=131, number=131, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Perm', index=132, number=132, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Phag', index=133, number=133, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Phli', index=134, number=134, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Phlp', index=135, number=135, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Phlv', index=136, number=136, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Phnx', index=137, number=137, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Plrd', index=138, number=138, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Piqd', index=139, number=139, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Prti', index=140, number=140, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Qaaa', index=141, number=141, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Qabx', index=142, number=142, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Rjng', index=143, number=143, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Rohg', index=144, number=144, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Roro', index=145, number=145, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Runr', index=146, number=146, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Samr', index=147, number=147, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Sara', index=148, number=148, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Sarb', index=149, number=149, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Saur', index=150, number=150, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Sgnw', index=151, number=151, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Shaw', index=152, number=152, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Shrd', index=153, number=153, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Shui', index=154, number=154, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Sidd', index=155, number=155, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Sind', index=156, number=156, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Sinh', index=157, number=157, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Sogd', index=158, number=158, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Sogo', index=159, number=159, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Sora', index=160, number=160, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Soyo', index=161, number=161, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Sund', index=162, number=162, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Sylo', index=163, number=163, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Syrc', index=164, number=164, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Syre', index=165, number=165, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Syrj', index=166, number=166, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Syrn', index=167, number=167, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Tagb', index=168, number=168, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Takr', index=169, number=169, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Tale', index=170, number=170, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Talu', index=171, number=171, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Taml', index=172, number=172, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Tang', index=173, number=173, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Tavt', index=174, number=174, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Telu', index=175, number=175, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Teng', index=176, number=176, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Tfng', index=177, number=177, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Tglg', index=178, number=178, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Thaa', index=179, number=179, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Thai', index=180, number=180, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Tibt', index=181, number=181, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Tirh', index=182, number=182, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Ugar', index=183, number=183, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Vaii', index=184, number=184, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Visp', index=185, number=185, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Wara', index=186, number=186, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Wcho', index=187, number=187, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Wole', index=188, number=188, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Xpeo', index=189, number=189, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Xsux', index=190, number=190, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Yiii', index=191, number=191, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Zanb', index=192, number=192, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Zinh', index=193, number=193, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Zmth', index=194, number=194, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Zsye', index=195, number=195, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Zsym', index=196, number=196, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Zxxx', index=197, number=197, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Zyyy', index=198, number=198, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='Zzzz', index=199, number=199, - options=None, - type=None), - ], - containing_type=None, - options=None, - serialized_start=3112, - serialized_end=5202, -) -_sym_db.RegisterEnumDescriptor(_LANGUAGE_SCRIPT) - -_LOCATION_COUNTRY = _descriptor.EnumDescriptor( - name='Country', - full_name='pb.Location.Country', - filename=None, - file=DESCRIPTOR, - values=[ - _descriptor.EnumValueDescriptor( - name='UNKNOWN_COUNTRY', index=0, number=0, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='AF', index=1, number=1, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='AX', index=2, number=2, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='AL', index=3, number=3, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='DZ', index=4, number=4, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='AS', index=5, number=5, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='AD', index=6, number=6, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='AO', index=7, number=7, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='AI', index=8, number=8, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='AQ', index=9, number=9, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='AG', index=10, number=10, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='AR', index=11, number=11, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='AM', index=12, number=12, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='AW', index=13, number=13, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='AU', index=14, number=14, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='AT', index=15, number=15, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='AZ', index=16, number=16, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='BS', index=17, number=17, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='BH', index=18, number=18, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='BD', index=19, number=19, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='BB', index=20, number=20, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='BY', index=21, number=21, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='BE', index=22, number=22, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='BZ', index=23, number=23, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='BJ', index=24, number=24, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='BM', index=25, number=25, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='BT', index=26, number=26, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='BO', index=27, number=27, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='BQ', index=28, number=28, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='BA', index=29, number=29, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='BW', index=30, number=30, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='BV', index=31, number=31, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='BR', index=32, number=32, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='IO', index=33, number=33, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='BN', index=34, number=34, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='BG', index=35, number=35, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='BF', index=36, number=36, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='BI', index=37, number=37, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='KH', index=38, number=38, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='CM', index=39, number=39, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='CA', index=40, number=40, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='CV', index=41, number=41, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='KY', index=42, number=42, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='CF', index=43, number=43, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='TD', index=44, number=44, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='CL', index=45, number=45, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='CN', index=46, number=46, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='CX', index=47, number=47, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='CC', index=48, number=48, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='CO', index=49, number=49, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='KM', index=50, number=50, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='CG', index=51, number=51, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='CD', index=52, number=52, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='CK', index=53, number=53, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='CR', index=54, number=54, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='CI', index=55, number=55, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='HR', index=56, number=56, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='CU', index=57, number=57, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='CW', index=58, number=58, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='CY', index=59, number=59, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='CZ', index=60, number=60, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='DK', index=61, number=61, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='DJ', index=62, number=62, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='DM', index=63, number=63, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='DO', index=64, number=64, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='EC', index=65, number=65, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='EG', index=66, number=66, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='SV', index=67, number=67, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='GQ', index=68, number=68, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='ER', index=69, number=69, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='EE', index=70, number=70, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='ET', index=71, number=71, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='FK', index=72, number=72, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='FO', index=73, number=73, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='FJ', index=74, number=74, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='FI', index=75, number=75, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='FR', index=76, number=76, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='GF', index=77, number=77, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='PF', index=78, number=78, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='TF', index=79, number=79, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='GA', index=80, number=80, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='GM', index=81, number=81, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='GE', index=82, number=82, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='DE', index=83, number=83, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='GH', index=84, number=84, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='GI', index=85, number=85, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='GR', index=86, number=86, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='GL', index=87, number=87, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='GD', index=88, number=88, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='GP', index=89, number=89, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='GU', index=90, number=90, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='GT', index=91, number=91, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='GG', index=92, number=92, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='GN', index=93, number=93, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='GW', index=94, number=94, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='GY', index=95, number=95, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='HT', index=96, number=96, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='HM', index=97, number=97, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='VA', index=98, number=98, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='HN', index=99, number=99, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='HK', index=100, number=100, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='HU', index=101, number=101, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='IS', index=102, number=102, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='IN', index=103, number=103, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='ID', index=104, number=104, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='IR', index=105, number=105, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='IQ', index=106, number=106, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='IE', index=107, number=107, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='IM', index=108, number=108, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='IL', index=109, number=109, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='IT', index=110, number=110, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='JM', index=111, number=111, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='JP', index=112, number=112, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='JE', index=113, number=113, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='JO', index=114, number=114, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='KZ', index=115, number=115, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='KE', index=116, number=116, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='KI', index=117, number=117, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='KP', index=118, number=118, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='KR', index=119, number=119, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='KW', index=120, number=120, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='KG', index=121, number=121, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='LA', index=122, number=122, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='LV', index=123, number=123, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='LB', index=124, number=124, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='LS', index=125, number=125, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='LR', index=126, number=126, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='LY', index=127, number=127, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='LI', index=128, number=128, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='LT', index=129, number=129, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='LU', index=130, number=130, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='MO', index=131, number=131, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='MK', index=132, number=132, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='MG', index=133, number=133, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='MW', index=134, number=134, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='MY', index=135, number=135, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='MV', index=136, number=136, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='ML', index=137, number=137, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='MT', index=138, number=138, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='MH', index=139, number=139, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='MQ', index=140, number=140, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='MR', index=141, number=141, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='MU', index=142, number=142, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='YT', index=143, number=143, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='MX', index=144, number=144, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='FM', index=145, number=145, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='MD', index=146, number=146, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='MC', index=147, number=147, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='MN', index=148, number=148, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='ME', index=149, number=149, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='MS', index=150, number=150, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='MA', index=151, number=151, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='MZ', index=152, number=152, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='MM', index=153, number=153, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='NA', index=154, number=154, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='NR', index=155, number=155, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='NP', index=156, number=156, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='NL', index=157, number=157, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='NC', index=158, number=158, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='NZ', index=159, number=159, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='NI', index=160, number=160, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='NE', index=161, number=161, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='NG', index=162, number=162, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='NU', index=163, number=163, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='NF', index=164, number=164, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='MP', index=165, number=165, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='NO', index=166, number=166, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='OM', index=167, number=167, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='PK', index=168, number=168, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='PW', index=169, number=169, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='PS', index=170, number=170, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='PA', index=171, number=171, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='PG', index=172, number=172, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='PY', index=173, number=173, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='PE', index=174, number=174, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='PH', index=175, number=175, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='PN', index=176, number=176, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='PL', index=177, number=177, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='PT', index=178, number=178, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='PR', index=179, number=179, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='QA', index=180, number=180, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='RE', index=181, number=181, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='RO', index=182, number=182, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='RU', index=183, number=183, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='RW', index=184, number=184, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='BL', index=185, number=185, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='SH', index=186, number=186, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='KN', index=187, number=187, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='LC', index=188, number=188, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='MF', index=189, number=189, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='PM', index=190, number=190, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='VC', index=191, number=191, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='WS', index=192, number=192, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='SM', index=193, number=193, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='ST', index=194, number=194, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='SA', index=195, number=195, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='SN', index=196, number=196, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='RS', index=197, number=197, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='SC', index=198, number=198, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='SL', index=199, number=199, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='SG', index=200, number=200, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='SX', index=201, number=201, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='SK', index=202, number=202, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='SI', index=203, number=203, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='SB', index=204, number=204, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='SO', index=205, number=205, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='ZA', index=206, number=206, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='GS', index=207, number=207, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='SS', index=208, number=208, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='ES', index=209, number=209, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='LK', index=210, number=210, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='SD', index=211, number=211, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='SR', index=212, number=212, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='SJ', index=213, number=213, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='SZ', index=214, number=214, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='SE', index=215, number=215, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='CH', index=216, number=216, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='SY', index=217, number=217, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='TW', index=218, number=218, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='TJ', index=219, number=219, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='TZ', index=220, number=220, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='TH', index=221, number=221, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='TL', index=222, number=222, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='TG', index=223, number=223, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='TK', index=224, number=224, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='TO', index=225, number=225, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='TT', index=226, number=226, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='TN', index=227, number=227, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='TR', index=228, number=228, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='TM', index=229, number=229, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='TC', index=230, number=230, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='TV', index=231, number=231, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='UG', index=232, number=232, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='UA', index=233, number=233, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='AE', index=234, number=234, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='GB', index=235, number=235, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='US', index=236, number=236, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='UM', index=237, number=237, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='UY', index=238, number=238, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='UZ', index=239, number=239, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='VU', index=240, number=240, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='VE', index=241, number=241, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='VN', index=242, number=242, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='VG', index=243, number=243, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='VI', index=244, number=244, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='WF', index=245, number=245, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='EH', index=246, number=246, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='YE', index=247, number=247, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='ZM', index=248, number=248, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='ZW', index=249, number=249, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R001', index=250, number=250, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R002', index=251, number=251, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R015', index=252, number=252, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R012', index=253, number=253, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R818', index=254, number=254, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R434', index=255, number=255, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R504', index=256, number=256, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R729', index=257, number=257, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R788', index=258, number=258, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R732', index=259, number=259, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R202', index=260, number=260, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R014', index=261, number=261, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R086', index=262, number=262, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R108', index=263, number=263, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R174', index=264, number=264, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R262', index=265, number=265, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R232', index=266, number=266, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R231', index=267, number=267, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R260', index=268, number=268, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R404', index=269, number=269, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R450', index=270, number=270, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R454', index=271, number=271, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R480', index=272, number=272, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R175', index=273, number=273, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R508', index=274, number=274, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R638', index=275, number=275, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R646', index=276, number=276, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R690', index=277, number=277, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R706', index=278, number=278, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R728', index=279, number=279, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R800', index=280, number=280, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R834', index=281, number=281, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R894', index=282, number=282, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R716', index=283, number=283, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R017', index=284, number=284, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R024', index=285, number=285, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R120', index=286, number=286, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R140', index=287, number=287, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R148', index=288, number=288, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R178', index=289, number=289, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R180', index=290, number=290, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R226', index=291, number=291, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R266', index=292, number=292, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R678', index=293, number=293, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R018', index=294, number=294, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R072', index=295, number=295, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R748', index=296, number=296, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R426', index=297, number=297, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R516', index=298, number=298, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R710', index=299, number=299, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R011', index=300, number=300, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R204', index=301, number=301, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R854', index=302, number=302, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R132', index=303, number=303, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R384', index=304, number=304, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R270', index=305, number=305, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R288', index=306, number=306, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R324', index=307, number=307, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R624', index=308, number=308, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R430', index=309, number=309, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R466', index=310, number=310, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R478', index=311, number=311, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R562', index=312, number=312, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R566', index=313, number=313, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R654', index=314, number=314, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R686', index=315, number=315, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R694', index=316, number=316, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R768', index=317, number=317, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R019', index=318, number=318, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R419', index=319, number=319, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R029', index=320, number=320, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R660', index=321, number=321, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R028', index=322, number=322, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R533', index=323, number=323, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R044', index=324, number=324, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R052', index=325, number=325, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R535', index=326, number=326, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R092', index=327, number=327, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R136', index=328, number=328, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R192', index=329, number=329, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R531', index=330, number=330, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R212', index=331, number=331, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R214', index=332, number=332, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R308', index=333, number=333, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R312', index=334, number=334, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R332', index=335, number=335, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R388', index=336, number=336, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R474', index=337, number=337, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R500', index=338, number=338, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R630', index=339, number=339, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R652', index=340, number=340, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R659', index=341, number=341, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R662', index=342, number=342, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R663', index=343, number=343, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R670', index=344, number=344, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R534', index=345, number=345, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R780', index=346, number=346, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R796', index=347, number=347, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R850', index=348, number=348, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R013', index=349, number=349, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R084', index=350, number=350, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R188', index=351, number=351, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R222', index=352, number=352, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R320', index=353, number=353, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R340', index=354, number=354, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R484', index=355, number=355, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R558', index=356, number=356, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R591', index=357, number=357, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R005', index=358, number=358, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R032', index=359, number=359, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R068', index=360, number=360, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R074', index=361, number=361, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R076', index=362, number=362, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R152', index=363, number=363, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R170', index=364, number=364, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R218', index=365, number=365, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R238', index=366, number=366, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R254', index=367, number=367, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R328', index=368, number=368, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R600', index=369, number=369, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R604', index=370, number=370, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R239', index=371, number=371, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R740', index=372, number=372, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R858', index=373, number=373, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R862', index=374, number=374, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R021', index=375, number=375, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R060', index=376, number=376, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R124', index=377, number=377, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R304', index=378, number=378, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R666', index=379, number=379, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R840', index=380, number=380, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R010', index=381, number=381, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R142', index=382, number=382, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R143', index=383, number=383, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R398', index=384, number=384, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R417', index=385, number=385, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R762', index=386, number=386, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R795', index=387, number=387, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R860', index=388, number=388, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R030', index=389, number=389, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R156', index=390, number=390, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R344', index=391, number=391, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R446', index=392, number=392, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R408', index=393, number=393, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R392', index=394, number=394, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R496', index=395, number=395, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R410', index=396, number=396, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R035', index=397, number=397, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R096', index=398, number=398, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R116', index=399, number=399, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R360', index=400, number=400, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R418', index=401, number=401, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R458', index=402, number=402, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R104', index=403, number=403, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R608', index=404, number=404, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R702', index=405, number=405, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R764', index=406, number=406, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R626', index=407, number=407, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R704', index=408, number=408, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R034', index=409, number=409, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R004', index=410, number=410, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R050', index=411, number=411, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R064', index=412, number=412, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R356', index=413, number=413, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R364', index=414, number=414, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R462', index=415, number=415, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R524', index=416, number=416, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R586', index=417, number=417, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R144', index=418, number=418, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R145', index=419, number=419, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R051', index=420, number=420, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R031', index=421, number=421, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R048', index=422, number=422, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R196', index=423, number=423, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R268', index=424, number=424, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R368', index=425, number=425, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R376', index=426, number=426, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R400', index=427, number=427, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R414', index=428, number=428, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R422', index=429, number=429, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R512', index=430, number=430, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R634', index=431, number=431, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R682', index=432, number=432, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R275', index=433, number=433, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R760', index=434, number=434, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R792', index=435, number=435, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R784', index=436, number=436, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R887', index=437, number=437, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R150', index=438, number=438, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R151', index=439, number=439, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R112', index=440, number=440, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R100', index=441, number=441, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R203', index=442, number=442, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R348', index=443, number=443, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R616', index=444, number=444, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R498', index=445, number=445, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R642', index=446, number=446, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R643', index=447, number=447, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R703', index=448, number=448, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R804', index=449, number=449, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R154', index=450, number=450, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R248', index=451, number=451, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R830', index=452, number=452, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R831', index=453, number=453, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R832', index=454, number=454, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R680', index=455, number=455, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R208', index=456, number=456, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R233', index=457, number=457, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R234', index=458, number=458, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R246', index=459, number=459, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R352', index=460, number=460, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R372', index=461, number=461, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R833', index=462, number=462, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R428', index=463, number=463, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R440', index=464, number=464, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R578', index=465, number=465, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R744', index=466, number=466, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R752', index=467, number=467, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R826', index=468, number=468, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R039', index=469, number=469, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R008', index=470, number=470, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R020', index=471, number=471, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R070', index=472, number=472, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R191', index=473, number=473, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R292', index=474, number=474, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R300', index=475, number=475, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R336', index=476, number=476, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R380', index=477, number=477, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R470', index=478, number=478, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R499', index=479, number=479, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R807', index=480, number=480, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R620', index=481, number=481, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R674', index=482, number=482, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R688', index=483, number=483, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R705', index=484, number=484, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R724', index=485, number=485, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R155', index=486, number=486, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R040', index=487, number=487, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R056', index=488, number=488, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R250', index=489, number=489, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R276', index=490, number=490, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R438', index=491, number=491, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R442', index=492, number=492, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R492', index=493, number=493, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R528', index=494, number=494, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R756', index=495, number=495, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R009', index=496, number=496, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R053', index=497, number=497, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R036', index=498, number=498, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R162', index=499, number=499, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R166', index=500, number=500, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R334', index=501, number=501, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R554', index=502, number=502, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R574', index=503, number=503, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R054', index=504, number=504, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R242', index=505, number=505, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R540', index=506, number=506, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R598', index=507, number=507, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R090', index=508, number=508, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R548', index=509, number=509, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R057', index=510, number=510, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R316', index=511, number=511, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R296', index=512, number=512, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R584', index=513, number=513, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R583', index=514, number=514, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R520', index=515, number=515, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R580', index=516, number=516, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R585', index=517, number=517, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R581', index=518, number=518, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R061', index=519, number=519, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R016', index=520, number=520, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R184', index=521, number=521, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R258', index=522, number=522, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R570', index=523, number=523, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R612', index=524, number=524, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R882', index=525, number=525, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R772', index=526, number=526, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R776', index=527, number=527, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R798', index=528, number=528, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='R876', index=529, number=529, - options=None, - type=None), - ], - containing_type=None, - options=None, - serialized_start=5337, - serialized_end=10561, -) -_sym_db.RegisterEnumDescriptor(_LOCATION_COUNTRY) - - -_CLAIM = _descriptor.Descriptor( - name='Claim', - full_name='pb.Claim', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='stream', full_name='pb.Claim.stream', 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, - options=None), - _descriptor.FieldDescriptor( - name='channel', full_name='pb.Claim.channel', 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, - options=None), - _descriptor.FieldDescriptor( - name='collection', full_name='pb.Claim.collection', index=2, - number=3, 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, - options=None), - _descriptor.FieldDescriptor( - name='repost', full_name='pb.Claim.repost', index=3, - number=4, 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, - options=None), - _descriptor.FieldDescriptor( - name='title', full_name='pb.Claim.title', index=4, - 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, - options=None), - _descriptor.FieldDescriptor( - name='description', full_name='pb.Claim.description', index=5, - 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, - options=None), - _descriptor.FieldDescriptor( - name='thumbnail', full_name='pb.Claim.thumbnail', index=6, - number=10, 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, - options=None), - _descriptor.FieldDescriptor( - name='tags', full_name='pb.Claim.tags', index=7, - number=11, 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, - options=None), - _descriptor.FieldDescriptor( - name='languages', full_name='pb.Claim.languages', index=8, - 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, - options=None), - _descriptor.FieldDescriptor( - name='locations', full_name='pb.Claim.locations', index=9, - number=13, 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, - options=None), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - _descriptor.OneofDescriptor( - name='type', full_name='pb.Claim.type', - index=0, containing_type=None, fields=[]), - ], - serialized_start=20, - serialized_end=319, -) - - -_STREAM = _descriptor.Descriptor( - name='Stream', - full_name='pb.Stream', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='source', full_name='pb.Stream.source', 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, - options=None), - _descriptor.FieldDescriptor( - name='author', full_name='pb.Stream.author', 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, - options=None), - _descriptor.FieldDescriptor( - name='license', full_name='pb.Stream.license', 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, - options=None), - _descriptor.FieldDescriptor( - name='license_url', full_name='pb.Stream.license_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, - options=None), - _descriptor.FieldDescriptor( - name='release_time', full_name='pb.Stream.release_time', index=4, - number=5, type=3, cpp_type=2, label=1, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - options=None), - _descriptor.FieldDescriptor( - name='fee', full_name='pb.Stream.fee', index=5, - number=6, 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, - options=None), - _descriptor.FieldDescriptor( - name='image', full_name='pb.Stream.image', index=6, - number=10, 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, - options=None), - _descriptor.FieldDescriptor( - name='video', full_name='pb.Stream.video', index=7, - number=11, 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, - options=None), - _descriptor.FieldDescriptor( - name='audio', full_name='pb.Stream.audio', index=8, - number=12, 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, - options=None), - _descriptor.FieldDescriptor( - name='software', full_name='pb.Stream.software', index=9, - 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, - options=None), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - _descriptor.OneofDescriptor( - name='type', full_name='pb.Stream.type', - index=0, containing_type=None, fields=[]), - ], - serialized_start=322, - serialized_end=582, -) - - -_CHANNEL = _descriptor.Descriptor( - name='Channel', - full_name='pb.Channel', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='public_key', full_name='pb.Channel.public_key', 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, - options=None), - _descriptor.FieldDescriptor( - name='email', full_name='pb.Channel.email', 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, - options=None), - _descriptor.FieldDescriptor( - name='website_url', full_name='pb.Channel.website_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, - options=None), - _descriptor.FieldDescriptor( - name='cover', full_name='pb.Channel.cover', index=3, - number=4, 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, - options=None), - _descriptor.FieldDescriptor( - name='featured', full_name='pb.Channel.featured', index=4, - number=5, 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, - options=None), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=584, - serialized_end=709, -) - - -_CLAIMREFERENCE = _descriptor.Descriptor( - name='ClaimReference', - full_name='pb.ClaimReference', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='claim_hash', full_name='pb.ClaimReference.claim_hash', 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, - options=None), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=711, - serialized_end=747, -) - - -_CLAIMLIST = _descriptor.Descriptor( - name='ClaimList', - full_name='pb.ClaimList', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='list_type', full_name='pb.ClaimList.list_type', index=0, - number=1, type=14, cpp_type=8, label=1, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - options=None), - _descriptor.FieldDescriptor( - name='claim_references', full_name='pb.ClaimList.claim_references', 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, - options=None), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - _CLAIMLIST_LISTTYPE, - ], - options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=750, - serialized_end=894, -) - - -_SOURCE = _descriptor.Descriptor( - name='Source', - full_name='pb.Source', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='hash', full_name='pb.Source.hash', 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, - options=None), - _descriptor.FieldDescriptor( - name='name', full_name='pb.Source.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, - options=None), - _descriptor.FieldDescriptor( - name='size', full_name='pb.Source.size', 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, - options=None), - _descriptor.FieldDescriptor( - name='media_type', full_name='pb.Source.media_type', 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, - options=None), - _descriptor.FieldDescriptor( - name='url', full_name='pb.Source.url', 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, - options=None), - _descriptor.FieldDescriptor( - name='sd_hash', full_name='pb.Source.sd_hash', index=5, - number=6, 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, - options=None), - _descriptor.FieldDescriptor( - name='bt_infohash', full_name='pb.Source.bt_infohash', index=6, - number=7, 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, - options=None), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=896, - serialized_end=1017, -) - - -_FEE = _descriptor.Descriptor( - name='Fee', - full_name='pb.Fee', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='currency', full_name='pb.Fee.currency', index=0, - number=1, type=14, cpp_type=8, label=1, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - options=None), - _descriptor.FieldDescriptor( - name='address', full_name='pb.Fee.address', index=1, - number=2, 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, - options=None), - _descriptor.FieldDescriptor( - name='amount', full_name='pb.Fee.amount', 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, - options=None), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - _FEE_CURRENCY, - ], - options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=1020, - serialized_end=1155, -) - - -_IMAGE = _descriptor.Descriptor( - name='Image', - full_name='pb.Image', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='width', full_name='pb.Image.width', 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, - options=None), - _descriptor.FieldDescriptor( - name='height', full_name='pb.Image.height', 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, - options=None), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=1157, - serialized_end=1195, -) - - -_VIDEO = _descriptor.Descriptor( - name='Video', - full_name='pb.Video', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='width', full_name='pb.Video.width', 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, - options=None), - _descriptor.FieldDescriptor( - name='height', full_name='pb.Video.height', 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, - options=None), - _descriptor.FieldDescriptor( - name='duration', full_name='pb.Video.duration', 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, - options=None), - _descriptor.FieldDescriptor( - name='audio', full_name='pb.Video.audio', index=3, - number=15, 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, - options=None), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=1197, - serialized_end=1279, -) - - -_AUDIO = _descriptor.Descriptor( - name='Audio', - full_name='pb.Audio', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='duration', full_name='pb.Audio.duration', 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, - options=None), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=1281, - serialized_end=1306, -) - - -_SOFTWARE = _descriptor.Descriptor( - name='Software', - full_name='pb.Software', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='os', full_name='pb.Software.os', 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, - options=None), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - _SOFTWARE_OS, - ], - options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=1308, - serialized_end=1416, -) - - -_LANGUAGE = _descriptor.Descriptor( - name='Language', - full_name='pb.Language', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='language', full_name='pb.Language.language', index=0, - number=1, type=14, cpp_type=8, label=1, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - options=None), - _descriptor.FieldDescriptor( - name='script', full_name='pb.Language.script', index=1, - number=2, type=14, cpp_type=8, label=1, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - options=None), - _descriptor.FieldDescriptor( - name='region', full_name='pb.Language.region', index=2, - number=3, type=14, cpp_type=8, label=1, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - options=None), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - _LANGUAGE_LANGUAGE, - _LANGUAGE_SCRIPT, - ], - options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=1419, - serialized_end=5202, -) - - -_LOCATION = _descriptor.Descriptor( - name='Location', - full_name='pb.Location', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='country', full_name='pb.Location.country', index=0, - number=1, type=14, cpp_type=8, label=1, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - options=None), - _descriptor.FieldDescriptor( - name='state', full_name='pb.Location.state', 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, - options=None), - _descriptor.FieldDescriptor( - name='city', full_name='pb.Location.city', 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, - options=None), - _descriptor.FieldDescriptor( - name='code', full_name='pb.Location.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, - options=None), - _descriptor.FieldDescriptor( - name='latitude', full_name='pb.Location.latitude', index=4, - number=5, type=17, 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, - options=None), - _descriptor.FieldDescriptor( - name='longitude', full_name='pb.Location.longitude', index=5, - number=6, type=17, 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, - options=None), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - _LOCATION_COUNTRY, - ], - options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=5205, - serialized_end=10561, -) - -_CLAIM.fields_by_name['stream'].message_type = _STREAM -_CLAIM.fields_by_name['channel'].message_type = _CHANNEL -_CLAIM.fields_by_name['collection'].message_type = _CLAIMLIST -_CLAIM.fields_by_name['repost'].message_type = _CLAIMREFERENCE -_CLAIM.fields_by_name['thumbnail'].message_type = _SOURCE -_CLAIM.fields_by_name['languages'].message_type = _LANGUAGE -_CLAIM.fields_by_name['locations'].message_type = _LOCATION -_CLAIM.oneofs_by_name['type'].fields.append( - _CLAIM.fields_by_name['stream']) -_CLAIM.fields_by_name['stream'].containing_oneof = _CLAIM.oneofs_by_name['type'] -_CLAIM.oneofs_by_name['type'].fields.append( - _CLAIM.fields_by_name['channel']) -_CLAIM.fields_by_name['channel'].containing_oneof = _CLAIM.oneofs_by_name['type'] -_CLAIM.oneofs_by_name['type'].fields.append( - _CLAIM.fields_by_name['collection']) -_CLAIM.fields_by_name['collection'].containing_oneof = _CLAIM.oneofs_by_name['type'] -_CLAIM.oneofs_by_name['type'].fields.append( - _CLAIM.fields_by_name['repost']) -_CLAIM.fields_by_name['repost'].containing_oneof = _CLAIM.oneofs_by_name['type'] -_STREAM.fields_by_name['source'].message_type = _SOURCE -_STREAM.fields_by_name['fee'].message_type = _FEE -_STREAM.fields_by_name['image'].message_type = _IMAGE -_STREAM.fields_by_name['video'].message_type = _VIDEO -_STREAM.fields_by_name['audio'].message_type = _AUDIO -_STREAM.fields_by_name['software'].message_type = _SOFTWARE -_STREAM.oneofs_by_name['type'].fields.append( - _STREAM.fields_by_name['image']) -_STREAM.fields_by_name['image'].containing_oneof = _STREAM.oneofs_by_name['type'] -_STREAM.oneofs_by_name['type'].fields.append( - _STREAM.fields_by_name['video']) -_STREAM.fields_by_name['video'].containing_oneof = _STREAM.oneofs_by_name['type'] -_STREAM.oneofs_by_name['type'].fields.append( - _STREAM.fields_by_name['audio']) -_STREAM.fields_by_name['audio'].containing_oneof = _STREAM.oneofs_by_name['type'] -_STREAM.oneofs_by_name['type'].fields.append( - _STREAM.fields_by_name['software']) -_STREAM.fields_by_name['software'].containing_oneof = _STREAM.oneofs_by_name['type'] -_CHANNEL.fields_by_name['cover'].message_type = _SOURCE -_CHANNEL.fields_by_name['featured'].message_type = _CLAIMLIST -_CLAIMLIST.fields_by_name['list_type'].enum_type = _CLAIMLIST_LISTTYPE -_CLAIMLIST.fields_by_name['claim_references'].message_type = _CLAIMREFERENCE -_CLAIMLIST_LISTTYPE.containing_type = _CLAIMLIST -_FEE.fields_by_name['currency'].enum_type = _FEE_CURRENCY -_FEE_CURRENCY.containing_type = _FEE -_VIDEO.fields_by_name['audio'].message_type = _AUDIO -_SOFTWARE_OS.containing_type = _SOFTWARE -_LANGUAGE.fields_by_name['language'].enum_type = _LANGUAGE_LANGUAGE -_LANGUAGE.fields_by_name['script'].enum_type = _LANGUAGE_SCRIPT -_LANGUAGE.fields_by_name['region'].enum_type = _LOCATION_COUNTRY -_LANGUAGE_LANGUAGE.containing_type = _LANGUAGE -_LANGUAGE_SCRIPT.containing_type = _LANGUAGE -_LOCATION.fields_by_name['country'].enum_type = _LOCATION_COUNTRY -_LOCATION_COUNTRY.containing_type = _LOCATION -DESCRIPTOR.message_types_by_name['Claim'] = _CLAIM -DESCRIPTOR.message_types_by_name['Stream'] = _STREAM -DESCRIPTOR.message_types_by_name['Channel'] = _CHANNEL -DESCRIPTOR.message_types_by_name['ClaimReference'] = _CLAIMREFERENCE -DESCRIPTOR.message_types_by_name['ClaimList'] = _CLAIMLIST -DESCRIPTOR.message_types_by_name['Source'] = _SOURCE -DESCRIPTOR.message_types_by_name['Fee'] = _FEE -DESCRIPTOR.message_types_by_name['Image'] = _IMAGE -DESCRIPTOR.message_types_by_name['Video'] = _VIDEO -DESCRIPTOR.message_types_by_name['Audio'] = _AUDIO -DESCRIPTOR.message_types_by_name['Software'] = _SOFTWARE -DESCRIPTOR.message_types_by_name['Language'] = _LANGUAGE -DESCRIPTOR.message_types_by_name['Location'] = _LOCATION - -Claim = _reflection.GeneratedProtocolMessageType('Claim', (_message.Message,), dict( - DESCRIPTOR = _CLAIM, - __module__ = 'claim_pb2' - # @@protoc_insertion_point(class_scope:pb.Claim) - )) -_sym_db.RegisterMessage(Claim) - -Stream = _reflection.GeneratedProtocolMessageType('Stream', (_message.Message,), dict( - DESCRIPTOR = _STREAM, - __module__ = 'claim_pb2' - # @@protoc_insertion_point(class_scope:pb.Stream) - )) -_sym_db.RegisterMessage(Stream) - -Channel = _reflection.GeneratedProtocolMessageType('Channel', (_message.Message,), dict( - DESCRIPTOR = _CHANNEL, - __module__ = 'claim_pb2' - # @@protoc_insertion_point(class_scope:pb.Channel) - )) -_sym_db.RegisterMessage(Channel) - -ClaimReference = _reflection.GeneratedProtocolMessageType('ClaimReference', (_message.Message,), dict( - DESCRIPTOR = _CLAIMREFERENCE, - __module__ = 'claim_pb2' - # @@protoc_insertion_point(class_scope:pb.ClaimReference) - )) -_sym_db.RegisterMessage(ClaimReference) - -ClaimList = _reflection.GeneratedProtocolMessageType('ClaimList', (_message.Message,), dict( - DESCRIPTOR = _CLAIMLIST, - __module__ = 'claim_pb2' - # @@protoc_insertion_point(class_scope:pb.ClaimList) - )) -_sym_db.RegisterMessage(ClaimList) - -Source = _reflection.GeneratedProtocolMessageType('Source', (_message.Message,), dict( - DESCRIPTOR = _SOURCE, - __module__ = 'claim_pb2' - # @@protoc_insertion_point(class_scope:pb.Source) - )) -_sym_db.RegisterMessage(Source) - -Fee = _reflection.GeneratedProtocolMessageType('Fee', (_message.Message,), dict( - DESCRIPTOR = _FEE, - __module__ = 'claim_pb2' - # @@protoc_insertion_point(class_scope:pb.Fee) - )) -_sym_db.RegisterMessage(Fee) - -Image = _reflection.GeneratedProtocolMessageType('Image', (_message.Message,), dict( - DESCRIPTOR = _IMAGE, - __module__ = 'claim_pb2' - # @@protoc_insertion_point(class_scope:pb.Image) - )) -_sym_db.RegisterMessage(Image) - -Video = _reflection.GeneratedProtocolMessageType('Video', (_message.Message,), dict( - DESCRIPTOR = _VIDEO, - __module__ = 'claim_pb2' - # @@protoc_insertion_point(class_scope:pb.Video) - )) -_sym_db.RegisterMessage(Video) - -Audio = _reflection.GeneratedProtocolMessageType('Audio', (_message.Message,), dict( - DESCRIPTOR = _AUDIO, - __module__ = 'claim_pb2' - # @@protoc_insertion_point(class_scope:pb.Audio) - )) -_sym_db.RegisterMessage(Audio) - -Software = _reflection.GeneratedProtocolMessageType('Software', (_message.Message,), dict( - DESCRIPTOR = _SOFTWARE, - __module__ = 'claim_pb2' - # @@protoc_insertion_point(class_scope:pb.Software) - )) -_sym_db.RegisterMessage(Software) - -Language = _reflection.GeneratedProtocolMessageType('Language', (_message.Message,), dict( - DESCRIPTOR = _LANGUAGE, - __module__ = 'claim_pb2' - # @@protoc_insertion_point(class_scope:pb.Language) - )) -_sym_db.RegisterMessage(Language) - -Location = _reflection.GeneratedProtocolMessageType('Location', (_message.Message,), dict( - DESCRIPTOR = _LOCATION, - __module__ = 'claim_pb2' - # @@protoc_insertion_point(class_scope:pb.Location) - )) -_sym_db.RegisterMessage(Location) - - +from google.protobuf import any_pb2 as google_dot_protobuf_dot_any__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x0b\x63laim.proto\x12\x02pb\x1a\x19google/protobuf/any.proto\"\xb4\x02\n\x05\x43laim\x12\x1c\n\x06stream\x18\x01 \x01(\x0b\x32\n.pb.StreamH\x00\x12\x1e\n\x07\x63hannel\x18\x02 \x01(\x0b\x32\x0b.pb.ChannelH\x00\x12#\n\ncollection\x18\x03 \x01(\x0b\x32\r.pb.ClaimListH\x00\x12-\n\x06repost\x18\x04 \x01(\x0b\x32\x1b.pb.ModifyingClaimReferenceH\x00\x12\r\n\x05title\x18\x08 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\t \x01(\t\x12\x1d\n\tthumbnail\x18\n \x01(\x0b\x32\n.pb.Source\x12\x0c\n\x04tags\x18\x0b \x03(\t\x12\x1f\n\tlanguages\x18\x0c \x03(\x0b\x32\x0c.pb.Language\x12\x1f\n\tlocations\x18\r \x03(\x0b\x32\x0c.pb.LocationB\x06\n\x04type\"\x90\x04\n\x06Stream\x12\x1a\n\x06source\x18\x01 \x01(\x0b\x32\n.pb.Source\x12\x0e\n\x06\x61uthor\x18\x02 \x01(\t\x12\x0f\n\x07license\x18\x03 \x01(\t\x12\x13\n\x0blicense_url\x18\x04 \x01(\t\x12\x14\n\x0crelease_time\x18\x05 \x01(\x03\x12\x14\n\x03\x66\x65\x65\x18\x06 \x01(\x0b\x32\x07.pb.Fee\x12\x1a\n\x05image\x18\n \x01(\x0b\x32\t.pb.ImageH\x00\x12\x1a\n\x05video\x18\x0b \x01(\x0b\x32\t.pb.VideoH\x00\x12\x1a\n\x05\x61udio\x18\x0c \x01(\x0b\x32\t.pb.AudioH\x00\x12 \n\x08software\x18\r \x01(\x0b\x32\x0c.pb.SoftwareH\x00\x12.\n\nextensions\x18\x0e \x03(\x0b\x32\x1a.pb.Stream.ExtensionsEntry\x1aG\n\x0f\x45xtensionsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12#\n\x05value\x18\x02 \x01(\x0b\x32\x14.google.protobuf.Any:\x02\x38\x01\x1a\x90\x01\n\nModifiable\x12\x39\n\nextensions\x18\x01 \x03(\x0b\x32%.pb.Stream.Modifiable.ExtensionsEntry\x1aG\n\x0f\x45xtensionsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12#\n\x05value\x18\x02 \x01(\x0b\x32\x14.google.protobuf.Any:\x02\x38\x01\x42\x06\n\x04type\"^\n\x0cModifyStream\x12(\n\tdeletions\x18\x01 \x01(\x0b\x32\x15.pb.Stream.Modifiable\x12$\n\x05\x65\x64its\x18\x02 \x01(\x0b\x32\x15.pb.Stream.Modifiable\"}\n\x07\x43hannel\x12\x12\n\npublic_key\x18\x01 \x01(\x0c\x12\r\n\x05\x65mail\x18\x02 \x01(\t\x12\x13\n\x0bwebsite_url\x18\x03 \x01(\t\x12\x19\n\x05\x63over\x18\x04 \x01(\x0b\x32\n.pb.Source\x12\x1f\n\x08\x66\x65\x61tured\x18\x05 \x01(\x0b\x32\r.pb.ClaimList\"$\n\x0e\x43laimReference\x12\x12\n\nclaim_hash\x18\x01 \x01(\x0c\"Y\n\x17ModifyingClaimReference\x12\x12\n\nclaim_hash\x18\x01 \x01(\x0c\x12\"\n\x06stream\x18\x02 \x01(\x0b\x32\x10.pb.ModifyStreamH\x00\x42\x06\n\x04type\"\x90\x01\n\tClaimList\x12)\n\tlist_type\x18\x01 \x01(\x0e\x32\x16.pb.ClaimList.ListType\x12,\n\x10\x63laim_references\x18\x02 \x03(\x0b\x32\x12.pb.ClaimReference\"*\n\x08ListType\x12\x0e\n\nCOLLECTION\x10\x00\x12\x0e\n\nDERIVATION\x10\x02\"y\n\x06Source\x12\x0c\n\x04hash\x18\x01 \x01(\x0c\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x0c\n\x04size\x18\x03 \x01(\x04\x12\x12\n\nmedia_type\x18\x04 \x01(\t\x12\x0b\n\x03url\x18\x05 \x01(\t\x12\x0f\n\x07sd_hash\x18\x06 \x01(\x0c\x12\x13\n\x0b\x62t_infohash\x18\x07 \x01(\x0c\"\x87\x01\n\x03\x46\x65\x65\x12\"\n\x08\x63urrency\x18\x01 \x01(\x0e\x32\x10.pb.Fee.Currency\x12\x0f\n\x07\x61\x64\x64ress\x18\x02 \x01(\x0c\x12\x0e\n\x06\x61mount\x18\x03 \x01(\x04\";\n\x08\x43urrency\x12\x14\n\x10UNKNOWN_CURRENCY\x10\x00\x12\x07\n\x03LBC\x10\x01\x12\x07\n\x03\x42TC\x10\x02\x12\x07\n\x03USD\x10\x03\"&\n\x05Image\x12\r\n\x05width\x18\x01 \x01(\r\x12\x0e\n\x06height\x18\x02 \x01(\r\"R\n\x05Video\x12\r\n\x05width\x18\x01 \x01(\r\x12\x0e\n\x06height\x18\x02 \x01(\r\x12\x10\n\x08\x64uration\x18\x03 \x01(\r\x12\x18\n\x05\x61udio\x18\x0f \x01(\x0b\x32\t.pb.Audio\"\x19\n\x05\x41udio\x12\x10\n\x08\x64uration\x18\x01 \x01(\r\"l\n\x08Software\x12\n\n\x02os\x18\x01 \x01(\t\"T\n\x02OS\x12\x0e\n\nUNKNOWN_OS\x10\x00\x12\x07\n\x03\x41NY\x10\x01\x12\t\n\x05LINUX\x10\x02\x12\x0b\n\x07WINDOWS\x10\x03\x12\x07\n\x03MAC\x10\x04\x12\x0b\n\x07\x41NDROID\x10\x05\x12\x07\n\x03IOS\x10\x06\"\xc7\x1d\n\x08Language\x12\'\n\x08language\x18\x01 \x01(\x0e\x32\x15.pb.Language.Language\x12#\n\x06script\x18\x02 \x01(\x0e\x32\x13.pb.Language.Script\x12$\n\x06region\x18\x03 \x01(\x0e\x32\x14.pb.Location.Country\"\x99\x0c\n\x08Language\x12\x14\n\x10UNKNOWN_LANGUAGE\x10\x00\x12\x06\n\x02\x65n\x10\x01\x12\x06\n\x02\x61\x61\x10\x02\x12\x06\n\x02\x61\x62\x10\x03\x12\x06\n\x02\x61\x65\x10\x04\x12\x06\n\x02\x61\x66\x10\x05\x12\x06\n\x02\x61k\x10\x06\x12\x06\n\x02\x61m\x10\x07\x12\x06\n\x02\x61n\x10\x08\x12\x06\n\x02\x61r\x10\t\x12\x06\n\x02\x61s\x10\n\x12\x06\n\x02\x61v\x10\x0b\x12\x06\n\x02\x61y\x10\x0c\x12\x06\n\x02\x61z\x10\r\x12\x06\n\x02\x62\x61\x10\x0e\x12\x06\n\x02\x62\x65\x10\x0f\x12\x06\n\x02\x62g\x10\x10\x12\x06\n\x02\x62h\x10\x11\x12\x06\n\x02\x62i\x10\x12\x12\x06\n\x02\x62m\x10\x13\x12\x06\n\x02\x62n\x10\x14\x12\x06\n\x02\x62o\x10\x15\x12\x06\n\x02\x62r\x10\x16\x12\x06\n\x02\x62s\x10\x17\x12\x06\n\x02\x63\x61\x10\x18\x12\x06\n\x02\x63\x65\x10\x19\x12\x06\n\x02\x63h\x10\x1a\x12\x06\n\x02\x63o\x10\x1b\x12\x06\n\x02\x63r\x10\x1c\x12\x06\n\x02\x63s\x10\x1d\x12\x06\n\x02\x63u\x10\x1e\x12\x06\n\x02\x63v\x10\x1f\x12\x06\n\x02\x63y\x10 \x12\x06\n\x02\x64\x61\x10!\x12\x06\n\x02\x64\x65\x10\"\x12\x06\n\x02\x64v\x10#\x12\x06\n\x02\x64z\x10$\x12\x06\n\x02\x65\x65\x10%\x12\x06\n\x02\x65l\x10&\x12\x06\n\x02\x65o\x10\'\x12\x06\n\x02\x65s\x10(\x12\x06\n\x02\x65t\x10)\x12\x06\n\x02\x65u\x10*\x12\x06\n\x02\x66\x61\x10+\x12\x06\n\x02\x66\x66\x10,\x12\x06\n\x02\x66i\x10-\x12\x06\n\x02\x66j\x10.\x12\x06\n\x02\x66o\x10/\x12\x06\n\x02\x66r\x10\x30\x12\x06\n\x02\x66y\x10\x31\x12\x06\n\x02ga\x10\x32\x12\x06\n\x02gd\x10\x33\x12\x06\n\x02gl\x10\x34\x12\x06\n\x02gn\x10\x35\x12\x06\n\x02gu\x10\x36\x12\x06\n\x02gv\x10\x37\x12\x06\n\x02ha\x10\x38\x12\x06\n\x02he\x10\x39\x12\x06\n\x02hi\x10:\x12\x06\n\x02ho\x10;\x12\x06\n\x02hr\x10<\x12\x06\n\x02ht\x10=\x12\x06\n\x02hu\x10>\x12\x06\n\x02hy\x10?\x12\x06\n\x02hz\x10@\x12\x06\n\x02ia\x10\x41\x12\x06\n\x02id\x10\x42\x12\x06\n\x02ie\x10\x43\x12\x06\n\x02ig\x10\x44\x12\x06\n\x02ii\x10\x45\x12\x06\n\x02ik\x10\x46\x12\x06\n\x02io\x10G\x12\x06\n\x02is\x10H\x12\x06\n\x02it\x10I\x12\x06\n\x02iu\x10J\x12\x06\n\x02ja\x10K\x12\x06\n\x02jv\x10L\x12\x06\n\x02ka\x10M\x12\x06\n\x02kg\x10N\x12\x06\n\x02ki\x10O\x12\x06\n\x02kj\x10P\x12\x06\n\x02kk\x10Q\x12\x06\n\x02kl\x10R\x12\x06\n\x02km\x10S\x12\x06\n\x02kn\x10T\x12\x06\n\x02ko\x10U\x12\x06\n\x02kr\x10V\x12\x06\n\x02ks\x10W\x12\x06\n\x02ku\x10X\x12\x06\n\x02kv\x10Y\x12\x06\n\x02kw\x10Z\x12\x06\n\x02ky\x10[\x12\x06\n\x02la\x10\\\x12\x06\n\x02lb\x10]\x12\x06\n\x02lg\x10^\x12\x06\n\x02li\x10_\x12\x06\n\x02ln\x10`\x12\x06\n\x02lo\x10\x61\x12\x06\n\x02lt\x10\x62\x12\x06\n\x02lu\x10\x63\x12\x06\n\x02lv\x10\x64\x12\x06\n\x02mg\x10\x65\x12\x06\n\x02mh\x10\x66\x12\x06\n\x02mi\x10g\x12\x06\n\x02mk\x10h\x12\x06\n\x02ml\x10i\x12\x06\n\x02mn\x10j\x12\x06\n\x02mr\x10k\x12\x06\n\x02ms\x10l\x12\x06\n\x02mt\x10m\x12\x06\n\x02my\x10n\x12\x06\n\x02na\x10o\x12\x06\n\x02nb\x10p\x12\x06\n\x02nd\x10q\x12\x06\n\x02ne\x10r\x12\x06\n\x02ng\x10s\x12\x06\n\x02nl\x10t\x12\x06\n\x02nn\x10u\x12\x06\n\x02no\x10v\x12\x06\n\x02nr\x10w\x12\x06\n\x02nv\x10x\x12\x06\n\x02ny\x10y\x12\x06\n\x02oc\x10z\x12\x06\n\x02oj\x10{\x12\x06\n\x02om\x10|\x12\x06\n\x02or\x10}\x12\x06\n\x02os\x10~\x12\x06\n\x02pa\x10\x7f\x12\x07\n\x02pi\x10\x80\x01\x12\x07\n\x02pl\x10\x81\x01\x12\x07\n\x02ps\x10\x82\x01\x12\x07\n\x02pt\x10\x83\x01\x12\x07\n\x02qu\x10\x84\x01\x12\x07\n\x02rm\x10\x85\x01\x12\x07\n\x02rn\x10\x86\x01\x12\x07\n\x02ro\x10\x87\x01\x12\x07\n\x02ru\x10\x88\x01\x12\x07\n\x02rw\x10\x89\x01\x12\x07\n\x02sa\x10\x8a\x01\x12\x07\n\x02sc\x10\x8b\x01\x12\x07\n\x02sd\x10\x8c\x01\x12\x07\n\x02se\x10\x8d\x01\x12\x07\n\x02sg\x10\x8e\x01\x12\x07\n\x02si\x10\x8f\x01\x12\x07\n\x02sk\x10\x90\x01\x12\x07\n\x02sl\x10\x91\x01\x12\x07\n\x02sm\x10\x92\x01\x12\x07\n\x02sn\x10\x93\x01\x12\x07\n\x02so\x10\x94\x01\x12\x07\n\x02sq\x10\x95\x01\x12\x07\n\x02sr\x10\x96\x01\x12\x07\n\x02ss\x10\x97\x01\x12\x07\n\x02st\x10\x98\x01\x12\x07\n\x02su\x10\x99\x01\x12\x07\n\x02sv\x10\x9a\x01\x12\x07\n\x02sw\x10\x9b\x01\x12\x07\n\x02ta\x10\x9c\x01\x12\x07\n\x02te\x10\x9d\x01\x12\x07\n\x02tg\x10\x9e\x01\x12\x07\n\x02th\x10\x9f\x01\x12\x07\n\x02ti\x10\xa0\x01\x12\x07\n\x02tk\x10\xa1\x01\x12\x07\n\x02tl\x10\xa2\x01\x12\x07\n\x02tn\x10\xa3\x01\x12\x07\n\x02to\x10\xa4\x01\x12\x07\n\x02tr\x10\xa5\x01\x12\x07\n\x02ts\x10\xa6\x01\x12\x07\n\x02tt\x10\xa7\x01\x12\x07\n\x02tw\x10\xa8\x01\x12\x07\n\x02ty\x10\xa9\x01\x12\x07\n\x02ug\x10\xaa\x01\x12\x07\n\x02uk\x10\xab\x01\x12\x07\n\x02ur\x10\xac\x01\x12\x07\n\x02uz\x10\xad\x01\x12\x07\n\x02ve\x10\xae\x01\x12\x07\n\x02vi\x10\xaf\x01\x12\x07\n\x02vo\x10\xb0\x01\x12\x07\n\x02wa\x10\xb1\x01\x12\x07\n\x02wo\x10\xb2\x01\x12\x07\n\x02xh\x10\xb3\x01\x12\x07\n\x02yi\x10\xb4\x01\x12\x07\n\x02yo\x10\xb5\x01\x12\x07\n\x02za\x10\xb6\x01\x12\x07\n\x02zh\x10\xb7\x01\x12\x07\n\x02zu\x10\xb8\x01\"\xaa\x10\n\x06Script\x12\x12\n\x0eUNKNOWN_SCRIPT\x10\x00\x12\x08\n\x04\x41\x64lm\x10\x01\x12\x08\n\x04\x41\x66\x61k\x10\x02\x12\x08\n\x04\x41ghb\x10\x03\x12\x08\n\x04\x41hom\x10\x04\x12\x08\n\x04\x41rab\x10\x05\x12\x08\n\x04\x41ran\x10\x06\x12\x08\n\x04\x41rmi\x10\x07\x12\x08\n\x04\x41rmn\x10\x08\x12\x08\n\x04\x41vst\x10\t\x12\x08\n\x04\x42\x61li\x10\n\x12\x08\n\x04\x42\x61mu\x10\x0b\x12\x08\n\x04\x42\x61ss\x10\x0c\x12\x08\n\x04\x42\x61tk\x10\r\x12\x08\n\x04\x42\x65ng\x10\x0e\x12\x08\n\x04\x42hks\x10\x0f\x12\x08\n\x04\x42lis\x10\x10\x12\x08\n\x04\x42opo\x10\x11\x12\x08\n\x04\x42rah\x10\x12\x12\x08\n\x04\x42rai\x10\x13\x12\x08\n\x04\x42ugi\x10\x14\x12\x08\n\x04\x42uhd\x10\x15\x12\x08\n\x04\x43\x61km\x10\x16\x12\x08\n\x04\x43\x61ns\x10\x17\x12\x08\n\x04\x43\x61ri\x10\x18\x12\x08\n\x04\x43ham\x10\x19\x12\x08\n\x04\x43her\x10\x1a\x12\x08\n\x04\x43irt\x10\x1b\x12\x08\n\x04\x43opt\x10\x1c\x12\x08\n\x04\x43pmn\x10\x1d\x12\x08\n\x04\x43prt\x10\x1e\x12\x08\n\x04\x43yrl\x10\x1f\x12\x08\n\x04\x43yrs\x10 \x12\x08\n\x04\x44\x65va\x10!\x12\x08\n\x04\x44ogr\x10\"\x12\x08\n\x04\x44srt\x10#\x12\x08\n\x04\x44upl\x10$\x12\x08\n\x04\x45gyd\x10%\x12\x08\n\x04\x45gyh\x10&\x12\x08\n\x04\x45gyp\x10\'\x12\x08\n\x04\x45lba\x10(\x12\x08\n\x04\x45lym\x10)\x12\x08\n\x04\x45thi\x10*\x12\x08\n\x04Geok\x10+\x12\x08\n\x04Geor\x10,\x12\x08\n\x04Glag\x10-\x12\x08\n\x04Gong\x10.\x12\x08\n\x04Gonm\x10/\x12\x08\n\x04Goth\x10\x30\x12\x08\n\x04Gran\x10\x31\x12\x08\n\x04Grek\x10\x32\x12\x08\n\x04Gujr\x10\x33\x12\x08\n\x04Guru\x10\x34\x12\x08\n\x04Hanb\x10\x35\x12\x08\n\x04Hang\x10\x36\x12\x08\n\x04Hani\x10\x37\x12\x08\n\x04Hano\x10\x38\x12\x08\n\x04Hans\x10\x39\x12\x08\n\x04Hant\x10:\x12\x08\n\x04Hatr\x10;\x12\x08\n\x04Hebr\x10<\x12\x08\n\x04Hira\x10=\x12\x08\n\x04Hluw\x10>\x12\x08\n\x04Hmng\x10?\x12\x08\n\x04Hmnp\x10@\x12\x08\n\x04Hrkt\x10\x41\x12\x08\n\x04Hung\x10\x42\x12\x08\n\x04Inds\x10\x43\x12\x08\n\x04Ital\x10\x44\x12\x08\n\x04Jamo\x10\x45\x12\x08\n\x04Java\x10\x46\x12\x08\n\x04Jpan\x10G\x12\x08\n\x04Jurc\x10H\x12\x08\n\x04Kali\x10I\x12\x08\n\x04Kana\x10J\x12\x08\n\x04Khar\x10K\x12\x08\n\x04Khmr\x10L\x12\x08\n\x04Khoj\x10M\x12\x08\n\x04Kitl\x10N\x12\x08\n\x04Kits\x10O\x12\x08\n\x04Knda\x10P\x12\x08\n\x04Kore\x10Q\x12\x08\n\x04Kpel\x10R\x12\x08\n\x04Kthi\x10S\x12\x08\n\x04Lana\x10T\x12\x08\n\x04Laoo\x10U\x12\x08\n\x04Latf\x10V\x12\x08\n\x04Latg\x10W\x12\x08\n\x04Latn\x10X\x12\x08\n\x04Leke\x10Y\x12\x08\n\x04Lepc\x10Z\x12\x08\n\x04Limb\x10[\x12\x08\n\x04Lina\x10\\\x12\x08\n\x04Linb\x10]\x12\x08\n\x04Lisu\x10^\x12\x08\n\x04Loma\x10_\x12\x08\n\x04Lyci\x10`\x12\x08\n\x04Lydi\x10\x61\x12\x08\n\x04Mahj\x10\x62\x12\x08\n\x04Maka\x10\x63\x12\x08\n\x04Mand\x10\x64\x12\x08\n\x04Mani\x10\x65\x12\x08\n\x04Marc\x10\x66\x12\x08\n\x04Maya\x10g\x12\x08\n\x04Medf\x10h\x12\x08\n\x04Mend\x10i\x12\x08\n\x04Merc\x10j\x12\x08\n\x04Mero\x10k\x12\x08\n\x04Mlym\x10l\x12\x08\n\x04Modi\x10m\x12\x08\n\x04Mong\x10n\x12\x08\n\x04Moon\x10o\x12\x08\n\x04Mroo\x10p\x12\x08\n\x04Mtei\x10q\x12\x08\n\x04Mult\x10r\x12\x08\n\x04Mymr\x10s\x12\x08\n\x04Nand\x10t\x12\x08\n\x04Narb\x10u\x12\x08\n\x04Nbat\x10v\x12\x08\n\x04Newa\x10w\x12\x08\n\x04Nkdb\x10x\x12\x08\n\x04Nkgb\x10y\x12\x08\n\x04Nkoo\x10z\x12\x08\n\x04Nshu\x10{\x12\x08\n\x04Ogam\x10|\x12\x08\n\x04Olck\x10}\x12\x08\n\x04Orkh\x10~\x12\x08\n\x04Orya\x10\x7f\x12\t\n\x04Osge\x10\x80\x01\x12\t\n\x04Osma\x10\x81\x01\x12\t\n\x04Palm\x10\x82\x01\x12\t\n\x04Pauc\x10\x83\x01\x12\t\n\x04Perm\x10\x84\x01\x12\t\n\x04Phag\x10\x85\x01\x12\t\n\x04Phli\x10\x86\x01\x12\t\n\x04Phlp\x10\x87\x01\x12\t\n\x04Phlv\x10\x88\x01\x12\t\n\x04Phnx\x10\x89\x01\x12\t\n\x04Plrd\x10\x8a\x01\x12\t\n\x04Piqd\x10\x8b\x01\x12\t\n\x04Prti\x10\x8c\x01\x12\t\n\x04Qaaa\x10\x8d\x01\x12\t\n\x04Qabx\x10\x8e\x01\x12\t\n\x04Rjng\x10\x8f\x01\x12\t\n\x04Rohg\x10\x90\x01\x12\t\n\x04Roro\x10\x91\x01\x12\t\n\x04Runr\x10\x92\x01\x12\t\n\x04Samr\x10\x93\x01\x12\t\n\x04Sara\x10\x94\x01\x12\t\n\x04Sarb\x10\x95\x01\x12\t\n\x04Saur\x10\x96\x01\x12\t\n\x04Sgnw\x10\x97\x01\x12\t\n\x04Shaw\x10\x98\x01\x12\t\n\x04Shrd\x10\x99\x01\x12\t\n\x04Shui\x10\x9a\x01\x12\t\n\x04Sidd\x10\x9b\x01\x12\t\n\x04Sind\x10\x9c\x01\x12\t\n\x04Sinh\x10\x9d\x01\x12\t\n\x04Sogd\x10\x9e\x01\x12\t\n\x04Sogo\x10\x9f\x01\x12\t\n\x04Sora\x10\xa0\x01\x12\t\n\x04Soyo\x10\xa1\x01\x12\t\n\x04Sund\x10\xa2\x01\x12\t\n\x04Sylo\x10\xa3\x01\x12\t\n\x04Syrc\x10\xa4\x01\x12\t\n\x04Syre\x10\xa5\x01\x12\t\n\x04Syrj\x10\xa6\x01\x12\t\n\x04Syrn\x10\xa7\x01\x12\t\n\x04Tagb\x10\xa8\x01\x12\t\n\x04Takr\x10\xa9\x01\x12\t\n\x04Tale\x10\xaa\x01\x12\t\n\x04Talu\x10\xab\x01\x12\t\n\x04Taml\x10\xac\x01\x12\t\n\x04Tang\x10\xad\x01\x12\t\n\x04Tavt\x10\xae\x01\x12\t\n\x04Telu\x10\xaf\x01\x12\t\n\x04Teng\x10\xb0\x01\x12\t\n\x04Tfng\x10\xb1\x01\x12\t\n\x04Tglg\x10\xb2\x01\x12\t\n\x04Thaa\x10\xb3\x01\x12\t\n\x04Thai\x10\xb4\x01\x12\t\n\x04Tibt\x10\xb5\x01\x12\t\n\x04Tirh\x10\xb6\x01\x12\t\n\x04Ugar\x10\xb7\x01\x12\t\n\x04Vaii\x10\xb8\x01\x12\t\n\x04Visp\x10\xb9\x01\x12\t\n\x04Wara\x10\xba\x01\x12\t\n\x04Wcho\x10\xbb\x01\x12\t\n\x04Wole\x10\xbc\x01\x12\t\n\x04Xpeo\x10\xbd\x01\x12\t\n\x04Xsux\x10\xbe\x01\x12\t\n\x04Yiii\x10\xbf\x01\x12\t\n\x04Zanb\x10\xc0\x01\x12\t\n\x04Zinh\x10\xc1\x01\x12\t\n\x04Zmth\x10\xc2\x01\x12\t\n\x04Zsye\x10\xc3\x01\x12\t\n\x04Zsym\x10\xc4\x01\x12\t\n\x04Zxxx\x10\xc5\x01\x12\t\n\x04Zyyy\x10\xc6\x01\x12\t\n\x04Zzzz\x10\xc7\x01\"\xec)\n\x08Location\x12%\n\x07\x63ountry\x18\x01 \x01(\x0e\x32\x14.pb.Location.Country\x12\r\n\x05state\x18\x02 \x01(\t\x12\x0c\n\x04\x63ity\x18\x03 \x01(\t\x12\x0c\n\x04\x63ode\x18\x04 \x01(\t\x12\x10\n\x08latitude\x18\x05 \x01(\x11\x12\x11\n\tlongitude\x18\x06 \x01(\x11\"\xe8(\n\x07\x43ountry\x12\x13\n\x0fUNKNOWN_COUNTRY\x10\x00\x12\x06\n\x02\x41\x46\x10\x01\x12\x06\n\x02\x41X\x10\x02\x12\x06\n\x02\x41L\x10\x03\x12\x06\n\x02\x44Z\x10\x04\x12\x06\n\x02\x41S\x10\x05\x12\x06\n\x02\x41\x44\x10\x06\x12\x06\n\x02\x41O\x10\x07\x12\x06\n\x02\x41I\x10\x08\x12\x06\n\x02\x41Q\x10\t\x12\x06\n\x02\x41G\x10\n\x12\x06\n\x02\x41R\x10\x0b\x12\x06\n\x02\x41M\x10\x0c\x12\x06\n\x02\x41W\x10\r\x12\x06\n\x02\x41U\x10\x0e\x12\x06\n\x02\x41T\x10\x0f\x12\x06\n\x02\x41Z\x10\x10\x12\x06\n\x02\x42S\x10\x11\x12\x06\n\x02\x42H\x10\x12\x12\x06\n\x02\x42\x44\x10\x13\x12\x06\n\x02\x42\x42\x10\x14\x12\x06\n\x02\x42Y\x10\x15\x12\x06\n\x02\x42\x45\x10\x16\x12\x06\n\x02\x42Z\x10\x17\x12\x06\n\x02\x42J\x10\x18\x12\x06\n\x02\x42M\x10\x19\x12\x06\n\x02\x42T\x10\x1a\x12\x06\n\x02\x42O\x10\x1b\x12\x06\n\x02\x42Q\x10\x1c\x12\x06\n\x02\x42\x41\x10\x1d\x12\x06\n\x02\x42W\x10\x1e\x12\x06\n\x02\x42V\x10\x1f\x12\x06\n\x02\x42R\x10 \x12\x06\n\x02IO\x10!\x12\x06\n\x02\x42N\x10\"\x12\x06\n\x02\x42G\x10#\x12\x06\n\x02\x42\x46\x10$\x12\x06\n\x02\x42I\x10%\x12\x06\n\x02KH\x10&\x12\x06\n\x02\x43M\x10\'\x12\x06\n\x02\x43\x41\x10(\x12\x06\n\x02\x43V\x10)\x12\x06\n\x02KY\x10*\x12\x06\n\x02\x43\x46\x10+\x12\x06\n\x02TD\x10,\x12\x06\n\x02\x43L\x10-\x12\x06\n\x02\x43N\x10.\x12\x06\n\x02\x43X\x10/\x12\x06\n\x02\x43\x43\x10\x30\x12\x06\n\x02\x43O\x10\x31\x12\x06\n\x02KM\x10\x32\x12\x06\n\x02\x43G\x10\x33\x12\x06\n\x02\x43\x44\x10\x34\x12\x06\n\x02\x43K\x10\x35\x12\x06\n\x02\x43R\x10\x36\x12\x06\n\x02\x43I\x10\x37\x12\x06\n\x02HR\x10\x38\x12\x06\n\x02\x43U\x10\x39\x12\x06\n\x02\x43W\x10:\x12\x06\n\x02\x43Y\x10;\x12\x06\n\x02\x43Z\x10<\x12\x06\n\x02\x44K\x10=\x12\x06\n\x02\x44J\x10>\x12\x06\n\x02\x44M\x10?\x12\x06\n\x02\x44O\x10@\x12\x06\n\x02\x45\x43\x10\x41\x12\x06\n\x02\x45G\x10\x42\x12\x06\n\x02SV\x10\x43\x12\x06\n\x02GQ\x10\x44\x12\x06\n\x02\x45R\x10\x45\x12\x06\n\x02\x45\x45\x10\x46\x12\x06\n\x02\x45T\x10G\x12\x06\n\x02\x46K\x10H\x12\x06\n\x02\x46O\x10I\x12\x06\n\x02\x46J\x10J\x12\x06\n\x02\x46I\x10K\x12\x06\n\x02\x46R\x10L\x12\x06\n\x02GF\x10M\x12\x06\n\x02PF\x10N\x12\x06\n\x02TF\x10O\x12\x06\n\x02GA\x10P\x12\x06\n\x02GM\x10Q\x12\x06\n\x02GE\x10R\x12\x06\n\x02\x44\x45\x10S\x12\x06\n\x02GH\x10T\x12\x06\n\x02GI\x10U\x12\x06\n\x02GR\x10V\x12\x06\n\x02GL\x10W\x12\x06\n\x02GD\x10X\x12\x06\n\x02GP\x10Y\x12\x06\n\x02GU\x10Z\x12\x06\n\x02GT\x10[\x12\x06\n\x02GG\x10\\\x12\x06\n\x02GN\x10]\x12\x06\n\x02GW\x10^\x12\x06\n\x02GY\x10_\x12\x06\n\x02HT\x10`\x12\x06\n\x02HM\x10\x61\x12\x06\n\x02VA\x10\x62\x12\x06\n\x02HN\x10\x63\x12\x06\n\x02HK\x10\x64\x12\x06\n\x02HU\x10\x65\x12\x06\n\x02IS\x10\x66\x12\x06\n\x02IN\x10g\x12\x06\n\x02ID\x10h\x12\x06\n\x02IR\x10i\x12\x06\n\x02IQ\x10j\x12\x06\n\x02IE\x10k\x12\x06\n\x02IM\x10l\x12\x06\n\x02IL\x10m\x12\x06\n\x02IT\x10n\x12\x06\n\x02JM\x10o\x12\x06\n\x02JP\x10p\x12\x06\n\x02JE\x10q\x12\x06\n\x02JO\x10r\x12\x06\n\x02KZ\x10s\x12\x06\n\x02KE\x10t\x12\x06\n\x02KI\x10u\x12\x06\n\x02KP\x10v\x12\x06\n\x02KR\x10w\x12\x06\n\x02KW\x10x\x12\x06\n\x02KG\x10y\x12\x06\n\x02LA\x10z\x12\x06\n\x02LV\x10{\x12\x06\n\x02LB\x10|\x12\x06\n\x02LS\x10}\x12\x06\n\x02LR\x10~\x12\x06\n\x02LY\x10\x7f\x12\x07\n\x02LI\x10\x80\x01\x12\x07\n\x02LT\x10\x81\x01\x12\x07\n\x02LU\x10\x82\x01\x12\x07\n\x02MO\x10\x83\x01\x12\x07\n\x02MK\x10\x84\x01\x12\x07\n\x02MG\x10\x85\x01\x12\x07\n\x02MW\x10\x86\x01\x12\x07\n\x02MY\x10\x87\x01\x12\x07\n\x02MV\x10\x88\x01\x12\x07\n\x02ML\x10\x89\x01\x12\x07\n\x02MT\x10\x8a\x01\x12\x07\n\x02MH\x10\x8b\x01\x12\x07\n\x02MQ\x10\x8c\x01\x12\x07\n\x02MR\x10\x8d\x01\x12\x07\n\x02MU\x10\x8e\x01\x12\x07\n\x02YT\x10\x8f\x01\x12\x07\n\x02MX\x10\x90\x01\x12\x07\n\x02\x46M\x10\x91\x01\x12\x07\n\x02MD\x10\x92\x01\x12\x07\n\x02MC\x10\x93\x01\x12\x07\n\x02MN\x10\x94\x01\x12\x07\n\x02ME\x10\x95\x01\x12\x07\n\x02MS\x10\x96\x01\x12\x07\n\x02MA\x10\x97\x01\x12\x07\n\x02MZ\x10\x98\x01\x12\x07\n\x02MM\x10\x99\x01\x12\x07\n\x02NA\x10\x9a\x01\x12\x07\n\x02NR\x10\x9b\x01\x12\x07\n\x02NP\x10\x9c\x01\x12\x07\n\x02NL\x10\x9d\x01\x12\x07\n\x02NC\x10\x9e\x01\x12\x07\n\x02NZ\x10\x9f\x01\x12\x07\n\x02NI\x10\xa0\x01\x12\x07\n\x02NE\x10\xa1\x01\x12\x07\n\x02NG\x10\xa2\x01\x12\x07\n\x02NU\x10\xa3\x01\x12\x07\n\x02NF\x10\xa4\x01\x12\x07\n\x02MP\x10\xa5\x01\x12\x07\n\x02NO\x10\xa6\x01\x12\x07\n\x02OM\x10\xa7\x01\x12\x07\n\x02PK\x10\xa8\x01\x12\x07\n\x02PW\x10\xa9\x01\x12\x07\n\x02PS\x10\xaa\x01\x12\x07\n\x02PA\x10\xab\x01\x12\x07\n\x02PG\x10\xac\x01\x12\x07\n\x02PY\x10\xad\x01\x12\x07\n\x02PE\x10\xae\x01\x12\x07\n\x02PH\x10\xaf\x01\x12\x07\n\x02PN\x10\xb0\x01\x12\x07\n\x02PL\x10\xb1\x01\x12\x07\n\x02PT\x10\xb2\x01\x12\x07\n\x02PR\x10\xb3\x01\x12\x07\n\x02QA\x10\xb4\x01\x12\x07\n\x02RE\x10\xb5\x01\x12\x07\n\x02RO\x10\xb6\x01\x12\x07\n\x02RU\x10\xb7\x01\x12\x07\n\x02RW\x10\xb8\x01\x12\x07\n\x02\x42L\x10\xb9\x01\x12\x07\n\x02SH\x10\xba\x01\x12\x07\n\x02KN\x10\xbb\x01\x12\x07\n\x02LC\x10\xbc\x01\x12\x07\n\x02MF\x10\xbd\x01\x12\x07\n\x02PM\x10\xbe\x01\x12\x07\n\x02VC\x10\xbf\x01\x12\x07\n\x02WS\x10\xc0\x01\x12\x07\n\x02SM\x10\xc1\x01\x12\x07\n\x02ST\x10\xc2\x01\x12\x07\n\x02SA\x10\xc3\x01\x12\x07\n\x02SN\x10\xc4\x01\x12\x07\n\x02RS\x10\xc5\x01\x12\x07\n\x02SC\x10\xc6\x01\x12\x07\n\x02SL\x10\xc7\x01\x12\x07\n\x02SG\x10\xc8\x01\x12\x07\n\x02SX\x10\xc9\x01\x12\x07\n\x02SK\x10\xca\x01\x12\x07\n\x02SI\x10\xcb\x01\x12\x07\n\x02SB\x10\xcc\x01\x12\x07\n\x02SO\x10\xcd\x01\x12\x07\n\x02ZA\x10\xce\x01\x12\x07\n\x02GS\x10\xcf\x01\x12\x07\n\x02SS\x10\xd0\x01\x12\x07\n\x02\x45S\x10\xd1\x01\x12\x07\n\x02LK\x10\xd2\x01\x12\x07\n\x02SD\x10\xd3\x01\x12\x07\n\x02SR\x10\xd4\x01\x12\x07\n\x02SJ\x10\xd5\x01\x12\x07\n\x02SZ\x10\xd6\x01\x12\x07\n\x02SE\x10\xd7\x01\x12\x07\n\x02\x43H\x10\xd8\x01\x12\x07\n\x02SY\x10\xd9\x01\x12\x07\n\x02TW\x10\xda\x01\x12\x07\n\x02TJ\x10\xdb\x01\x12\x07\n\x02TZ\x10\xdc\x01\x12\x07\n\x02TH\x10\xdd\x01\x12\x07\n\x02TL\x10\xde\x01\x12\x07\n\x02TG\x10\xdf\x01\x12\x07\n\x02TK\x10\xe0\x01\x12\x07\n\x02TO\x10\xe1\x01\x12\x07\n\x02TT\x10\xe2\x01\x12\x07\n\x02TN\x10\xe3\x01\x12\x07\n\x02TR\x10\xe4\x01\x12\x07\n\x02TM\x10\xe5\x01\x12\x07\n\x02TC\x10\xe6\x01\x12\x07\n\x02TV\x10\xe7\x01\x12\x07\n\x02UG\x10\xe8\x01\x12\x07\n\x02UA\x10\xe9\x01\x12\x07\n\x02\x41\x45\x10\xea\x01\x12\x07\n\x02GB\x10\xeb\x01\x12\x07\n\x02US\x10\xec\x01\x12\x07\n\x02UM\x10\xed\x01\x12\x07\n\x02UY\x10\xee\x01\x12\x07\n\x02UZ\x10\xef\x01\x12\x07\n\x02VU\x10\xf0\x01\x12\x07\n\x02VE\x10\xf1\x01\x12\x07\n\x02VN\x10\xf2\x01\x12\x07\n\x02VG\x10\xf3\x01\x12\x07\n\x02VI\x10\xf4\x01\x12\x07\n\x02WF\x10\xf5\x01\x12\x07\n\x02\x45H\x10\xf6\x01\x12\x07\n\x02YE\x10\xf7\x01\x12\x07\n\x02ZM\x10\xf8\x01\x12\x07\n\x02ZW\x10\xf9\x01\x12\t\n\x04R001\x10\xfa\x01\x12\t\n\x04R002\x10\xfb\x01\x12\t\n\x04R015\x10\xfc\x01\x12\t\n\x04R012\x10\xfd\x01\x12\t\n\x04R818\x10\xfe\x01\x12\t\n\x04R434\x10\xff\x01\x12\t\n\x04R504\x10\x80\x02\x12\t\n\x04R729\x10\x81\x02\x12\t\n\x04R788\x10\x82\x02\x12\t\n\x04R732\x10\x83\x02\x12\t\n\x04R202\x10\x84\x02\x12\t\n\x04R014\x10\x85\x02\x12\t\n\x04R086\x10\x86\x02\x12\t\n\x04R108\x10\x87\x02\x12\t\n\x04R174\x10\x88\x02\x12\t\n\x04R262\x10\x89\x02\x12\t\n\x04R232\x10\x8a\x02\x12\t\n\x04R231\x10\x8b\x02\x12\t\n\x04R260\x10\x8c\x02\x12\t\n\x04R404\x10\x8d\x02\x12\t\n\x04R450\x10\x8e\x02\x12\t\n\x04R454\x10\x8f\x02\x12\t\n\x04R480\x10\x90\x02\x12\t\n\x04R175\x10\x91\x02\x12\t\n\x04R508\x10\x92\x02\x12\t\n\x04R638\x10\x93\x02\x12\t\n\x04R646\x10\x94\x02\x12\t\n\x04R690\x10\x95\x02\x12\t\n\x04R706\x10\x96\x02\x12\t\n\x04R728\x10\x97\x02\x12\t\n\x04R800\x10\x98\x02\x12\t\n\x04R834\x10\x99\x02\x12\t\n\x04R894\x10\x9a\x02\x12\t\n\x04R716\x10\x9b\x02\x12\t\n\x04R017\x10\x9c\x02\x12\t\n\x04R024\x10\x9d\x02\x12\t\n\x04R120\x10\x9e\x02\x12\t\n\x04R140\x10\x9f\x02\x12\t\n\x04R148\x10\xa0\x02\x12\t\n\x04R178\x10\xa1\x02\x12\t\n\x04R180\x10\xa2\x02\x12\t\n\x04R226\x10\xa3\x02\x12\t\n\x04R266\x10\xa4\x02\x12\t\n\x04R678\x10\xa5\x02\x12\t\n\x04R018\x10\xa6\x02\x12\t\n\x04R072\x10\xa7\x02\x12\t\n\x04R748\x10\xa8\x02\x12\t\n\x04R426\x10\xa9\x02\x12\t\n\x04R516\x10\xaa\x02\x12\t\n\x04R710\x10\xab\x02\x12\t\n\x04R011\x10\xac\x02\x12\t\n\x04R204\x10\xad\x02\x12\t\n\x04R854\x10\xae\x02\x12\t\n\x04R132\x10\xaf\x02\x12\t\n\x04R384\x10\xb0\x02\x12\t\n\x04R270\x10\xb1\x02\x12\t\n\x04R288\x10\xb2\x02\x12\t\n\x04R324\x10\xb3\x02\x12\t\n\x04R624\x10\xb4\x02\x12\t\n\x04R430\x10\xb5\x02\x12\t\n\x04R466\x10\xb6\x02\x12\t\n\x04R478\x10\xb7\x02\x12\t\n\x04R562\x10\xb8\x02\x12\t\n\x04R566\x10\xb9\x02\x12\t\n\x04R654\x10\xba\x02\x12\t\n\x04R686\x10\xbb\x02\x12\t\n\x04R694\x10\xbc\x02\x12\t\n\x04R768\x10\xbd\x02\x12\t\n\x04R019\x10\xbe\x02\x12\t\n\x04R419\x10\xbf\x02\x12\t\n\x04R029\x10\xc0\x02\x12\t\n\x04R660\x10\xc1\x02\x12\t\n\x04R028\x10\xc2\x02\x12\t\n\x04R533\x10\xc3\x02\x12\t\n\x04R044\x10\xc4\x02\x12\t\n\x04R052\x10\xc5\x02\x12\t\n\x04R535\x10\xc6\x02\x12\t\n\x04R092\x10\xc7\x02\x12\t\n\x04R136\x10\xc8\x02\x12\t\n\x04R192\x10\xc9\x02\x12\t\n\x04R531\x10\xca\x02\x12\t\n\x04R212\x10\xcb\x02\x12\t\n\x04R214\x10\xcc\x02\x12\t\n\x04R308\x10\xcd\x02\x12\t\n\x04R312\x10\xce\x02\x12\t\n\x04R332\x10\xcf\x02\x12\t\n\x04R388\x10\xd0\x02\x12\t\n\x04R474\x10\xd1\x02\x12\t\n\x04R500\x10\xd2\x02\x12\t\n\x04R630\x10\xd3\x02\x12\t\n\x04R652\x10\xd4\x02\x12\t\n\x04R659\x10\xd5\x02\x12\t\n\x04R662\x10\xd6\x02\x12\t\n\x04R663\x10\xd7\x02\x12\t\n\x04R670\x10\xd8\x02\x12\t\n\x04R534\x10\xd9\x02\x12\t\n\x04R780\x10\xda\x02\x12\t\n\x04R796\x10\xdb\x02\x12\t\n\x04R850\x10\xdc\x02\x12\t\n\x04R013\x10\xdd\x02\x12\t\n\x04R084\x10\xde\x02\x12\t\n\x04R188\x10\xdf\x02\x12\t\n\x04R222\x10\xe0\x02\x12\t\n\x04R320\x10\xe1\x02\x12\t\n\x04R340\x10\xe2\x02\x12\t\n\x04R484\x10\xe3\x02\x12\t\n\x04R558\x10\xe4\x02\x12\t\n\x04R591\x10\xe5\x02\x12\t\n\x04R005\x10\xe6\x02\x12\t\n\x04R032\x10\xe7\x02\x12\t\n\x04R068\x10\xe8\x02\x12\t\n\x04R074\x10\xe9\x02\x12\t\n\x04R076\x10\xea\x02\x12\t\n\x04R152\x10\xeb\x02\x12\t\n\x04R170\x10\xec\x02\x12\t\n\x04R218\x10\xed\x02\x12\t\n\x04R238\x10\xee\x02\x12\t\n\x04R254\x10\xef\x02\x12\t\n\x04R328\x10\xf0\x02\x12\t\n\x04R600\x10\xf1\x02\x12\t\n\x04R604\x10\xf2\x02\x12\t\n\x04R239\x10\xf3\x02\x12\t\n\x04R740\x10\xf4\x02\x12\t\n\x04R858\x10\xf5\x02\x12\t\n\x04R862\x10\xf6\x02\x12\t\n\x04R021\x10\xf7\x02\x12\t\n\x04R060\x10\xf8\x02\x12\t\n\x04R124\x10\xf9\x02\x12\t\n\x04R304\x10\xfa\x02\x12\t\n\x04R666\x10\xfb\x02\x12\t\n\x04R840\x10\xfc\x02\x12\t\n\x04R010\x10\xfd\x02\x12\t\n\x04R142\x10\xfe\x02\x12\t\n\x04R143\x10\xff\x02\x12\t\n\x04R398\x10\x80\x03\x12\t\n\x04R417\x10\x81\x03\x12\t\n\x04R762\x10\x82\x03\x12\t\n\x04R795\x10\x83\x03\x12\t\n\x04R860\x10\x84\x03\x12\t\n\x04R030\x10\x85\x03\x12\t\n\x04R156\x10\x86\x03\x12\t\n\x04R344\x10\x87\x03\x12\t\n\x04R446\x10\x88\x03\x12\t\n\x04R408\x10\x89\x03\x12\t\n\x04R392\x10\x8a\x03\x12\t\n\x04R496\x10\x8b\x03\x12\t\n\x04R410\x10\x8c\x03\x12\t\n\x04R035\x10\x8d\x03\x12\t\n\x04R096\x10\x8e\x03\x12\t\n\x04R116\x10\x8f\x03\x12\t\n\x04R360\x10\x90\x03\x12\t\n\x04R418\x10\x91\x03\x12\t\n\x04R458\x10\x92\x03\x12\t\n\x04R104\x10\x93\x03\x12\t\n\x04R608\x10\x94\x03\x12\t\n\x04R702\x10\x95\x03\x12\t\n\x04R764\x10\x96\x03\x12\t\n\x04R626\x10\x97\x03\x12\t\n\x04R704\x10\x98\x03\x12\t\n\x04R034\x10\x99\x03\x12\t\n\x04R004\x10\x9a\x03\x12\t\n\x04R050\x10\x9b\x03\x12\t\n\x04R064\x10\x9c\x03\x12\t\n\x04R356\x10\x9d\x03\x12\t\n\x04R364\x10\x9e\x03\x12\t\n\x04R462\x10\x9f\x03\x12\t\n\x04R524\x10\xa0\x03\x12\t\n\x04R586\x10\xa1\x03\x12\t\n\x04R144\x10\xa2\x03\x12\t\n\x04R145\x10\xa3\x03\x12\t\n\x04R051\x10\xa4\x03\x12\t\n\x04R031\x10\xa5\x03\x12\t\n\x04R048\x10\xa6\x03\x12\t\n\x04R196\x10\xa7\x03\x12\t\n\x04R268\x10\xa8\x03\x12\t\n\x04R368\x10\xa9\x03\x12\t\n\x04R376\x10\xaa\x03\x12\t\n\x04R400\x10\xab\x03\x12\t\n\x04R414\x10\xac\x03\x12\t\n\x04R422\x10\xad\x03\x12\t\n\x04R512\x10\xae\x03\x12\t\n\x04R634\x10\xaf\x03\x12\t\n\x04R682\x10\xb0\x03\x12\t\n\x04R275\x10\xb1\x03\x12\t\n\x04R760\x10\xb2\x03\x12\t\n\x04R792\x10\xb3\x03\x12\t\n\x04R784\x10\xb4\x03\x12\t\n\x04R887\x10\xb5\x03\x12\t\n\x04R150\x10\xb6\x03\x12\t\n\x04R151\x10\xb7\x03\x12\t\n\x04R112\x10\xb8\x03\x12\t\n\x04R100\x10\xb9\x03\x12\t\n\x04R203\x10\xba\x03\x12\t\n\x04R348\x10\xbb\x03\x12\t\n\x04R616\x10\xbc\x03\x12\t\n\x04R498\x10\xbd\x03\x12\t\n\x04R642\x10\xbe\x03\x12\t\n\x04R643\x10\xbf\x03\x12\t\n\x04R703\x10\xc0\x03\x12\t\n\x04R804\x10\xc1\x03\x12\t\n\x04R154\x10\xc2\x03\x12\t\n\x04R248\x10\xc3\x03\x12\t\n\x04R830\x10\xc4\x03\x12\t\n\x04R831\x10\xc5\x03\x12\t\n\x04R832\x10\xc6\x03\x12\t\n\x04R680\x10\xc7\x03\x12\t\n\x04R208\x10\xc8\x03\x12\t\n\x04R233\x10\xc9\x03\x12\t\n\x04R234\x10\xca\x03\x12\t\n\x04R246\x10\xcb\x03\x12\t\n\x04R352\x10\xcc\x03\x12\t\n\x04R372\x10\xcd\x03\x12\t\n\x04R833\x10\xce\x03\x12\t\n\x04R428\x10\xcf\x03\x12\t\n\x04R440\x10\xd0\x03\x12\t\n\x04R578\x10\xd1\x03\x12\t\n\x04R744\x10\xd2\x03\x12\t\n\x04R752\x10\xd3\x03\x12\t\n\x04R826\x10\xd4\x03\x12\t\n\x04R039\x10\xd5\x03\x12\t\n\x04R008\x10\xd6\x03\x12\t\n\x04R020\x10\xd7\x03\x12\t\n\x04R070\x10\xd8\x03\x12\t\n\x04R191\x10\xd9\x03\x12\t\n\x04R292\x10\xda\x03\x12\t\n\x04R300\x10\xdb\x03\x12\t\n\x04R336\x10\xdc\x03\x12\t\n\x04R380\x10\xdd\x03\x12\t\n\x04R470\x10\xde\x03\x12\t\n\x04R499\x10\xdf\x03\x12\t\n\x04R807\x10\xe0\x03\x12\t\n\x04R620\x10\xe1\x03\x12\t\n\x04R674\x10\xe2\x03\x12\t\n\x04R688\x10\xe3\x03\x12\t\n\x04R705\x10\xe4\x03\x12\t\n\x04R724\x10\xe5\x03\x12\t\n\x04R155\x10\xe6\x03\x12\t\n\x04R040\x10\xe7\x03\x12\t\n\x04R056\x10\xe8\x03\x12\t\n\x04R250\x10\xe9\x03\x12\t\n\x04R276\x10\xea\x03\x12\t\n\x04R438\x10\xeb\x03\x12\t\n\x04R442\x10\xec\x03\x12\t\n\x04R492\x10\xed\x03\x12\t\n\x04R528\x10\xee\x03\x12\t\n\x04R756\x10\xef\x03\x12\t\n\x04R009\x10\xf0\x03\x12\t\n\x04R053\x10\xf1\x03\x12\t\n\x04R036\x10\xf2\x03\x12\t\n\x04R162\x10\xf3\x03\x12\t\n\x04R166\x10\xf4\x03\x12\t\n\x04R334\x10\xf5\x03\x12\t\n\x04R554\x10\xf6\x03\x12\t\n\x04R574\x10\xf7\x03\x12\t\n\x04R054\x10\xf8\x03\x12\t\n\x04R242\x10\xf9\x03\x12\t\n\x04R540\x10\xfa\x03\x12\t\n\x04R598\x10\xfb\x03\x12\t\n\x04R090\x10\xfc\x03\x12\t\n\x04R548\x10\xfd\x03\x12\t\n\x04R057\x10\xfe\x03\x12\t\n\x04R316\x10\xff\x03\x12\t\n\x04R296\x10\x80\x04\x12\t\n\x04R584\x10\x81\x04\x12\t\n\x04R583\x10\x82\x04\x12\t\n\x04R520\x10\x83\x04\x12\t\n\x04R580\x10\x84\x04\x12\t\n\x04R585\x10\x85\x04\x12\t\n\x04R581\x10\x86\x04\x12\t\n\x04R061\x10\x87\x04\x12\t\n\x04R016\x10\x88\x04\x12\t\n\x04R184\x10\x89\x04\x12\t\n\x04R258\x10\x8a\x04\x12\t\n\x04R570\x10\x8b\x04\x12\t\n\x04R612\x10\x8c\x04\x12\t\n\x04R882\x10\x8d\x04\x12\t\n\x04R772\x10\x8e\x04\x12\t\n\x04R776\x10\x8f\x04\x12\t\n\x04R798\x10\x90\x04\x12\t\n\x04R876\x10\x91\x04\x62\x06proto3') + +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals()) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'claim_pb2', globals()) +if _descriptor._USE_C_DESCRIPTORS == False: + + DESCRIPTOR._options = None + _STREAM_EXTENSIONSENTRY._options = None + _STREAM_EXTENSIONSENTRY._serialized_options = b'8\001' + _STREAM_MODIFIABLE_EXTENSIONSENTRY._options = None + _STREAM_MODIFIABLE_EXTENSIONSENTRY._serialized_options = b'8\001' + _CLAIM._serialized_start=47 + _CLAIM._serialized_end=355 + _STREAM._serialized_start=358 + _STREAM._serialized_end=886 + _STREAM_EXTENSIONSENTRY._serialized_start=660 + _STREAM_EXTENSIONSENTRY._serialized_end=731 + _STREAM_MODIFIABLE._serialized_start=734 + _STREAM_MODIFIABLE._serialized_end=878 + _STREAM_MODIFIABLE_EXTENSIONSENTRY._serialized_start=660 + _STREAM_MODIFIABLE_EXTENSIONSENTRY._serialized_end=731 + _MODIFYSTREAM._serialized_start=888 + _MODIFYSTREAM._serialized_end=982 + _CHANNEL._serialized_start=984 + _CHANNEL._serialized_end=1109 + _CLAIMREFERENCE._serialized_start=1111 + _CLAIMREFERENCE._serialized_end=1147 + _MODIFYINGCLAIMREFERENCE._serialized_start=1149 + _MODIFYINGCLAIMREFERENCE._serialized_end=1238 + _CLAIMLIST._serialized_start=1241 + _CLAIMLIST._serialized_end=1385 + _CLAIMLIST_LISTTYPE._serialized_start=1343 + _CLAIMLIST_LISTTYPE._serialized_end=1385 + _SOURCE._serialized_start=1387 + _SOURCE._serialized_end=1508 + _FEE._serialized_start=1511 + _FEE._serialized_end=1646 + _FEE_CURRENCY._serialized_start=1587 + _FEE_CURRENCY._serialized_end=1646 + _IMAGE._serialized_start=1648 + _IMAGE._serialized_end=1686 + _VIDEO._serialized_start=1688 + _VIDEO._serialized_end=1770 + _AUDIO._serialized_start=1772 + _AUDIO._serialized_end=1797 + _SOFTWARE._serialized_start=1799 + _SOFTWARE._serialized_end=1907 + _SOFTWARE_OS._serialized_start=1823 + _SOFTWARE_OS._serialized_end=1907 + _LANGUAGE._serialized_start=1910 + _LANGUAGE._serialized_end=5693 + _LANGUAGE_LANGUAGE._serialized_start=2039 + _LANGUAGE_LANGUAGE._serialized_end=3600 + _LANGUAGE_SCRIPT._serialized_start=3603 + _LANGUAGE_SCRIPT._serialized_end=5693 + _LOCATION._serialized_start=5696 + _LOCATION._serialized_end=11052 + _LOCATION_COUNTRY._serialized_start=5828 + _LOCATION_COUNTRY._serialized_end=11052 # @@protoc_insertion_point(module_scope) diff --git a/lbry/schema/types/v2/purchase_pb2.py b/lbry/schema/types/v2/purchase_pb2.py index a2f02e5845..5688219844 100644 --- a/lbry/schema/types/v2/purchase_pb2.py +++ b/lbry/schema/types/v2/purchase_pb2.py @@ -1,13 +1,11 @@ +# -*- coding: utf-8 -*- # Generated by the protocol buffer compiler. DO NOT EDIT! # source: purchase.proto - -import sys -_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1')) +"""Generated protocol buffer code.""" +from google.protobuf.internal import builder as _builder 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 descriptor_pool as _descriptor_pool from google.protobuf import symbol_database as _symbol_database -from google.protobuf import descriptor_pb2 # @@protoc_insertion_point(imports) _sym_db = _symbol_database.Default() @@ -15,55 +13,13 @@ -DESCRIPTOR = _descriptor.FileDescriptor( - name='purchase.proto', - package='pb', - syntax='proto3', - serialized_pb=_b('\n\x0epurchase.proto\x12\x02pb\"\x1e\n\x08Purchase\x12\x12\n\nclaim_hash\x18\x01 \x01(\x0c\x62\x06proto3') -) -_sym_db.RegisterFileDescriptor(DESCRIPTOR) - - - - -_PURCHASE = _descriptor.Descriptor( - name='Purchase', - full_name='pb.Purchase', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='claim_hash', full_name='pb.Purchase.claim_hash', 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, - options=None), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=22, - serialized_end=52, -) - -DESCRIPTOR.message_types_by_name['Purchase'] = _PURCHASE - -Purchase = _reflection.GeneratedProtocolMessageType('Purchase', (_message.Message,), dict( - DESCRIPTOR = _PURCHASE, - __module__ = 'purchase_pb2' - # @@protoc_insertion_point(class_scope:pb.Purchase) - )) -_sym_db.RegisterMessage(Purchase) +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x0epurchase.proto\x12\x02pb\"\x1e\n\x08Purchase\x12\x12\n\nclaim_hash\x18\x01 \x01(\x0c\x62\x06proto3') +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals()) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'purchase_pb2', globals()) +if _descriptor._USE_C_DESCRIPTORS == False: + DESCRIPTOR._options = None + _PURCHASE._serialized_start=22 + _PURCHASE._serialized_end=52 # @@protoc_insertion_point(module_scope) diff --git a/lbry/schema/types/v2/result_pb2.py b/lbry/schema/types/v2/result_pb2.py index be36eefdb2..caa35604a9 100644 --- a/lbry/schema/types/v2/result_pb2.py +++ b/lbry/schema/types/v2/result_pb2.py @@ -2,9 +2,9 @@ # Generated by the protocol buffer compiler. DO NOT EDIT! # source: result.proto """Generated protocol buffer code.""" +from google.protobuf.internal import builder as _builder 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 descriptor_pool as _descriptor_pool from google.protobuf import symbol_database as _symbol_database # @@protoc_insertion_point(imports) @@ -13,452 +13,23 @@ -DESCRIPTOR = _descriptor.FileDescriptor( - name='result.proto', - package='pb', - syntax='proto3', - serialized_options=b'Z$github.com/lbryio/hub/protobuf/go/pb', - create_key=_descriptor._internal_create_key, - serialized_pb=b'\n\x0cresult.proto\x12\x02pb\"\x97\x01\n\x07Outputs\x12\x18\n\x04txos\x18\x01 \x03(\x0b\x32\n.pb.Output\x12\x1e\n\nextra_txos\x18\x02 \x03(\x0b\x32\n.pb.Output\x12\r\n\x05total\x18\x03 \x01(\r\x12\x0e\n\x06offset\x18\x04 \x01(\r\x12\x1c\n\x07\x62locked\x18\x05 \x03(\x0b\x32\x0b.pb.Blocked\x12\x15\n\rblocked_total\x18\x06 \x01(\r\"{\n\x06Output\x12\x0f\n\x07tx_hash\x18\x01 \x01(\x0c\x12\x0c\n\x04nout\x18\x02 \x01(\r\x12\x0e\n\x06height\x18\x03 \x01(\r\x12\x1e\n\x05\x63laim\x18\x07 \x01(\x0b\x32\r.pb.ClaimMetaH\x00\x12\x1a\n\x05\x65rror\x18\x0f \x01(\x0b\x32\t.pb.ErrorH\x00\x42\x06\n\x04meta\"\xe6\x02\n\tClaimMeta\x12\x1b\n\x07\x63hannel\x18\x01 \x01(\x0b\x32\n.pb.Output\x12\x1a\n\x06repost\x18\x02 \x01(\x0b\x32\n.pb.Output\x12\x11\n\tshort_url\x18\x03 \x01(\t\x12\x15\n\rcanonical_url\x18\x04 \x01(\t\x12\x16\n\x0eis_controlling\x18\x05 \x01(\x08\x12\x18\n\x10take_over_height\x18\x06 \x01(\r\x12\x17\n\x0f\x63reation_height\x18\x07 \x01(\r\x12\x19\n\x11\x61\x63tivation_height\x18\x08 \x01(\r\x12\x19\n\x11\x65xpiration_height\x18\t \x01(\r\x12\x19\n\x11\x63laims_in_channel\x18\n \x01(\r\x12\x10\n\x08reposted\x18\x0b \x01(\r\x12\x18\n\x10\x65\x66\x66\x65\x63tive_amount\x18\x14 \x01(\x04\x12\x16\n\x0esupport_amount\x18\x15 \x01(\x04\x12\x16\n\x0etrending_score\x18\x16 \x01(\x01\"\x94\x01\n\x05\x45rror\x12\x1c\n\x04\x63ode\x18\x01 \x01(\x0e\x32\x0e.pb.Error.Code\x12\x0c\n\x04text\x18\x02 \x01(\t\x12\x1c\n\x07\x62locked\x18\x03 \x01(\x0b\x32\x0b.pb.Blocked\"A\n\x04\x43ode\x12\x10\n\x0cUNKNOWN_CODE\x10\x00\x12\r\n\tNOT_FOUND\x10\x01\x12\x0b\n\x07INVALID\x10\x02\x12\x0b\n\x07\x42LOCKED\x10\x03\"5\n\x07\x42locked\x12\r\n\x05\x63ount\x18\x01 \x01(\r\x12\x1b\n\x07\x63hannel\x18\x02 \x01(\x0b\x32\n.pb.OutputB&Z$github.com/lbryio/hub/protobuf/go/pbb\x06proto3' -) +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x0cresult.proto\x12\x02pb\"\x97\x01\n\x07Outputs\x12\x18\n\x04txos\x18\x01 \x03(\x0b\x32\n.pb.Output\x12\x1e\n\nextra_txos\x18\x02 \x03(\x0b\x32\n.pb.Output\x12\r\n\x05total\x18\x03 \x01(\r\x12\x0e\n\x06offset\x18\x04 \x01(\r\x12\x1c\n\x07\x62locked\x18\x05 \x03(\x0b\x32\x0b.pb.Blocked\x12\x15\n\rblocked_total\x18\x06 \x01(\r\"{\n\x06Output\x12\x0f\n\x07tx_hash\x18\x01 \x01(\x0c\x12\x0c\n\x04nout\x18\x02 \x01(\r\x12\x0e\n\x06height\x18\x03 \x01(\r\x12\x1e\n\x05\x63laim\x18\x07 \x01(\x0b\x32\r.pb.ClaimMetaH\x00\x12\x1a\n\x05\x65rror\x18\x0f \x01(\x0b\x32\t.pb.ErrorH\x00\x42\x06\n\x04meta\"\xaf\x03\n\tClaimMeta\x12\x1b\n\x07\x63hannel\x18\x01 \x01(\x0b\x32\n.pb.Output\x12\x1a\n\x06repost\x18\x02 \x01(\x0b\x32\n.pb.Output\x12\x11\n\tshort_url\x18\x03 \x01(\t\x12\x15\n\rcanonical_url\x18\x04 \x01(\t\x12\x16\n\x0eis_controlling\x18\x05 \x01(\x08\x12\x18\n\x10take_over_height\x18\x06 \x01(\r\x12\x17\n\x0f\x63reation_height\x18\x07 \x01(\r\x12\x19\n\x11\x61\x63tivation_height\x18\x08 \x01(\r\x12\x19\n\x11\x65xpiration_height\x18\t \x01(\r\x12\x19\n\x11\x63laims_in_channel\x18\n \x01(\r\x12\x10\n\x08reposted\x18\x0b \x01(\r\x12\x18\n\x10\x65\x66\x66\x65\x63tive_amount\x18\x14 \x01(\x04\x12\x16\n\x0esupport_amount\x18\x15 \x01(\x04\x12\x16\n\x0etrending_group\x18\x16 \x01(\r\x12\x16\n\x0etrending_mixed\x18\x17 \x01(\x02\x12\x16\n\x0etrending_local\x18\x18 \x01(\x02\x12\x17\n\x0ftrending_global\x18\x19 \x01(\x02\"\x94\x01\n\x05\x45rror\x12\x1c\n\x04\x63ode\x18\x01 \x01(\x0e\x32\x0e.pb.Error.Code\x12\x0c\n\x04text\x18\x02 \x01(\t\x12\x1c\n\x07\x62locked\x18\x03 \x01(\x0b\x32\x0b.pb.Blocked\"A\n\x04\x43ode\x12\x10\n\x0cUNKNOWN_CODE\x10\x00\x12\r\n\tNOT_FOUND\x10\x01\x12\x0b\n\x07INVALID\x10\x02\x12\x0b\n\x07\x42LOCKED\x10\x03\"5\n\x07\x42locked\x12\r\n\x05\x63ount\x18\x01 \x01(\r\x12\x1b\n\x07\x63hannel\x18\x02 \x01(\x0b\x32\n.pb.Outputb\x06proto3') +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals()) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'result_pb2', globals()) +if _descriptor._USE_C_DESCRIPTORS == False: - -_ERROR_CODE = _descriptor.EnumDescriptor( - name='Code', - full_name='pb.Error.Code', - filename=None, - file=DESCRIPTOR, - create_key=_descriptor._internal_create_key, - values=[ - _descriptor.EnumValueDescriptor( - name='UNKNOWN_CODE', index=0, number=0, - serialized_options=None, - type=None, - create_key=_descriptor._internal_create_key), - _descriptor.EnumValueDescriptor( - name='NOT_FOUND', index=1, number=1, - serialized_options=None, - type=None, - create_key=_descriptor._internal_create_key), - _descriptor.EnumValueDescriptor( - name='INVALID', index=2, number=2, - serialized_options=None, - type=None, - create_key=_descriptor._internal_create_key), - _descriptor.EnumValueDescriptor( - name='BLOCKED', index=3, number=3, - serialized_options=None, - type=None, - create_key=_descriptor._internal_create_key), - ], - containing_type=None, - serialized_options=None, - serialized_start=744, - serialized_end=809, -) -_sym_db.RegisterEnumDescriptor(_ERROR_CODE) - - -_OUTPUTS = _descriptor.Descriptor( - name='Outputs', - full_name='pb.Outputs', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='txos', full_name='pb.Outputs.txos', 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, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='extra_txos', full_name='pb.Outputs.extra_txos', 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, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='total', full_name='pb.Outputs.total', 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, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='offset', full_name='pb.Outputs.offset', 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, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='blocked', full_name='pb.Outputs.blocked', index=4, - number=5, 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, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='blocked_total', full_name='pb.Outputs.blocked_total', 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, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=21, - serialized_end=172, -) - - -_OUTPUT = _descriptor.Descriptor( - name='Output', - full_name='pb.Output', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='tx_hash', full_name='pb.Output.tx_hash', 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, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='nout', full_name='pb.Output.nout', 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, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='height', full_name='pb.Output.height', 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, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='claim', full_name='pb.Output.claim', index=3, - number=7, 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, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='error', full_name='pb.Output.error', index=4, - number=15, 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, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - _descriptor.OneofDescriptor( - name='meta', full_name='pb.Output.meta', - index=0, containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[]), - ], - serialized_start=174, - serialized_end=297, -) - - -_CLAIMMETA = _descriptor.Descriptor( - name='ClaimMeta', - full_name='pb.ClaimMeta', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='channel', full_name='pb.ClaimMeta.channel', 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, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='repost', full_name='pb.ClaimMeta.repost', 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, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='short_url', full_name='pb.ClaimMeta.short_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, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='canonical_url', full_name='pb.ClaimMeta.canonical_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, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='is_controlling', full_name='pb.ClaimMeta.is_controlling', index=4, - number=5, 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, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='take_over_height', full_name='pb.ClaimMeta.take_over_height', 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, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='creation_height', full_name='pb.ClaimMeta.creation_height', 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, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='activation_height', full_name='pb.ClaimMeta.activation_height', index=7, - number=8, 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, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='expiration_height', full_name='pb.ClaimMeta.expiration_height', 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, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='claims_in_channel', full_name='pb.ClaimMeta.claims_in_channel', index=9, - number=10, 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, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='reposted', full_name='pb.ClaimMeta.reposted', index=10, - number=11, 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, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='effective_amount', full_name='pb.ClaimMeta.effective_amount', index=11, - number=20, 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, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='support_amount', full_name='pb.ClaimMeta.support_amount', index=12, - number=21, 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, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='trending_score', full_name='pb.ClaimMeta.trending_score', index=13, - number=22, type=1, cpp_type=5, 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, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=300, - serialized_end=658, -) - - -_ERROR = _descriptor.Descriptor( - name='Error', - full_name='pb.Error', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='code', full_name='pb.Error.code', index=0, - number=1, type=14, cpp_type=8, 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, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='text', full_name='pb.Error.text', 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, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='blocked', full_name='pb.Error.blocked', index=2, - number=3, 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, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - _ERROR_CODE, - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=661, - serialized_end=809, -) - - -_BLOCKED = _descriptor.Descriptor( - name='Blocked', - full_name='pb.Blocked', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='count', full_name='pb.Blocked.count', 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, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='channel', full_name='pb.Blocked.channel', 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, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=811, - serialized_end=864, -) - -_OUTPUTS.fields_by_name['txos'].message_type = _OUTPUT -_OUTPUTS.fields_by_name['extra_txos'].message_type = _OUTPUT -_OUTPUTS.fields_by_name['blocked'].message_type = _BLOCKED -_OUTPUT.fields_by_name['claim'].message_type = _CLAIMMETA -_OUTPUT.fields_by_name['error'].message_type = _ERROR -_OUTPUT.oneofs_by_name['meta'].fields.append( - _OUTPUT.fields_by_name['claim']) -_OUTPUT.fields_by_name['claim'].containing_oneof = _OUTPUT.oneofs_by_name['meta'] -_OUTPUT.oneofs_by_name['meta'].fields.append( - _OUTPUT.fields_by_name['error']) -_OUTPUT.fields_by_name['error'].containing_oneof = _OUTPUT.oneofs_by_name['meta'] -_CLAIMMETA.fields_by_name['channel'].message_type = _OUTPUT -_CLAIMMETA.fields_by_name['repost'].message_type = _OUTPUT -_ERROR.fields_by_name['code'].enum_type = _ERROR_CODE -_ERROR.fields_by_name['blocked'].message_type = _BLOCKED -_ERROR_CODE.containing_type = _ERROR -_BLOCKED.fields_by_name['channel'].message_type = _OUTPUT -DESCRIPTOR.message_types_by_name['Outputs'] = _OUTPUTS -DESCRIPTOR.message_types_by_name['Output'] = _OUTPUT -DESCRIPTOR.message_types_by_name['ClaimMeta'] = _CLAIMMETA -DESCRIPTOR.message_types_by_name['Error'] = _ERROR -DESCRIPTOR.message_types_by_name['Blocked'] = _BLOCKED -_sym_db.RegisterFileDescriptor(DESCRIPTOR) - -Outputs = _reflection.GeneratedProtocolMessageType('Outputs', (_message.Message,), { - 'DESCRIPTOR' : _OUTPUTS, - '__module__' : 'result_pb2' - # @@protoc_insertion_point(class_scope:pb.Outputs) - }) -_sym_db.RegisterMessage(Outputs) - -Output = _reflection.GeneratedProtocolMessageType('Output', (_message.Message,), { - 'DESCRIPTOR' : _OUTPUT, - '__module__' : 'result_pb2' - # @@protoc_insertion_point(class_scope:pb.Output) - }) -_sym_db.RegisterMessage(Output) - -ClaimMeta = _reflection.GeneratedProtocolMessageType('ClaimMeta', (_message.Message,), { - 'DESCRIPTOR' : _CLAIMMETA, - '__module__' : 'result_pb2' - # @@protoc_insertion_point(class_scope:pb.ClaimMeta) - }) -_sym_db.RegisterMessage(ClaimMeta) - -Error = _reflection.GeneratedProtocolMessageType('Error', (_message.Message,), { - 'DESCRIPTOR' : _ERROR, - '__module__' : 'result_pb2' - # @@protoc_insertion_point(class_scope:pb.Error) - }) -_sym_db.RegisterMessage(Error) - -Blocked = _reflection.GeneratedProtocolMessageType('Blocked', (_message.Message,), { - 'DESCRIPTOR' : _BLOCKED, - '__module__' : 'result_pb2' - # @@protoc_insertion_point(class_scope:pb.Blocked) - }) -_sym_db.RegisterMessage(Blocked) - - -DESCRIPTOR._options = None + DESCRIPTOR._options = None + _OUTPUTS._serialized_start=21 + _OUTPUTS._serialized_end=172 + _OUTPUT._serialized_start=174 + _OUTPUT._serialized_end=297 + _CLAIMMETA._serialized_start=300 + _CLAIMMETA._serialized_end=731 + _ERROR._serialized_start=734 + _ERROR._serialized_end=882 + _ERROR_CODE._serialized_start=817 + _ERROR_CODE._serialized_end=882 + _BLOCKED._serialized_start=884 + _BLOCKED._serialized_end=937 # @@protoc_insertion_point(module_scope) diff --git a/lbry/schema/types/v2/stringmap_ext_pb2.py b/lbry/schema/types/v2/stringmap_ext_pb2.py new file mode 100644 index 0000000000..5b13461aff --- /dev/null +++ b/lbry/schema/types/v2/stringmap_ext_pb2.py @@ -0,0 +1,31 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: stringmap_ext.proto +"""Generated protocol buffer code.""" +from google.protobuf.internal import builder as _builder +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x13stringmap_ext.proto\x12\x03\x65xt\"\x82\x01\n\tStringMap\x12 \n\x01s\x18\x01 \x03(\x0b\x32\x15.ext.StringMap.SEntry\x1a\x13\n\x05Value\x12\n\n\x02vs\x18\x01 \x03(\t\x1a>\n\x06SEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12#\n\x05value\x18\x02 \x01(\x0b\x32\x14.ext.StringMap.Value:\x02\x38\x01\x62\x06proto3') + +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals()) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'stringmap_ext_pb2', globals()) +if _descriptor._USE_C_DESCRIPTORS == False: + + DESCRIPTOR._options = None + _STRINGMAP_SENTRY._options = None + _STRINGMAP_SENTRY._serialized_options = b'8\001' + _STRINGMAP._serialized_start=29 + _STRINGMAP._serialized_end=159 + _STRINGMAP_VALUE._serialized_start=76 + _STRINGMAP_VALUE._serialized_end=95 + _STRINGMAP_SENTRY._serialized_start=97 + _STRINGMAP_SENTRY._serialized_end=159 +# @@protoc_insertion_point(module_scope) diff --git a/lbry/schema/types/v2/support_pb2.py b/lbry/schema/types/v2/support_pb2.py index 2e3fdfcb02..19ba2c0119 100644 --- a/lbry/schema/types/v2/support_pb2.py +++ b/lbry/schema/types/v2/support_pb2.py @@ -1,13 +1,11 @@ +# -*- coding: utf-8 -*- # Generated by the protocol buffer compiler. DO NOT EDIT! # source: support.proto - -import sys -_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1')) +"""Generated protocol buffer code.""" +from google.protobuf.internal import builder as _builder 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 descriptor_pool as _descriptor_pool from google.protobuf import symbol_database as _symbol_database -from google.protobuf import descriptor_pb2 # @@protoc_insertion_point(imports) _sym_db = _symbol_database.Default() @@ -15,62 +13,13 @@ -DESCRIPTOR = _descriptor.FileDescriptor( - name='support.proto', - package='pb', - syntax='proto3', - serialized_pb=_b('\n\rsupport.proto\x12\x02pb\")\n\x07Support\x12\r\n\x05\x65moji\x18\x01 \x01(\t\x12\x0f\n\x07\x63omment\x18\x02 \x01(\tb\x06proto3') -) -_sym_db.RegisterFileDescriptor(DESCRIPTOR) - - - - -_SUPPORT = _descriptor.Descriptor( - name='Support', - full_name='pb.Support', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='emoji', full_name='pb.Support.emoji', 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, - options=None), - _descriptor.FieldDescriptor( - name='comment', full_name='pb.Support.comment', 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, - options=None), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=21, - serialized_end=62, -) - -DESCRIPTOR.message_types_by_name['Support'] = _SUPPORT - -Support = _reflection.GeneratedProtocolMessageType('Support', (_message.Message,), dict( - DESCRIPTOR = _SUPPORT, - __module__ = 'support_pb2' - # @@protoc_insertion_point(class_scope:pb.Support) - )) -_sym_db.RegisterMessage(Support) +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\rsupport.proto\x12\x02pb\")\n\x07Support\x12\r\n\x05\x65moji\x18\x01 \x01(\t\x12\x0f\n\x07\x63omment\x18\x02 \x01(\tb\x06proto3') +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals()) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'support_pb2', globals()) +if _descriptor._USE_C_DESCRIPTORS == False: + DESCRIPTOR._options = None + _SUPPORT._serialized_start=21 + _SUPPORT._serialized_end=62 # @@protoc_insertion_point(module_scope) diff --git a/lbry/wallet/ledger.py b/lbry/wallet/ledger.py index 42499d2c65..826b63651b 100644 --- a/lbry/wallet/ledger.py +++ b/lbry/wallet/ledger.py @@ -11,6 +11,7 @@ from typing import Dict, Tuple, Type, Iterable, List, Optional, DefaultDict, NamedTuple from lbry.schema.result import Outputs, INVALID, NOT_FOUND +from lbry.schema.claim import Claim, Repost from lbry.schema.url import URL from lbry.crypto.hash import hash160, double_sha256, sha256 from lbry.crypto.base58 import Base58 @@ -865,6 +866,30 @@ async def _inflate_outputs( accounts=accounts ) txo.received_tips = tips + # For reposts, apply any deletions/edits specified. + for txo in txos: + if isinstance(txo, Output) and txo.can_decode_claim: + assert isinstance(txo.claim, Claim) + if not txo.claim.is_repost: + continue + reposted_txo = txo.original_reposted_claim + assert isinstance(reposted_txo, Output) + assert reposted_txo.can_decode_claim + if isinstance(reposted_txo, Output) and reposted_txo.can_decode_claim: + assert isinstance(reposted_txo.claim, Claim) + assert isinstance(txo.claim.repost, Repost) + modified_claim = txo.claim.repost.apply(reposted_txo.claim) + if modified_claim is reposted_txo.claim: + # Claim was not modified. The reposted_claim is the + # same as original_reposted_claim. + txo.reposted_claim = txo.original_reposted_claim + continue + # Make a deep copy so we can modify the txo without + # disturbing the TX cache contents. + modified_txo = copy.deepcopy(reposted_txo) + modified_txo.claim.message.CopyFrom(modified_claim.message) + # Set the reposted_claim field reported in results. + txo.reposted_claim = modified_txo return txos, blocked, outputs.offset, outputs.total async def resolve(self, accounts, urls, **kwargs): diff --git a/lbry/wallet/transaction.py b/lbry/wallet/transaction.py index 7b81661b96..e332b8a94e 100644 --- a/lbry/wallet/transaction.py +++ b/lbry/wallet/transaction.py @@ -212,7 +212,7 @@ class Output(InputOutput): 'amount', 'script', 'is_internal_transfer', 'is_spent', 'is_my_output', 'is_my_input', 'channel', 'private_key', 'meta', 'sent_supports', 'sent_tips', 'received_tips', 'purchase', 'purchased_claim', 'purchase_receipt', - 'reposted_claim', 'claims', '_signable' + 'original_reposted_claim', 'reposted_claim', 'claims', '_signable' ) def __init__(self, amount: int, script: OutputScript, @@ -239,7 +239,8 @@ def __init__(self, amount: int, script: OutputScript, self.purchase: 'Output' = None # txo containing purchase metadata self.purchased_claim: 'Output' = None # resolved claim pointed to by purchase self.purchase_receipt: 'Output' = None # txo representing purchase receipt for this claim - self.reposted_claim: 'Output' = None # txo representing claim being reposted + self.original_reposted_claim: 'Output' = None # txo representing claim being reposted + self.reposted_claim: 'Output' = None # original_reposted_claim with deletions/edits applied self.claims: List['Output'] = None # resolved claims for collection self._signable: Optional[Signable] = None self.meta = {} diff --git a/setup.py b/setup.py index 97046d40f5..8c5777cf5a 100644 --- a/setup.py +++ b/setup.py @@ -37,7 +37,7 @@ 'base58==1.0.0', 'cffi==1.13.2', 'cryptography==2.5', - 'protobuf==3.17.2', + 'protobuf==3.20.1', 'prometheus_client==0.7.1', 'ecdsa==0.13.3', 'pyyaml==5.3.1', @@ -57,7 +57,7 @@ 'jsonschema==4.4.0', ], 'hub': [ - 'hub@git+https://github.com/lbryio/hub.git@024aceda53fe6d1ab8d519b73584437c25de6975' + 'hub@git+https://github.com/moodyjon/hub.git@limited_repost' ] }, classifiers=[ diff --git a/tests/integration/claims/test_claim_commands.py b/tests/integration/claims/test_claim_commands.py index 1f0e15d476..65fc92e98c 100644 --- a/tests/integration/claims/test_claim_commands.py +++ b/tests/integration/claims/test_claim_commands.py @@ -2,11 +2,15 @@ import tempfile import logging import asyncio -from binascii import unhexlify +from binascii import unhexlify, hexlify from unittest import skip from urllib.request import urlopen import ecdsa +from google.protobuf.any_pb2 import Any as AnyMessage +from lbry.schema.types.v2.stringmap_ext_pb2 import StringMap as StringMapMessage +from lbry.schema.attrs import StreamExtension + from lbry.error import InsufficientFundsError from lbry.extras.daemon.daemon import DEFAULT_PAGE_SIZE @@ -1526,6 +1530,108 @@ async def test_repost(self): self.assertEqual(searched_repost['amount'], '0.42') self.assertEqual(searched_repost['signing_channel']['claim_id'], spam_claim_id) + async def test_repost_with_extensions(self): + tx = await self.channel_create('@goodies', '1.0') + goodies_claim_id = self.get_claim_id(tx) + tx = await self.channel_create('@spam', '1.0') + spam_claim_id = self.get_claim_id(tx) + + string_map_claim = '' # StringMap is built in. No need for claimid. + + m1 = StringMapMessage() + m1.s['cubic_cm'].vs.append("5") + m1.s['material'].vs.append("PLA1") + m1.s['material'].vs.append("PLA2") + ext1 = AnyMessage() + ext1.Pack(m1, type_url_prefix=string_map_claim) + ext1 = StreamExtension('cad', ext1) + self.assertEqual(ext1.message.TypeName(), "ext.StringMap") + self.assertEqual(ext1.schema, "cad") + self.assertEqual(ext1.to_dict(), {'cad': {'material': ['PLA1', 'PLA2'], 'cubic_cm': '5'}}) + + # create stream with extension adding "cad" + tx = await self.stream_create( + 'newstuff', '1.1', channel_name='@goodies', + extensions={'cad': ext1}, + ) + claim_id = self.get_claim_id(tx) + + self.assertEqual((await self.claim_search(name='newstuff'))[0]['meta']['reposted'], 0) + self.assertItemCount(await self.daemon.jsonrpc_txo_list(reposted_claim_id=claim_id), 0) + self.assertItemCount(await self.daemon.jsonrpc_txo_list(type='repost'), 0) + self.assertEqual( + (await self.claim_search(name='newstuff'))[0]['value']['extensions'], + {'cad': {'material': ['PLA1', 'PLA2'], 'cubic_cm': '5'}} + ) + """ + self.assertEqual( + (await self.claim_search(extensions=[{"schema": "cad"}]))[0]['value'], + [{'any': {'@type': f'/{ext1.TypeName()}', 's': {'material': 'PLA', 'cubic_cm': '5'}, 'schema': 'cad'}}], + (await self.claim_search(extensions=[{"schema": "foo"}])) + ) + """ + + m2 = StringMapMessage() + m2.s['genre'].vs.append("classical") + m2.s['tempo'].vs.append("allegro") + m2.s['venue'].vs.append("studio") + m2.s['instrument'].vs.append("flute") + m2.s['instrument'].vs.append("oboe") + ext2 = AnyMessage() + ext2.Pack(m2, type_url_prefix=string_map_claim) + ext2 = StreamExtension('music', ext2) + self.assertEqual(ext2.message.TypeName(), "ext.StringMap") + self.assertEqual(ext2.schema, "music") + self.assertEqual(ext2.to_dict(), {'music': {"genre": "classical", "instrument": ["flute", "oboe"], "tempo": "allegro", "venue": "studio"}}) + + # create repost adding extension "music" + tx = await self.stream_repost( + claim_id, 'newstuff-again', '1.1', channel_name='@spam', + extensions=ext2.to_dict(), + ) + repost_id = self.get_claim_id(tx) + + # test inflating reposted channels works + repost_url = f'newstuff-again:{repost_id}' + self.ledger._tx_cache.clear() + repost_resolve = await self.out(self.daemon.jsonrpc_resolve(repost_url)) + repost = repost_resolve[repost_url] + self.assertEqual(goodies_claim_id, repost['reposted_claim']['signing_channel']['claim_id']) + self.assertEqual( + repost['reposted_claim']["value"]["extensions"], + { + 'cad': {'material': ['PLA1', 'PLA2'], 'cubic_cm': '5'}, + 'music': {"genre": "classical", "instrument": ["flute", "oboe"], "tempo": "allegro", "venue": "studio"}, + }, + ) + + m3 = StringMapMessage() + ext3 = AnyMessage() + ext3.Pack(m3, type_url_prefix=string_map_claim) + ext3 = StreamExtension('cad', ext3) + self.assertEqual(ext3.message.TypeName(), "ext.StringMap") + self.assertEqual(ext3.schema, "cad") + self.assertEqual(ext3.to_dict(), {"cad": {}}) + + # update repost removing extension "cad" + await self.stream_update( + repost_id, + clear_extensions=ext3.to_dict(), + ) + repost_resolve = await self.out(self.daemon.jsonrpc_resolve(repost_url)) + repost = repost_resolve[repost_url] + self.assertEqual(goodies_claim_id, repost['reposted_claim']['signing_channel']['claim_id']) + self.assertEqual( + repost['reposted_claim']["value"]["extensions"], + {'music': {"genre": "classical", "instrument": ["flute", "oboe"], "tempo": "allegro", "venue": "studio"}}, + ) + + # original claim remains as created with extension "cad" + self.assertEqual( + (await self.claim_search(name='newstuff'))[0]['value']['extensions'], + {'cad': {'material': ['PLA1', 'PLA2'], 'cubic_cm': '5'}} + ) + async def test_filtering_channels_for_removing_content(self): some_channel_id = self.get_claim_id(await self.channel_create('@some_channel', '0.1')) await self.stream_create('good_content', '0.1', channel_name='@some_channel', tags=['good']) diff --git a/tests/unit/schema/test_models.py b/tests/unit/schema/test_models.py index 13c868ed03..68116bb02f 100644 --- a/tests/unit/schema/test_models.py +++ b/tests/unit/schema/test_models.py @@ -1,9 +1,14 @@ from unittest import TestCase from decimal import Decimal +import json from lbry.schema.claim import Claim, Stream, Collection +from lbry.schema.attrs import StreamExtension, StringMapMessage from lbry.error import InputValueIsNoneError - +from google.protobuf.json_format import MessageToDict, ParseDict +from google.protobuf.any_pb2 import Any as AnyMessage +from google.protobuf.proto_builder import MakeSimpleProtoClass +from google.protobuf.descriptor_pb2 import FieldDescriptorProto class TestClaimContainerAwareness(TestCase): @@ -217,3 +222,300 @@ def test_stream_update(self): stream.update(file_name=None) with self.assertRaises(InputValueIsNoneError): stream.update(thumbnail_url=None) + +class TestExtensionUpdating(TestCase): + + def setUp(self): + self.cad1 = StringMapMessage() + self.schema1 = 'cad' + self.cad1.s['material'].vs.append('PLA1') + self.cad1.s['material'].vs.append('PLA2') + self.cad1.s['cubic_cm'].vs.append('5') + self.schema1 = 'cad' + self.ext1 = AnyMessage() + self.ext1.Pack(self.cad1, type_url_prefix='') + self.ext1 = StreamExtension('cad', self.ext1) + self.ext1_dict = {'cad': {'material': ['PLA1', 'PLA2'], 'cubic_cm': '5'}} + self.ext1_json = json.dumps(self.ext1_dict) + + self.mus1 = StringMapMessage() + self.schema2 = 'music' + self.mus1.s['venue'].vs.append('studio') + self.mus1.s['genre'].vs.append('metal') + self.mus1.s['instrument'].vs.append('drum') + self.mus1.s['instrument'].vs.append('cymbal') + self.mus1.s['instrument'].vs.append('guitar') + self.ext2 = AnyMessage() + self.ext2.Pack(self.mus1, type_url_prefix='') + self.ext2 = StreamExtension('music', self.ext2) + self.ext2_dict = {'music': {'genre': 'metal', 'venue': 'studio', 'instrument': ['drum', 'cymbal', 'guitar']}} + self.ext2_json = json.dumps(self.ext2_dict) + + self.lit1 = StringMapMessage() + self.schema3 = 'lit' + self.lit1.s['pages'].vs.append('185') + self.lit1.s['genre'].vs.append('fiction') + self.lit1.s['genre'].vs.append('mystery') + self.lit1.s['format'].vs.append('epub') + self.ext3 = AnyMessage() + self.ext3.Pack(self.lit1, type_url_prefix='') + self.ext3 = StreamExtension('lit', self.ext3) + self.ext3_dict = {'lit': {'genre': ['fiction', 'mystery'], 'format': 'epub', 'pages': '185'}} + self.ext3_json = json.dumps(self.ext3_dict) + + def test_extension_unresolved_type(self): + self.maxDiff = None + + # Empty instance produces an error. + bad0 = StreamExtension(None, AnyMessage()) + self.assertEqual(bad0.to_dict(), {'None': {'error': "Stream extension type '/' could not be resolved."}}, bad0.to_dict()) + # Empty instance can be initialized. + bad0.from_value({'new': {'foo': '101'}}) + self.assertEqual(bad0.to_dict(), {'new': {'foo': '101'}}, bad0.to_dict()) + + # Construct a new protobuf message according to a NEW schema + # not in our descriptor pool. + cls = MakeSimpleProtoClass( + {'a': FieldDescriptorProto.TYPE_INT64, 'b': FieldDescriptorProto.TYPE_STRING}, + full_name='pb.NewMessage' + ) + new = cls() + new.a = 101 + new.b = 'property b value' + bad1 = AnyMessage() + bad1.Pack(new, type_url_prefix='') + + # String representation with type_url and encoded value can be printed. + self.assertEqual(str(bad1), 'type_url: "/pb.NewMessage"\nvalue: "\\010e\\022\\020property b value"\n', str(bad1)) + self.assertEqual(bad1.SerializeToString(), b'\n\x0e/pb.NewMessage\x12\x14\x08e\x12\x10property b value') + + # Create a stream with a bad extension whose type is unknown to us. + stream = Stream() + stream.update(extensions=self.ext1.to_dict()) + stream.update(extensions={'new': {}}) + stream.message.extensions['new'].Pack(new, type_url_prefix='') + stream.update(extensions=self.ext3.to_dict()) + + # Although the bad extension can't be decoded the way we would like, + # it is still possible to see the other two extensions. + self.assertEqual( + stream.to_dict(), + {'extensions': { + 'cad': { + 'material': ['PLA1', 'PLA2'], + 'cubic_cm': '5', + }, + 'lit': { + 'genre': ['fiction', 'mystery'], + 'format': 'epub', + 'pages': '185' + }, + 'new': { + 'error': "Stream extension type '/pb.NewMessage' could not be resolved." + } + }}, + stream.to_dict() + ) + + # Updates to bad extension are ignored. + stream.update(extensions={'new': {'foo': '101'}}) + self.assertEqual( + stream.to_dict(), + {'extensions': { + 'cad': { + 'material': ['PLA1', 'PLA2'], + 'cubic_cm': '5', + }, + 'lit': { + 'genre': ['fiction', 'mystery'], + 'format': 'epub', + 'pages': '185' + }, + 'new': { + 'error': "Stream extension type '/pb.NewMessage' could not be resolved." + } + }}, + stream.to_dict() + ) + + # Bad extension can be cleared. + stream.update(clear_extensions={'new': {}}) + self.assertEqual( + stream.to_dict(), + {'extensions': { + 'cad': { + 'material': ['PLA1', 'PLA2'], + 'cubic_cm': '5', + }, + 'lit': { + 'genre': ['fiction', 'mystery'], + 'format': 'epub', + 'pages': '185' + }, + }}, + stream.to_dict() + ) + + + def test_extension_properties(self): + self.maxDiff = None + # Verify schema. + self.assertEqual(self.ext1.schema, 'cad') + self.assertEqual(self.ext2.schema, 'music') + self.assertEqual(self.ext3.schema, 'lit') + # Verify to_dict(). + self.assertEqual(self.ext1.to_dict(), self.ext1_dict) + self.assertEqual(self.ext2.to_dict(), self.ext2_dict) + self.assertEqual(self.ext3.to_dict(), self.ext3_dict) + # Decode from dict. + parsed1 = StreamExtension(None, AnyMessage()) + parsed1.from_value(self.ext1_dict) + self.assertEqual(parsed1.to_dict(), self.ext1_dict) + parsed2 = StreamExtension(None, AnyMessage()) + parsed2.from_value(self.ext2_dict) + self.assertEqual(parsed2.to_dict(), self.ext2_dict) + parsed3 = StreamExtension(None, AnyMessage()) + parsed3.from_value(self.ext3_dict) + self.assertEqual(parsed3.to_dict(), self.ext3_dict) + # Decode from str (JSON). + parsed1 = StreamExtension(None, AnyMessage()) + parsed1.from_value(self.ext1_json) + self.assertEqual(parsed1.to_dict(), self.ext1_dict) + parsed2 = StreamExtension(None, AnyMessage()) + parsed2.from_value(self.ext2_json) + self.assertEqual(parsed2.to_dict(), self.ext2_dict) + parsed3 = StreamExtension(None, AnyMessage()) + parsed3.from_value(self.ext3_json) + self.assertEqual(parsed3.to_dict(), self.ext3_dict) + + def test_extension_clear_field(self): + self.maxDiff = None + ext = StreamExtension(None, AnyMessage()) + ext.from_value(self.ext1_dict) + mod = StreamExtension(None, AnyMessage()) + # Delete non-existent item does nothing + mod.from_value({ext.schema: {'material': 'PLA3'}}) + self.assertEqual(ext.merge(mod, delete=True).to_dict(), self.ext1_dict) + # Delete one item. + mod.from_value({ext.schema: {'material': 'PLA1'}}) + self.assertEqual(ext.merge(mod, delete=True).to_dict(), {'cad': {'material': 'PLA2', 'cubic_cm': '5'}}) + # Delete non-existent key. + mod.from_value({ext.schema: {'size': []}}) + self.assertEqual(ext.merge(mod, delete=True).to_dict(), {'cad': {'material': 'PLA2', 'cubic_cm': '5'}}) + # Delete one key. + mod.from_value({ext.schema: {'cubic_cm': []}}) + self.assertEqual(ext.merge(mod, delete=True).to_dict(), {'cad': {'material': 'PLA2'}}) + ext = StreamExtension(None, AnyMessage()) + ext.from_value(self.ext2_dict) + mod = StreamExtension(None, AnyMessage()) + # Delete non-existent item does nothing + mod.from_value({ext.schema: {'genre': 'rap'}}) + self.assertEqual(ext.merge(mod, delete=True).to_dict(), self.ext2_dict) + # Delete one item. + mod.from_value({ext.schema: {'instrument': 'guitar'}}) + self.assertEqual(ext.merge(mod, delete=True).to_dict(), {'music': {'genre': 'metal', 'venue': 'studio', 'instrument': ['drum', 'cymbal']}}) + # Delete non-existent key. + mod.from_value({ext.schema: {'format': []}}) + self.assertEqual(ext.merge(mod, delete=True).to_dict(), {'music': {'genre': 'metal', 'venue': 'studio', 'instrument': ['drum', 'cymbal']}}) + # Delete one key. + mod.from_value({ext.schema: {'instrument': ['drum']}}) + self.assertEqual(ext.merge(mod, delete=True).to_dict(), {'music': {'genre': 'metal', 'venue': 'studio', 'instrument': 'cymbal'}}) + + def test_extension_set_field(self): + self.maxDiff = None + ext = StreamExtension(None, AnyMessage()) + ext.from_value(self.ext1_dict) + mod = StreamExtension(None, AnyMessage()) + # Add item within existing key. + mod.from_value({ext.schema: {'material': 'PLA3'}}) + self.assertEqual(ext.merge(mod).to_dict(), {'cad': {'material': ['PLA1', 'PLA2', 'PLA3'], 'cubic_cm': '5'}}) + # Add key with multiple items. + mod.from_value({ext.schema: {'tool': ['drill', 'printer']}}) + self.assertEqual(ext.merge(mod).to_dict(), {'cad': {'material': ['PLA1', 'PLA2', 'PLA3'], 'tool': ['drill', 'printer'], 'cubic_cm': '5'}}) + # Add items within multiple keys. + mod.from_value({ext.schema: {'tool': 'file', 'material': 'glue'}}) + self.assertEqual(ext.merge(mod).to_dict(), {'cad': {'material': ['PLA1', 'PLA2', 'PLA3', 'glue'], 'tool': ['drill', 'printer', 'file'], 'cubic_cm': '5'}}) + ext = StreamExtension(None, AnyMessage()) + ext.from_value(self.ext3_dict) + mod = StreamExtension(None, AnyMessage()) + # Add item within existing key. + mod.from_value({ext.schema: {'genre': 'scifi'}}) + self.assertEqual(ext.merge(mod).to_dict(), {'lit': {'genre': ['fiction', 'mystery', 'scifi'], 'format': 'epub', 'pages': '185'}}) + # Add key with multiple items. + mod.from_value({ext.schema: {'toc': ['Intro', 'Chapter 1']}}) + self.assertEqual(ext.merge(mod).to_dict(), {'lit': {'genre': ['fiction', 'mystery', 'scifi'], 'format': 'epub', 'toc': ['Intro', 'Chapter 1'], 'pages': '185'}}) + # Add items within multiple keys. + mod.from_value({ext.schema: {'toc': ['Chapter 2', 'Chapter 3'], 'genre': 'cyberpunk'}}) + self.assertEqual(ext.merge(mod).to_dict(), {'lit': {'genre': ['fiction', 'mystery', 'scifi', 'cyberpunk'], 'format': 'epub', 'toc': ['Intro', 'Chapter 1', 'Chapter 2', 'Chapter 3'], 'pages': '185'}}) + + def test_stream_extension_update(self): + self.maxDiff = None + stream = Stream() + + # Add "cad". + stream.update(extensions=self.ext1.to_dict()) + self.assertEqual( + stream.to_dict(), + {'extensions': { + 'cad': { + 'material': ['PLA1', 'PLA2'], + 'cubic_cm': '5', + } + }}, + stream.to_dict() + ) + + # Add "music". + stream.update(extensions=self.ext2.to_dict()) + self.assertEqual( + stream.to_dict(), + {'extensions': { + 'cad': { + 'material': ['PLA1', 'PLA2'], + 'cubic_cm': '5', + }, + 'music': { + 'genre': 'metal', + 'venue': 'studio', + 'instrument': ['drum', 'cymbal', 'guitar'], + }, + }}, + stream.to_dict() + ) + + # Patch "music", changing "venue". + stream.update( + clear_extensions=['{"music": {"venue": ["studio"]}}'], + extensions=['{"music": {"venue": ["live"]}}'], + ) + self.assertEqual( + stream.to_dict(), + {'extensions': { + 'cad': { + 'material': ['PLA1', 'PLA2'], + 'cubic_cm': '5', + }, + 'music': { + 'genre': 'metal', + 'venue': 'studio', + 'instrument': ['drum', 'cymbal', 'guitar'], + }, + }}, + stream.to_dict() + ) + + # Remove "cad". + stream.update( + clear_extensions='{"cad": {}}', + ) + self.assertEqual( + stream.to_dict(), + {'extensions': { + 'music': { + 'genre': 'metal', + 'venue': 'studio', + 'instrument': ['drum', 'cymbal', 'guitar'], + }, + }}, + stream.to_dict() + )