From b9619f32fbe89a97e74e55cacecce5f3737c7db2 Mon Sep 17 00:00:00 2001 From: "2935661482@qq.com" <2935661482@qq.com> Date: Thu, 7 Nov 2024 22:02:39 +0800 Subject: [PATCH] add --- xiaofang/Assets/Plugins.meta | 8 + xiaofang/Assets/Plugins/Google.Protobuf.dll | Bin 0 -> 483936 bytes .../Assets/Plugins/Google.Protobuf.dll.meta | 33 + xiaofang/Assets/Plugins/Google.Protobuf.pdb | Bin 0 -> 187584 bytes .../Assets/Plugins/Google.Protobuf.pdb.meta | 7 + xiaofang/Assets/Plugins/Google.Protobuf.xml | 11745 ++++++++++++++++ .../Assets/Plugins/Google.Protobuf.xml.meta | 7 + .../Cover+Shoot/Animations/Jumping/fall.anim | Bin 90192 -> 498559 bytes .../Animations/Shoot/rifle_shot.anim | Bin 64808 -> 339780 bytes xiaofang/Assets/test.meta | 8 + xiaofang/Assets/test/New Scene.unity | 302 + xiaofang/Assets/test/New Scene.unity.meta | 7 + xiaofang/Assets/test/Ws.cs | 726 + xiaofang/Assets/test/Ws.cs.meta | 11 + 14 files changed, 12854 insertions(+) create mode 100644 xiaofang/Assets/Plugins.meta create mode 100644 xiaofang/Assets/Plugins/Google.Protobuf.dll create mode 100644 xiaofang/Assets/Plugins/Google.Protobuf.dll.meta create mode 100644 xiaofang/Assets/Plugins/Google.Protobuf.pdb create mode 100644 xiaofang/Assets/Plugins/Google.Protobuf.pdb.meta create mode 100644 xiaofang/Assets/Plugins/Google.Protobuf.xml create mode 100644 xiaofang/Assets/Plugins/Google.Protobuf.xml.meta create mode 100644 xiaofang/Assets/test.meta create mode 100644 xiaofang/Assets/test/New Scene.unity create mode 100644 xiaofang/Assets/test/New Scene.unity.meta create mode 100644 xiaofang/Assets/test/Ws.cs create mode 100644 xiaofang/Assets/test/Ws.cs.meta diff --git a/xiaofang/Assets/Plugins.meta b/xiaofang/Assets/Plugins.meta new file mode 100644 index 00000000..c9d33b55 --- /dev/null +++ b/xiaofang/Assets/Plugins.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 11175286f88a00747adfa774fac51c50 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/xiaofang/Assets/Plugins/Google.Protobuf.dll b/xiaofang/Assets/Plugins/Google.Protobuf.dll new file mode 100644 index 0000000000000000000000000000000000000000..d6605d36cc006403f8ce31ee73c7334f2fb21da6 GIT binary patch literal 483936 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%0Ai<5q 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%0A# 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 literal 0 HcmV?d00001 diff --git a/xiaofang/Assets/Plugins/Google.Protobuf.dll.meta b/xiaofang/Assets/Plugins/Google.Protobuf.dll.meta new file mode 100644 index 00000000..afbaa764 --- /dev/null +++ b/xiaofang/Assets/Plugins/Google.Protobuf.dll.meta @@ -0,0 +1,33 @@ +fileFormatVersion: 2 +guid: b3cbefb7057ff494dade339e31f5bb59 +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Any: + second: + enabled: 1 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + - first: + Windows Store Apps: WindowsStoreApps + second: + enabled: 0 + settings: + CPU: AnyCPU + userData: + assetBundleName: + assetBundleVariant: diff --git a/xiaofang/Assets/Plugins/Google.Protobuf.pdb b/xiaofang/Assets/Plugins/Google.Protobuf.pdb new file mode 100644 index 0000000000000000000000000000000000000000..71c0924f6b4ed179181a8b07f488754955bc214b GIT binary patch literal 187584 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 + + + Google.Protobuf + + + + + Provides a utility routine to copy small arrays much more quickly than Buffer.BlockCopy + + + + + The threshold above which you should use Buffer.BlockCopy rather than ByteArray.Copy + + + + + Determines which copy routine to use based on the number of bytes to be copied. + + + + + Reverses the order of bytes in the array + + + + + Immutable array of bytes. + + + + + Internal use only. Ensure that the provided memory is not mutated and belongs to this instance. + + + + + Internal use only. Ensure that the provided memory is not mutated and belongs to this instance. + This method encapsulates converting array to memory. Reduces need for SecuritySafeCritical + in .NET Framework. + + + + + Constructs a new ByteString from the given memory. The memory is + *not* copied, and must not be modified after this constructor is called. + + + + + Returns an empty ByteString. + + + + + Returns the length of this ByteString in bytes. + + + + + Returns true if this byte string is empty, false otherwise. + + + + + Provides read-only access to the data of this . + No data is copied so this is the most efficient way of accessing. + + + + + Provides read-only access to the data of this . + No data is copied so this is the most efficient way of accessing. + + + + + Converts this into a byte array. + + The data is copied - changes to the returned array will not be reflected in this ByteString. + A byte array with the same data as this ByteString. + + + + Converts this into a standard base64 representation. + + A base64 representation of this ByteString. + + + + Constructs a from the Base64 Encoded String. + + + + + Constructs a from data in the given stream, synchronously. + + If successful, will be read completely, from the position + at the start of the call. + The stream to copy into a ByteString. + A ByteString with content read from the given stream. + + + + Constructs a from data in the given stream, asynchronously. + + If successful, will be read completely, from the position + at the start of the call. + The stream to copy into a ByteString. + The cancellation token to use when reading from the stream, if any. + A ByteString with content read from the given stream. + + + + Constructs a from the given array. The contents + are copied, so further modifications to the array will not + be reflected in the returned ByteString. + This method can also be invoked in ByteString.CopyFrom(0xaa, 0xbb, ...) form + which is primarily useful for testing. + + + + + Constructs a from a portion of a byte array. + + + + + Constructs a from a read only span. The contents + are copied, so further modifications to the span will not + be reflected in the returned . + + + + + Creates a new by encoding the specified text with + the given encoding. + + + + + Creates a new by encoding the specified text in UTF-8. + + + + + Returns the byte at the given index. + + + + + Converts this into a string by applying the given encoding. + + + This method should only be used to convert binary data which was the result of encoding + text with the given encoding. + + The encoding to use to decode the binary data into text. + The result of decoding the binary data with the given decoding. + + + + Converts this into a string by applying the UTF-8 encoding. + + + This method should only be used to convert binary data which was the result of encoding + text with UTF-8. + + The result of decoding the binary data with the given decoding. + + + + Returns an iterator over the bytes in this . + + An iterator over the bytes in this object. + + + + Returns an iterator over the bytes in this . + + An iterator over the bytes in this object. + + + + Creates a CodedInputStream from this ByteString's data. + + + + + Compares two byte strings for equality. + + The first byte string to compare. + The second byte string to compare. + true if the byte strings are equal; false otherwise. + + + + Compares two byte strings for inequality. + + The first byte string to compare. + The second byte string to compare. + false if the byte strings are equal; true otherwise. + + + + Compares this byte string with another object. + + The object to compare this with. + true if refers to an equal ; false otherwise. + + + + Returns a hash code for this object. Two equal byte strings + will return the same hash code. + + A hash code for this object. + + + + Compares this byte string with another. + + The to compare this with. + true if refers to an equal byte string; false otherwise. + + + + Copies the entire byte array to the destination array provided at the offset specified. + + + + + Writes the entire byte array to the provided stream + + + + + SecuritySafeCritical attribute can not be placed on types with async methods. + This class has ByteString's async methods so it can be marked with SecuritySafeCritical. + + + + + Reads and decodes protocol message fields. + + + + This class is generally used by generated code to read appropriate + primitives from the stream. It effectively encapsulates the lowest + levels of protocol buffer format. + + + Repeated fields and map fields are not handled by this class; use + and to serialize such fields. + + + + + + Whether to leave the underlying stream open when disposing of this stream. + This is always true when there's no stream. + + + + + Buffer of data read from the stream or provided at construction time. + + + + + The stream to read further input from, or null if the byte array buffer was provided + directly on construction, with no further data available. + + + + + The parser state is kept separately so that other parse implementations can reuse the same + parsing primitives. + + + + + Creates a new CodedInputStream reading data from the given byte array. + + + + + Creates a new that reads from the given byte array slice. + + + + + Creates a new reading data from the given stream, which will be disposed + when the returned object is disposed. + + The stream to read from. + + + + Creates a new reading data from the given stream. + + The stream to read from. + true to leave open when the returned + is disposed; false to dispose of the given stream when the + returned object is disposed. + + + + Creates a new CodedInputStream reading data from the given + stream and buffer, using the default limits. + + + + + Creates a new CodedInputStream reading data from the given + stream and buffer, using the specified limits. + + + This chains to the version with the default limits instead of vice versa to avoid + having to check that the default values are valid every time. + + + + + Creates a with the specified size and recursion limits, reading + from an input stream. + + + This method exists separately from the constructor to reduce the number of constructor overloads. + It is likely to be used considerably less frequently than the constructors, as the default limits + are suitable for most use cases. + + The input stream to read from + The total limit of data to read from the stream. + The maximum recursion depth to allow while reading. + A CodedInputStream reading from with the specified size + and recursion limits. + + + + Returns the current position in the input stream, or the position in the input buffer + + + + + Returns the last tag read, or 0 if no tags have been read or we've read beyond + the end of the stream. + + + + + Returns the size limit for this stream. + + + This limit is applied when reading from the underlying stream, as a sanity check. It is + not applied when reading from a byte array data source without an underlying stream. + The default value is Int32.MaxValue. + + + The size limit. + + + + + Returns the recursion limit for this stream. This limit is applied whilst reading messages, + to avoid maliciously-recursive data. + + + The default limit is 100. + + + The recursion limit for this stream. + + + + + Internal-only property; when set to true, unknown fields will be discarded while parsing. + + + + + Internal-only property; provides extension identifiers to compatible messages while parsing. + + + + + Disposes of this instance, potentially closing any underlying stream. + + + As there is no flushing to perform here, disposing of a which + was constructed with the leaveOpen option parameter set to true (or one which + was constructed to read from a byte array) has no effect. + + + + + Verifies that the last call to ReadTag() returned tag 0 - in other words, + we've reached the end of the stream when we expected to. + + The + tag read was not the one specified + + + + Peeks at the next field tag. This is like calling , but the + tag is not consumed. (So a subsequent call to will return the + same value.) + + + + + Reads a field tag, returning the tag of 0 for "end of stream". + + + If this method returns 0, it doesn't necessarily mean the end of all + the data in this CodedInputStream; it may be the end of the logical stream + for an embedded message, for example. + + The next field tag, or 0 for end of stream. (0 is never a valid tag.) + + + + Skips the data for the field with the tag we've just read. + This should be called directly after , when + the caller wishes to skip an unknown field. + + + This method throws if the last-read tag was an end-group tag. + If a caller wishes to skip a group, they should skip the whole group, by calling this method after reading the + start-group tag. This behavior allows callers to call this method on any field they don't understand, correctly + resulting in an error if an end-group tag has not been paired with an earlier start-group tag. + + The last tag was an end-group tag + The last read operation read to the end of the logical stream + + + + Skip a group. + + + + + Reads a double field from the stream. + + + + + Reads a float field from the stream. + + + + + Reads a uint64 field from the stream. + + + + + Reads an int64 field from the stream. + + + + + Reads an int32 field from the stream. + + + + + Reads a fixed64 field from the stream. + + + + + Reads a fixed32 field from the stream. + + + + + Reads a bool field from the stream. + + + + + Reads a string field from the stream. + + + + + Reads an embedded message field value from the stream. + + + + + Reads an embedded group field from the stream. + + + + + Reads a bytes field value from the stream. + + + + + Reads a uint32 field value from the stream. + + + + + Reads an enum field value from the stream. + + + + + Reads an sfixed32 field value from the stream. + + + + + Reads an sfixed64 field value from the stream. + + + + + Reads an sint32 field value from the stream. + + + + + Reads an sint64 field value from the stream. + + + + + Reads a length for length-delimited data. + + + This is internally just reading a varint, but this method exists + to make the calling code clearer. + + + + + Peeks at the next tag in the stream. If it matches , + the tag is consumed and the method returns true; otherwise, the + stream is left in the original position and the method returns false. + + + + + Reads a raw Varint from the stream. If larger than 32 bits, discard the upper bits. + This method is optimised for the case where we've got lots of data in the buffer. + That means we can check the size just once, then just read directly from the buffer + without constant rechecking of the buffer length. + + + + + Reads a varint from the input one byte at a time, so that it does not + read any bytes after the end of the varint. If you simply wrapped the + stream in a CodedInputStream and used ReadRawVarint32(Stream) + then you would probably end up reading past the end of the varint since + CodedInputStream buffers its input. + + + + + + + Reads a raw varint from the stream. + + + + + Reads a 32-bit little-endian integer from the stream. + + + + + Reads a 64-bit little-endian integer from the stream. + + + + + Sets currentLimit to (current position) + byteLimit. This is called + when descending into a length-delimited embedded message. The previous + limit is returned. + + The old limit. + + + + Discards the current limit, returning the previous limit. + + + + + Returns whether or not all the data before the limit has been read. + + + + + + Returns true if the stream has reached the end of the input. This is the + case if either the end of the underlying input source has been reached or + the stream has reached a limit created using PushLimit. + + + + + Reads a fixed size of bytes from the input. + + + the end of the stream or the current limit was reached + + + + + Reads a top-level message or a nested message after the limits for this message have been pushed. + (parser will proceed until the end of the current limit) + NOTE: this method needs to be public because it's invoked by the generated code - e.g. msg.MergeFrom(CodedInputStream input) method + + + + + Encodes and writes protocol message fields. + + + + This class is generally used by generated code to write appropriate + primitives to the stream. It effectively encapsulates the lowest + levels of protocol buffer format. Unlike some other implementations, + this does not include combined "write tag and value" methods. Generated + code knows the exact byte representations of the tags they're going to write, + so there's no need to re-encode them each time. Manually-written code calling + this class should just call one of the WriteTag overloads before each value. + + + Repeated fields and map fields are not handled by this class; use RepeatedField<T> + and MapField<TKey, TValue> to serialize such fields. + + + + + + Computes the number of bytes that would be needed to encode a + double field, including the tag. + + + + + Computes the number of bytes that would be needed to encode a + float field, including the tag. + + + + + Computes the number of bytes that would be needed to encode a + uint64 field, including the tag. + + + + + Computes the number of bytes that would be needed to encode an + int64 field, including the tag. + + + + + Computes the number of bytes that would be needed to encode an + int32 field, including the tag. + + + + + Computes the number of bytes that would be needed to encode a + fixed64 field, including the tag. + + + + + Computes the number of bytes that would be needed to encode a + fixed32 field, including the tag. + + + + + Computes the number of bytes that would be needed to encode a + bool field, including the tag. + + + + + Computes the number of bytes that would be needed to encode a + string field, including the tag. + + + + + Computes the number of bytes that would be needed to encode a + group field, including the tag. + + + + + Computes the number of bytes that would be needed to encode an + embedded message field, including the tag. + + + + + Computes the number of bytes that would be needed to encode a + bytes field, including the tag. + + + + + Computes the number of bytes that would be needed to encode a + uint32 field, including the tag. + + + + + Computes the number of bytes that would be needed to encode a + enum field, including the tag. The caller is responsible for + converting the enum value to its numeric value. + + + + + Computes the number of bytes that would be needed to encode an + sfixed32 field, including the tag. + + + + + Computes the number of bytes that would be needed to encode an + sfixed64 field, including the tag. + + + + + Computes the number of bytes that would be needed to encode an + sint32 field, including the tag. + + + + + Computes the number of bytes that would be needed to encode an + sint64 field, including the tag. + + + + + Computes the number of bytes that would be needed to encode a length, + as written by . + + + + + Computes the number of bytes that would be needed to encode a varint. + + + + + Computes the number of bytes that would be needed to encode a varint. + + + + + Computes the number of bytes that would be needed to encode a tag. + + + + + The buffer size used by CreateInstance(Stream). + + + + + Creates a new CodedOutputStream that writes directly to the given + byte array. If more bytes are written than fit in the array, + OutOfSpaceException will be thrown. + + + + + Creates a new CodedOutputStream that writes directly to the given + byte array slice. If more bytes are written than fit in the array, + OutOfSpaceException will be thrown. + + + + + Creates a new which write to the given stream, and disposes of that + stream when the returned CodedOutputStream is disposed. + + The stream to write to. It will be disposed when the returned CodedOutputStream is disposed. + + + + Creates a new CodedOutputStream which write to the given stream and uses + the specified buffer size. + + The stream to write to. It will be disposed when the returned CodedOutputStream is disposed. + The size of buffer to use internally. + + + + Creates a new CodedOutputStream which write to the given stream. + + The stream to write to. + If true, is left open when the returned CodedOutputStream is disposed; + if false, the provided stream is disposed as well. + + + + Creates a new CodedOutputStream which write to the given stream and uses + the specified buffer size. + + The stream to write to. + The size of buffer to use internally. + If true, is left open when the returned CodedOutputStream is disposed; + if false, the provided stream is disposed as well. + + + + Returns the current position in the stream, or the position in the output buffer + + + + + Configures whether or not serialization is deterministic. + + + Deterministic serialization guarantees that for a given binary, equal messages (defined by the + equals methods in protos) will always be serialized to the same bytes. This implies: + + Repeated serialization of a message will return the same bytes. + Different processes of the same binary (which may be executing on different machines) + will serialize equal messages to the same bytes. + + Note the deterministic serialization is NOT canonical across languages; it is also unstable + across different builds with schema changes due to unknown fields. Users who need canonical + serialization, e.g. persistent storage in a canonical form, fingerprinting, etc, should define + their own canonicalization specification and implement the serializer using reflection APIs + rather than relying on this API. + Once set, the serializer will: (Note this is an implementation detail and may subject to + change in the future) + + Sort map entries by keys in lexicographical order or numerical order. Note: For string + keys, the order is based on comparing the UTF-16 code unit value of each character in the strings. + The order may be different from the deterministic serialization in other languages where + maps are sorted on the lexicographical order of the UTF8 encoded keys. + + + + + + Writes a double field value, without a tag, to the stream. + + The value to write + + + + Writes a float field value, without a tag, to the stream. + + The value to write + + + + Writes a uint64 field value, without a tag, to the stream. + + The value to write + + + + Writes an int64 field value, without a tag, to the stream. + + The value to write + + + + Writes an int32 field value, without a tag, to the stream. + + The value to write + + + + Writes a fixed64 field value, without a tag, to the stream. + + The value to write + + + + Writes a fixed32 field value, without a tag, to the stream. + + The value to write + + + + Writes a bool field value, without a tag, to the stream. + + The value to write + + + + Writes a string field value, without a tag, to the stream. + The data is length-prefixed. + + The value to write + + + + Writes a message, without a tag, to the stream. + The data is length-prefixed. + + The value to write + + + + Writes a message, without a tag, to the stream. + Only the message data is written, without a length-delimiter. + + The value to write + + + + Writes a group, without a tag, to the stream. + + The value to write + + + + Write a byte string, without a tag, to the stream. + The data is length-prefixed. + + The value to write + + + + Writes a uint32 value, without a tag, to the stream. + + The value to write + + + + Writes an enum value, without a tag, to the stream. + + The value to write + + + + Writes an sfixed32 value, without a tag, to the stream. + + The value to write. + + + + Writes an sfixed64 value, without a tag, to the stream. + + The value to write + + + + Writes an sint32 value, without a tag, to the stream. + + The value to write + + + + Writes an sint64 value, without a tag, to the stream. + + The value to write + + + + Writes a length (in bytes) for length-delimited data. + + + This method simply writes a rawint, but exists for clarity in calling code. + + Length value, in bytes. + + + + Encodes and writes a tag. + + The number of the field to write the tag for + The wire format type of the tag to write + + + + Writes an already-encoded tag. + + The encoded tag + + + + Writes the given single-byte tag directly to the stream. + + The encoded tag + + + + Writes the given two-byte tag directly to the stream. + + The first byte of the encoded tag + The second byte of the encoded tag + + + + Writes the given three-byte tag directly to the stream. + + The first byte of the encoded tag + The second byte of the encoded tag + The third byte of the encoded tag + + + + Writes the given four-byte tag directly to the stream. + + The first byte of the encoded tag + The second byte of the encoded tag + The third byte of the encoded tag + The fourth byte of the encoded tag + + + + Writes the given five-byte tag directly to the stream. + + The first byte of the encoded tag + The second byte of the encoded tag + The third byte of the encoded tag + The fourth byte of the encoded tag + The fifth byte of the encoded tag + + + + Writes a 32 bit value as a varint. The fast route is taken when + there's enough buffer space left to whizz through without checking + for each byte; otherwise, we resort to calling WriteRawByte each time. + + + + + Writes out an array of bytes. + + + + + Writes out part of an array of bytes. + + + + + Indicates that a CodedOutputStream wrapping a flat byte array + ran out of space. + + + + + Flushes any buffered data and optionally closes the underlying stream, if any. + + + + By default, any underlying stream is closed by this method. To configure this behaviour, + use a constructor overload with a leaveOpen parameter. If this instance does not + have an underlying stream, this method does nothing. + + + For the sake of efficiency, calling this method does not prevent future write calls - but + if a later write ends up writing to a stream which has been disposed, that is likely to + fail. It is recommend that you not call any other methods after this. + + + + + + Flushes any buffered data to the underlying stream (if there is one). + + + + + Verifies that SpaceLeft returns zero. It's common to create a byte array + that is exactly big enough to hold a message, then write to it with + a CodedOutputStream. Calling CheckNoSpaceLeft after writing verifies that + the message was actually as big as expected, which can help finding bugs. + + + + + If writing to a flat array, returns the space left in the array. Otherwise, + throws an InvalidOperationException. + + + + + Utility to compare if two Lists are the same, and the hash code + of a List. + + + + + Checks if two lists are equal. + + + + + Gets the list's hash code. + + + + + Representation of a map field in a Protocol Buffer message. + + Key type in the map. Must be a type supported by Protocol Buffer map keys. + Value type in the map. Must be a type supported by Protocol Buffers. + + + For string keys, the equality comparison is provided by . + + + Null values are not permitted in the map, either for wrapper types or regular messages. + If a map is deserialized from a data stream and the value is missing from an entry, a default value + is created instead. For primitive types, that is the regular default value (0, the empty string and so + on); for message types, an empty instance of the message is created, as if the map entry contained a 0-length + encoded value for the field. + + + This implementation does not generally prohibit the use of key/value types which are not + supported by Protocol Buffers (e.g. using a key type of byte) but nor does it guarantee + that all operations will work in such cases. + + + The order in which entries are returned when iterating over this object is undefined, and may change + in future versions. + + + + + + Creates a deep clone of this object. + + + A deep clone of this object. + + + + + Adds the specified key/value pair to the map. + + + This operation fails if the key already exists in the map. To replace an existing entry, use the indexer. + + The key to add + The value to add. + The given key already exists in map. + + + + Determines whether the specified key is present in the map. + + The key to check. + true if the map contains the given key; false otherwise. + + + + Removes the entry identified by the given key from the map. + + The key indicating the entry to remove from the map. + true if the map contained the given key before the entry was removed; false otherwise. + + + + Gets the value associated with the specified key. + + The key whose value to get. + When this method returns, the value associated with the specified key, if the key is found; + otherwise, the default value for the type of the parameter. + This parameter is passed uninitialized. + true if the map contains an element with the specified key; otherwise, false. + + + + Gets or sets the value associated with the specified key. + + The key of the value to get or set. + The property is retrieved and key does not exist in the collection. + The value associated with the specified key. If the specified key is not found, + a get operation throws a , and a set operation creates a new element with the specified key. + + + + Gets a collection containing the keys in the map. + + + + + Gets a collection containing the values in the map. + + + + + Adds the specified entries to the map. The keys and values are not automatically cloned. + + The entries to add to the map. + + + + Adds the specified entries to the map, replacing any existing entries with the same keys. + The keys and values are not automatically cloned. + + This method primarily exists to be called from MergeFrom methods in generated classes for messages. + The entries to add to the map. + + + + Returns an enumerator that iterates through the collection. + + + An enumerator that can be used to iterate through the collection. + + + + + Returns an enumerator that iterates through a collection. + + + An object that can be used to iterate through the collection. + + + + + Adds the specified item to the map. + + The item to add to the map. + + + + Removes all items from the map. + + + + + Determines whether map contains an entry equivalent to the given key/value pair. + + The key/value pair to find. + + + + + Copies the key/value pairs in this map to an array. + + The array to copy the entries into. + The index of the array at which to start copying values. + + + + Removes the specified key/value pair from the map. + + Both the key and the value must be found for the entry to be removed. + The key/value pair to remove. + true if the key/value pair was found and removed; false otherwise. + + + + Gets the number of elements contained in the map. + + + + + Gets a value indicating whether the map is read-only. + + + + + Determines whether the specified , is equal to this instance. + + The to compare with this instance. + + true if the specified is equal to this instance; otherwise, false. + + + + + Returns a hash code for this instance. + + + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + + + + + Compares this map with another for equality. + + + The order of the key/value pairs in the maps is not deemed significant in this comparison. + + The map to compare this with. + true if refers to an equal map; false otherwise. + + + + Adds entries to the map from the given stream. + + + It is assumed that the stream is initially positioned after the tag specified by the codec. + This method will continue reading entries from the stream until the end is reached, or + a different tag is encountered. + + Stream to read from + Codec describing how the key/value pairs are encoded + + + + Adds entries to the map from the given parse context. + + + It is assumed that the input is initially positioned after the tag specified by the codec. + This method will continue reading entries from the input until the end is reached, or + a different tag is encountered. + + Input to read from + Codec describing how the key/value pairs are encoded + + + + Writes the contents of this map to the given coded output stream, using the specified codec + to encode each entry. + + The output stream to write to. + The codec to use for each entry. + + + + Writes the contents of this map to the given write context, using the specified codec + to encode each entry. + + The write context to write to. + The codec to use for each entry. + + + + Calculates the size of this map based on the given entry codec. + + The codec to use to encode each entry. + + + + + Returns a string representation of this repeated field, in the same + way as it would be represented by the default JSON formatter. + + + + + A codec for a specific map field. This contains all the information required to encode and + decode the nested messages. + + + + + Creates a new entry codec based on a separate key codec and value codec, + and the tag to use for each map entry. + + The key codec. + The value codec. + The map tag to use to introduce each map entry. + + + + The key codec. + + + + + The value codec. + + + + + The tag used in the enclosing message to indicate map entries. + + + + + Provides a central place to implement equality comparisons, primarily for bitwise float/double equality. + + + + + Returns an equality comparer for suitable for Protobuf equality comparisons. + This is usually just the default equality comparer for the type, but floating point numbers are compared + bitwise. + + The type of equality comparer to return. + The equality comparer. + + + + Returns an equality comparer suitable for comparing 64-bit floating point values, by bitwise comparison. + (NaN values are considered equal, but only when they have the same representation.) + + + + + Returns an equality comparer suitable for comparing 32-bit floating point values, by bitwise comparison. + (NaN values are considered equal, but only when they have the same representation.) + + + + + Returns an equality comparer suitable for comparing nullable 64-bit floating point values, by bitwise comparison. + (NaN values are considered equal, but only when they have the same representation.) + + + + + Returns an equality comparer suitable for comparing nullable 32-bit floating point values, by bitwise comparison. + (NaN values are considered equal, but only when they have the same representation.) + + + + + The contents of a repeated field: essentially, a collection with some extra + restrictions (no null values) and capabilities (deep cloning). + + + This implementation does not generally prohibit the use of types which are not + supported by Protocol Buffers but nor does it guarantee that all operations will work in such cases. + + The element type of the repeated field. + + + + Creates a deep clone of this repeated field. + + + If the field type is + a message type, each element is also cloned; otherwise, it is + assumed that the field type is primitive (including string and + bytes, both of which are immutable) and so a simple copy is + equivalent to a deep clone. + + A deep clone of this repeated field. + + + + Adds the entries from the given input stream, decoding them with the specified codec. + + The input stream to read from. + The codec to use in order to read each entry. + + + + Adds the entries from the given parse context, decoding them with the specified codec. + + The input to read from. + The codec to use in order to read each entry. + + + + Calculates the size of this collection based on the given codec. + + The codec to use when encoding each field. + The number of bytes that would be written to an output by one of the WriteTo methods, + using the same codec. + + + + Writes the contents of this collection to the given , + encoding each value using the specified codec. + + The output stream to write to. + The codec to use when encoding each value. + + + + Writes the contents of this collection to the given write context, + encoding each value using the specified codec. + + The write context to write to. + The codec to use when encoding each value. + + + + Gets and sets the capacity of the RepeatedField's internal array. + When set, the internal array is reallocated to the given capacity. + The new value is less than . + + + + + Adds the specified item to the collection. + + The item to add. + + + + Removes all items from the collection. + + + + + Determines whether this collection contains the given item. + + The item to find. + true if this collection contains the given item; false otherwise. + + + + Copies this collection to the given array. + + The array to copy to. + The first index of the array to copy to. + + + + Removes the specified item from the collection + + The item to remove. + true if the item was found and removed; false otherwise. + + + + Gets the number of elements contained in the collection. + + + + + Gets a value indicating whether the collection is read-only. + + + + + Adds all of the specified values into this collection. + + The values to add to this collection. + + + + Adds all of the specified values into this collection. This method is present to + allow repeated fields to be constructed from queries within collection initializers. + Within non-collection-initializer code, consider using the equivalent + method instead for clarity. + + The values to add to this collection. + + + + Returns an enumerator that iterates through the collection. + + + An enumerator that can be used to iterate through the collection. + + + + + Determines whether the specified , is equal to this instance. + + The to compare with this instance. + + true if the specified is equal to this instance; otherwise, false. + + + + + Returns an enumerator that iterates through a collection. + + + An object that can be used to iterate through the collection. + + + + + Returns a hash code for this instance. + + + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + + + + + Compares this repeated field with another for equality. + + The repeated field to compare this with. + true if refers to an equal repeated field; false otherwise. + + + + Returns the index of the given item within the collection, or -1 if the item is not + present. + + The item to find in the collection. + The zero-based index of the item, or -1 if it is not found. + + + + Inserts the given item at the specified index. + + The index at which to insert the item. + The item to insert. + + + + Removes the item at the given index. + + The zero-based index of the item to remove. + + + + Returns a string representation of this repeated field, in the same + way as it would be represented by the default JSON formatter. + + + + + Gets or sets the item at the specified index. + + + The element at the specified index. + + The zero-based index of the element to get or set. + The item at the specified index. + + + + Extension methods for , effectively providing + the familiar members from previous desktop framework versions while + targeting the newer releases, .NET Core etc. + + + + + Returns the public getter of a property, or null if there is no such getter + (either because it's read-only, or the getter isn't public). + + + + + Returns the public setter of a property, or null if there is no such setter + (either because it's write-only, or the setter isn't public). + + + + + Provides extension methods on Type that just proxy to TypeInfo. + These are used to support the new type system from .NET 4.5, without + having calls to GetTypeInfo all over the place. While the methods here are meant to be + broadly compatible with the desktop framework, there are some subtle differences in behaviour - but + they're not expected to affect our use cases. While the class is internal, that should be fine: we can + evaluate each new use appropriately. + + + + + See https://msdn.microsoft.com/en-us/library/system.type.isassignablefrom + + + + + Returns a representation of the public property associated with the given name in the given type, + including inherited properties or null if there is no such public property. + Here, "public property" means a property where either the getter, or the setter, or both, is public. + + + + + Returns a representation of the public method associated with the given name in the given type, + including inherited methods. + + + This has a few differences compared with Type.GetMethod in the desktop framework. It will throw + if there is an ambiguous match even between a private method and a public one, but it *won't* throw + if there are two overloads at different levels in the type hierarchy (e.g. class Base declares public void Foo(int) and + class Child : Base declares public void Foo(long)). + + One type in the hierarchy declared more than one method with the same name + + + Holder for reflection information generated from google/protobuf/compiler/plugin.proto + + + File descriptor for google/protobuf/compiler/plugin.proto + + + + The version number of protocol compiler. + + + + Field number for the "major" field. + + + Gets whether the "major" field is set + + + Clears the value of the "major" field + + + Field number for the "minor" field. + + + Gets whether the "minor" field is set + + + Clears the value of the "minor" field + + + Field number for the "patch" field. + + + Gets whether the "patch" field is set + + + Clears the value of the "patch" field + + + Field number for the "suffix" field. + + + + A suffix for alpha, beta or rc release, e.g., "alpha-1", "rc2". It should + be empty for mainline stable releases. + + + + Gets whether the "suffix" field is set + + + Clears the value of the "suffix" field + + + + An encoded CodeGeneratorRequest is written to the plugin's stdin. + + + + Field number for the "file_to_generate" field. + + + + The .proto files that were explicitly listed on the command-line. The + code generator should generate code only for these files. Each file's + descriptor will be included in proto_file, below. + + + + Field number for the "parameter" field. + + + + The generator parameter passed on the command-line. + + + + Gets whether the "parameter" field is set + + + Clears the value of the "parameter" field + + + Field number for the "proto_file" field. + + + + FileDescriptorProtos for all files in files_to_generate and everything + they import. The files will appear in topological order, so each file + appears before any file that imports it. + + Note: the files listed in files_to_generate will include runtime-retention + options only, but all other files will include source-retention options. + The source_file_descriptors field below is available in case you need + source-retention options for files_to_generate. + + protoc guarantees that all proto_files will be written after + the fields above, even though this is not technically guaranteed by the + protobuf wire format. This theoretically could allow a plugin to stream + in the FileDescriptorProtos and handle them one by one rather than read + the entire set into memory at once. However, as of this writing, this + is not similarly optimized on protoc's end -- it will store all fields in + memory at once before sending them to the plugin. + + Type names of fields and extensions in the FileDescriptorProto are always + fully qualified. + + + + Field number for the "source_file_descriptors" field. + + + + File descriptors with all options, including source-retention options. + These descriptors are only provided for the files listed in + files_to_generate. + + + + Field number for the "compiler_version" field. + + + + The version number of protocol compiler. + + + + + The plugin writes an encoded CodeGeneratorResponse to stdout. + + + + Field number for the "error" field. + + + + Error message. If non-empty, code generation failed. The plugin process + should exit with status code zero even if it reports an error in this way. + + This should be used to indicate errors in .proto files which prevent the + code generator from generating correct code. Errors which indicate a + problem in protoc itself -- such as the input CodeGeneratorRequest being + unparseable -- should be reported by writing a message to stderr and + exiting with a non-zero status code. + + + + Gets whether the "error" field is set + + + Clears the value of the "error" field + + + Field number for the "supported_features" field. + + + + A bitmask of supported features that the code generator supports. + This is a bitwise "or" of values from the Feature enum. + + + + Gets whether the "supported_features" field is set + + + Clears the value of the "supported_features" field + + + Field number for the "minimum_edition" field. + + + + The minimum edition this plugin supports. This will be treated as an + Edition enum, but we want to allow unknown values. It should be specified + according the edition enum value, *not* the edition number. Only takes + effect for plugins that have FEATURE_SUPPORTS_EDITIONS set. + + + + Gets whether the "minimum_edition" field is set + + + Clears the value of the "minimum_edition" field + + + Field number for the "maximum_edition" field. + + + + The maximum edition this plugin supports. This will be treated as an + Edition enum, but we want to allow unknown values. It should be specified + according the edition enum value, *not* the edition number. Only takes + effect for plugins that have FEATURE_SUPPORTS_EDITIONS set. + + + + Gets whether the "maximum_edition" field is set + + + Clears the value of the "maximum_edition" field + + + Field number for the "file" field. + + + Container for nested types declared in the CodeGeneratorResponse message type. + + + + Sync with code_generator.h. + + + + + Represents a single generated file. + + + + Field number for the "name" field. + + + + The file name, relative to the output directory. The name must not + contain "." or ".." components and must be relative, not be absolute (so, + the file cannot lie outside the output directory). "/" must be used as + the path separator, not "\". + + If the name is omitted, the content will be appended to the previous + file. This allows the generator to break large files into small chunks, + and allows the generated text to be streamed back to protoc so that large + files need not reside completely in memory at one time. Note that as of + this writing protoc does not optimize for this -- it will read the entire + CodeGeneratorResponse before writing files to disk. + + + + Gets whether the "name" field is set + + + Clears the value of the "name" field + + + Field number for the "insertion_point" field. + + + + If non-empty, indicates that the named file should already exist, and the + content here is to be inserted into that file at a defined insertion + point. This feature allows a code generator to extend the output + produced by another code generator. The original generator may provide + insertion points by placing special annotations in the file that look + like: + @@protoc_insertion_point(NAME) + The annotation can have arbitrary text before and after it on the line, + which allows it to be placed in a comment. NAME should be replaced with + an identifier naming the point -- this is what other generators will use + as the insertion_point. Code inserted at this point will be placed + immediately above the line containing the insertion point (thus multiple + insertions to the same point will come out in the order they were added). + The double-@ is intended to make it unlikely that the generated code + could contain things that look like insertion points by accident. + + For example, the C++ code generator places the following line in the + .pb.h files that it generates: + // @@protoc_insertion_point(namespace_scope) + This line appears within the scope of the file's package namespace, but + outside of any particular class. Another plugin can then specify the + insertion_point "namespace_scope" to generate additional classes or + other declarations that should be placed in this scope. + + Note that if the line containing the insertion point begins with + whitespace, the same whitespace will be added to every line of the + inserted text. This is useful for languages like Python, where + indentation matters. In these languages, the insertion point comment + should be indented the same amount as any inserted code will need to be + in order to work correctly in that context. + + The code generator that generates the initial file and the one which + inserts into it must both run as part of a single invocation of protoc. + Code generators are executed in the order in which they appear on the + command line. + + If |insertion_point| is present, |name| must also be present. + + + + Gets whether the "insertion_point" field is set + + + Clears the value of the "insertion_point" field + + + Field number for the "content" field. + + + + The file contents. + + + + Gets whether the "content" field is set + + + Clears the value of the "content" field + + + Field number for the "generated_code_info" field. + + + + Information describing the file content being inserted. If an insertion + point is used, this information will be appropriately offset and inserted + into the code generation metadata for the generated files. + + + + + Represents a non-generic extension definition. This API is experimental and subject to change. + + + + + Internal use. Creates a new extension with the specified field number. + + + + + Gets the field number of this extension + + + + + Represents a type-safe extension identifier used for getting and setting single extension values in instances. + This API is experimental and subject to change. + + The message type this field applies to + The field value type of this extension + + + + Creates a new extension identifier with the specified field number and codec + + + + + Represents a type-safe extension identifier used for getting repeated extension values in instances. + This API is experimental and subject to change. + + The message type this field applies to + The repeated field value type of this extension + + + + Creates a new repeated extension identifier with the specified field number and codec + + + + + Provides extensions to messages while parsing. This API is experimental and subject to change. + + + + + Creates a new empty extension registry + + + + + Gets the total number of extensions in this extension registry + + + + + Returns whether the registry is readonly + + + + + Adds the specified extension to the registry + + + + + Adds the specified extensions to the registry + + + + + Clears the registry of all values + + + + + Gets whether the extension registry contains the specified extension + + + + + Copies the arrays in the registry set to the specified array at the specified index + + The array to copy to + The array index to start at + + + + Returns an enumerator to enumerate through the items in the registry + + Returns an enumerator for the extensions in this registry + + + + Removes the specified extension from the set + + The extension + true if the extension was removed, otherwise false + + + + Clones the registry into a new registry + + + + + Methods for managing s with null checking. + + Most users will not use this class directly and its API is experimental and subject to change. + + + + + Gets the value of the specified extension + + + + + Gets the value of the specified repeated extension or null if it doesn't exist in this set + + + + + Gets the value of the specified repeated extension, registering it if it doesn't exist + + + + + Sets the value of the specified extension. This will make a new instance of ExtensionSet if the set is null. + + + + + Gets whether the value of the specified extension is set + + + + + Clears the value of the specified extension + + + + + Clears the value of the specified extension + + + + + Tries to merge a field from the coded input, returning true if the field was merged. + If the set is null or the field was not otherwise merged, this returns false. + + + + + Tries to merge a field from the coded input, returning true if the field was merged. + If the set is null or the field was not otherwise merged, this returns false. + + + + + Merges the second set into the first set, creating a new instance if first is null + + + + + Clones the set into a new set. If the set is null, this returns null + + + + + Used for keeping track of extensions in messages. + methods route to this set. + + Most users will not need to use this class directly + + The message type that extensions in this set target + + + + Gets a hash code of the set + + + + + Returns whether this set is equal to the other object + + + + + Calculates the size of this extension set + + + + + Writes the extension values in this set to the output stream + + + + + Writes the extension values in this set to the write context + + + + + Factory methods for . + + + + + Retrieves a codec suitable for a string field with the given tag. + + The tag. + A codec for the given tag. + + + + Retrieves a codec suitable for a bytes field with the given tag. + + The tag. + A codec for the given tag. + + + + Retrieves a codec suitable for a bool field with the given tag. + + The tag. + A codec for the given tag. + + + + Retrieves a codec suitable for an int32 field with the given tag. + + The tag. + A codec for the given tag. + + + + Retrieves a codec suitable for an sint32 field with the given tag. + + The tag. + A codec for the given tag. + + + + Retrieves a codec suitable for a fixed32 field with the given tag. + + The tag. + A codec for the given tag. + + + + Retrieves a codec suitable for an sfixed32 field with the given tag. + + The tag. + A codec for the given tag. + + + + Retrieves a codec suitable for a uint32 field with the given tag. + + The tag. + A codec for the given tag. + + + + Retrieves a codec suitable for an int64 field with the given tag. + + The tag. + A codec for the given tag. + + + + Retrieves a codec suitable for an sint64 field with the given tag. + + The tag. + A codec for the given tag. + + + + Retrieves a codec suitable for a fixed64 field with the given tag. + + The tag. + A codec for the given tag. + + + + Retrieves a codec suitable for an sfixed64 field with the given tag. + + The tag. + A codec for the given tag. + + + + Retrieves a codec suitable for a uint64 field with the given tag. + + The tag. + A codec for the given tag. + + + + Retrieves a codec suitable for a float field with the given tag. + + The tag. + A codec for the given tag. + + + + Retrieves a codec suitable for a double field with the given tag. + + The tag. + A codec for the given tag. + + + + Retrieves a codec suitable for an enum field with the given tag. + + The tag. + A conversion function from to the enum type. + A conversion function from the enum type to . + A codec for the given tag. + + + + Retrieves a codec suitable for a string field with the given tag. + + The tag. + The default value. + A codec for the given tag. + + + + Retrieves a codec suitable for a bytes field with the given tag. + + The tag. + The default value. + A codec for the given tag. + + + + Retrieves a codec suitable for a bool field with the given tag. + + The tag. + The default value. + A codec for the given tag. + + + + Retrieves a codec suitable for an int32 field with the given tag. + + The tag. + The default value. + A codec for the given tag. + + + + Retrieves a codec suitable for an sint32 field with the given tag. + + The tag. + The default value. + A codec for the given tag. + + + + Retrieves a codec suitable for a fixed32 field with the given tag. + + The tag. + The default value. + A codec for the given tag. + + + + Retrieves a codec suitable for an sfixed32 field with the given tag. + + The tag. + The default value. + A codec for the given tag. + + + + Retrieves a codec suitable for a uint32 field with the given tag. + + The tag. + The default value. + A codec for the given tag. + + + + Retrieves a codec suitable for an int64 field with the given tag. + + The tag. + The default value. + A codec for the given tag. + + + + Retrieves a codec suitable for an sint64 field with the given tag. + + The tag. + The default value. + A codec for the given tag. + + + + Retrieves a codec suitable for a fixed64 field with the given tag. + + The tag. + The default value. + A codec for the given tag. + + + + Retrieves a codec suitable for an sfixed64 field with the given tag. + + The tag. + The default value. + A codec for the given tag. + + + + Retrieves a codec suitable for a uint64 field with the given tag. + + The tag. + The default value. + A codec for the given tag. + + + + Retrieves a codec suitable for a float field with the given tag. + + The tag. + The default value. + A codec for the given tag. + + + + Retrieves a codec suitable for a double field with the given tag. + + The tag. + The default value. + A codec for the given tag. + + + + Retrieves a codec suitable for an enum field with the given tag. + + The tag. + A conversion function from to the enum type. + A conversion function from the enum type to . + The default value. + A codec for the given tag. + + + + Retrieves a codec suitable for a message field with the given tag. + + The tag. + A parser to use for the message type. + A codec for the given tag. + + + + Retrieves a codec suitable for a group field with the given tag. + + The start group tag. + The end group tag. + A parser to use for the group message type. + A codec for given tag + + + + Creates a codec for a wrapper type of a class - which must be string or ByteString. + + + + + Creates a codec for a wrapper type of a struct - which must be Int32, Int64, UInt32, UInt64, + Bool, Single or Double. + + + + + Helper code to create codecs for wrapper types. + + + Somewhat ugly with all the static methods, but the conversions involved to/from nullable types make it + slightly tricky to improve. So long as we keep the public API (ForClassWrapper, ForStructWrapper) in place, + we can refactor later if we come up with something cleaner. + + + + + Returns a field codec which effectively wraps a value of type T in a message. + + + + + + + An encode/decode pair for a single field. This effectively encapsulates + all the information needed to read or write the field value from/to a coded + stream. + + + This class is public and has to be as it is used by generated code, but its public + API is very limited - just what the generated code needs to call directly. + + + + This never writes default values to the stream, and does not address "packedness" + in repeated fields itself, other than to know whether or not the field *should* be packed. + + + + + Merges an input stream into a value + + + + + Merges a value into a reference to another value, returning a boolean if the value was set + + + + + Returns a delegate to write a value (unconditionally) to a coded output stream. + + + + + Returns the size calculator for just a value. + + + + + Returns a delegate to read a value from a coded input stream. It is assumed that + the stream is already positioned on the appropriate tag. + + + + + Returns a delegate to merge a value from a coded input stream. + It is assumed that the stream is already positioned on the appropriate tag + + + + + Returns a delegate to merge two values together. + + + + + Returns the fixed size for an entry, or 0 if sizes vary. + + + + + Gets the tag of the codec. + + + The tag of the codec. + + + + + Gets the end tag of the codec or 0 if there is no end tag + + + The end tag of the codec. + + + + + Default value for this codec. Usually the same for every instance of the same type, but + for string/ByteString wrapper fields the codec's default value is null, whereas for + other string/ByteString fields it's "" or ByteString.Empty. + + + The default value of the codec's type. + + + + + Write a tag and the given value, *if* the value is not the default. + + + + + Write a tag and the given value, *if* the value is not the default. + + + + + Reads a value of the codec type from the given . + + The input stream to read from. + The value read from the stream. + + + + Reads a value of the codec type from the given . + + The parse context to read from. + The value read. + + + + Calculates the size required to write the given value, with a tag, + if the value is not the default. + + + + + Calculates the size required to write the given value, with a tag, even + if the value is the default. + + + + + A tree representation of a FieldMask. Each leaf node in this tree represent + a field path in the FieldMask. + + For example, FieldMask "foo.bar,foo.baz,bar.baz" as a tree will be: + + [root] -+- foo -+- bar + | | + | +- baz + | + +- bar --- baz + + + By representing FieldMasks with this tree structure we can easily convert + a FieldMask to a canonical form, merge two FieldMasks, calculate the + intersection to two FieldMasks and traverse all fields specified by the + FieldMask in a message tree. + + + + + Creates an empty FieldMaskTree. + + + + + Creates a FieldMaskTree for a given FieldMask. + + + + + Adds a field path to the tree. In a FieldMask, every field path matches the + specified field as well as all its sub-fields. For example, a field path + "foo.bar" matches field "foo.bar" and also "foo.bar.baz", etc. When adding + a field path to the tree, redundant sub-paths will be removed. That is, + after adding "foo.bar" to the tree, "foo.bar.baz" will be removed if it + exists, which will turn the tree node for "foo.bar" to a leaf node. + Likewise, if the field path to add is a sub-path of an existing leaf node, + nothing will be changed in the tree. + + + + + Merges all field paths in a FieldMask into this tree. + + + + + Converts this tree to a FieldMask. + + + + + Gathers all field paths in a sub-tree. + + + + + Adds the intersection of this tree with the given to . + + + + + Merges all fields specified by this FieldMaskTree from to . + + + + + Merges all fields specified by a sub-tree from to . + + + + + Class containing helpful workarounds for various platform compatibility + + + + + Interface for a Protocol Buffers message, supporting + parsing from and writing to . + + + + + Internal implementation of merging data from given parse context into this message. + Users should never invoke this method directly. + + + + + Internal implementation of writing this message to a given write context. + Users should never invoke this method directly. + + + + + A message type that has a custom string format for diagnostic purposes. + + + + Calling on a generated message type normally + returns the JSON representation. If a message type implements this interface, + then the method will be called instead of the regular + JSON formatting code, but only when ToString() is called either on the message itself + or on another message which contains it. This does not affect the normal JSON formatting of + the message. + + + For example, if you create a proto message representing a GUID, the internal + representation may be a bytes field or four fixed32 fields. However, when debugging + it may be more convenient to see a result in the same format as provides. + + This interface extends to avoid it accidentally being implemented + on types other than messages, where it would not be used by anything in the framework. + + + + + Returns a string representation of this object, for diagnostic purposes. + + + This method is called when a message is formatted as part of a + call. It does not affect the JSON representation used by other than + in calls to . While it is recommended + that the result is valid JSON, this is never assumed by the Protobuf library. + + A string representation of this object, for diagnostic purposes. + + + + Generic interface for a deeply cloneable type. + + + + All generated messages implement this interface, but so do some non-message types. + Additionally, due to the type constraint on T in , + it is simpler to keep this as a separate interface. + + + The type itself, returned by the method. + + + + Creates a deep clone of this object. + + A deep clone of this object. + + + + Generic interface for a Protocol Buffers message containing one or more extensions, where the type parameter is expected to be the same type as the implementation class. + This interface is experiemental and is subject to change. + + + + + Gets the value of the specified extension + + + + + Gets the value of the specified repeated extension or null if the extension isn't registered in this set. + For a version of this method that never returns null, use + + + + + Gets the value of the specified repeated extension, registering it if it hasn't already been registered. + + + + + Sets the value of the specified extension + + + + + Gets whether the value of the specified extension is set + + + + + Clears the value of the specified extension + + + + + Clears the value of the specified repeated extension + + + + + Interface for a Protocol Buffers message, supporting + basic operations required for serialization. + + + + + Merges the data from the specified coded input stream with the current message. + + See the user guide for precise merge semantics. + + + + + Writes the data to the given coded output stream. + + Coded output stream to write the data to. Must not be null. + + + + Calculates the size of this message in Protocol Buffer wire format, in bytes. + + The number of bytes required to write this message + to a coded output stream. + + + + Descriptor for this message. All instances are expected to return the same descriptor, + and for generated types this will be an explicitly-implemented member, returning the + same value as the static property declared on the type. + + + + + Generic interface for a Protocol Buffers message, + where the type parameter is expected to be the same type as + the implementation class. + + The message type. + + + + Merges the given message into this one. + + See the user guide for precise merge semantics. + The message to merge with this one. Must not be null. + + + + Thrown when an attempt is made to parse invalid JSON, e.g. using + a non-string property key, or including a redundant comma. Parsing a protocol buffer + message represented in JSON using can throw both this + exception and depending on the situation. This + exception is only thrown for "pure JSON" errors, whereas InvalidProtocolBufferException + is thrown when the JSON may be valid in and of itself, but cannot be parsed as a protocol buffer + message. + + + + + Thrown when a protocol message being parsed is invalid in some way, + e.g. it contains a malformed varint or a negative byte length. + + + + + Creates an exception for an error condition of an invalid tag being encountered. + + + + + Reflection-based converter from messages to JSON. + + + + Instances of this class are thread-safe, with no mutable state. + + + This is a simple start to get JSON formatting working. As it's reflection-based, + it's not as quick as baking calls into generated messages - but is a simpler implementation. + (This code is generally not heavily optimized.) + + + + + + Returns a formatter using the default settings. + + + + + The JSON representation of the first 160 characters of Unicode. + Empty strings are replaced by the static constructor. + + + + + Creates a new formatted with the given settings. + + The settings. + + + + Formats the specified message as JSON. + + The message to format. + This method delegates to Format(IMessage, int) with indentationLevel = + 0. The formatted message. + + + + Formats the specified message as JSON. + + The message to format. + Indentation level to start at. + To keep consistent indentation when embedding a message inside another JSON string, + set . E.g: var response = $@"{{ + ""data"": { Format(message, indentationLevel: 1) } + }}" + + The formatted message. + + + + Formats the specified message as JSON. + + The message to format. + The TextWriter to write the formatted message to. + This method delegates to Format(IMessage, TextWriter, int) with + indentationLevel = 0. The formatted message. + + + + Formats the specified message as JSON. When is not null, + start indenting at the specified . + + The message to format. + The TextWriter to write the formatted message to. + Indentation level to start at. + To keep consistent indentation when embedding a message inside another JSON string, + set . + + + + Converts a message to JSON for diagnostic purposes with no extra context. + + + + This differs from calling on the default JSON + formatter in its handling of . As no type registry is available + in calls, the normal way of resolving the type of + an Any message cannot be applied. Instead, a JSON property named @value + is included with the base64 data from the property of the message. + + The value returned by this method is only designed to be used for diagnostic + purposes. It may not be parsable by , and may not be parsable + by other Protocol Buffer implementations. + + The message to format for diagnostic purposes. + The diagnostic-only JSON representation of the message + + + + Determines whether or not a field value should be serialized according to the field, + its value in the message, and the settings of this formatter. + + + + + Writes a single value to the given writer as JSON. Only types understood by + Protocol Buffers can be written in this way. This method is only exposed for + advanced use cases; most users should be using + or . + + The writer to write the value to. Must not be null. + The value to write. May be null. + Delegates to WriteValue(TextWriter, object, int) with indentationLevel = + 0. + + + + Writes a single value to the given writer as JSON. Only types understood by + Protocol Buffers can be written in this way. This method is only exposed for + advanced use cases; most users should be using + or . + + The writer to write the value to. Must not be null. + The value to write. May be null. + The current indentationLevel. Not used when is null. + + + + Central interception point for well-known type formatting. Any well-known types which + don't need special handling can fall back to WriteMessage. We avoid assuming that the + values are using the embedded well-known types, in order to allow for dynamic messages + in the future. + + + + + Writes a string (including leading and trailing double quotes) to a builder, escaping as + required. + + + Other than surrogate pair handling, this code is mostly taken from + src/google/protobuf/util/internal/json_escaping.cc. + + + + + Settings controlling JSON formatting. + + + + + Default settings, as used by + + + + + Whether fields which would otherwise not be included in the formatted data + should be formatted even when the value is not present, or has the default value. + This option only affects fields which don't support "presence" (e.g. + singular non-optional proto3 primitive fields). + + + + + The type registry used to format messages. + + + + + Whether to format enums as ints. Defaults to false. + + + + + Whether to use the original proto field names as defined in the .proto file. Defaults to + false. + + + + + Indentation string, used for formatting. Setting null disables indentation. + + + + + Creates a new object with the specified formatting of default + values and an empty type registry. + + true if default values (0, empty strings etc) + should be formatted; false otherwise. + + + + Creates a new object with the specified formatting of default + values and type registry. + + true if default values (0, empty strings etc) + should be formatted; false otherwise. The to use when formatting messages. + + + + Creates a new object with the specified parameters. + + true if default values (0, empty strings etc) + should be formatted; false otherwise. The to use when formatting messages. + TypeRegistry.Empty will be used if it is null. true to format the enums as integers; false to + format enums as enum names. true to + preserve proto field names; false to convert them to lowerCamelCase. The indentation string to use for multi-line formatting. null to + disable multi-line format. + + + + Creates a new object with the specified formatting of default + values and the current settings. + + true if default values (0, empty strings etc) + should be formatted; false otherwise. + + + + Creates a new object with the specified type registry and the + current settings. + + The to use when formatting messages. + + + + Creates a new object with the specified enums formatting option and + the current settings. + + true to format the enums as integers; + false to format enums as enum names. + + + + Creates a new object with the specified field name formatting + option and the current settings. + + true to preserve proto field names; + false to convert them to lowerCamelCase. + + + + Creates a new object with the specified indentation and the current + settings. + + The string to output for each level of indentation (nesting). + The default is two spaces per level. Use null to disable indentation entirely. + A non-null value for will insert additional line-breaks + to the JSON output. Each line will contain either a single value, or braces. The default + line-break is determined by , which is "\n" on + Unix platforms, and "\r\n" on Windows. If seems to + produce empty lines, you need to pass a that uses a "\n" + newline. See . + + + + + Reflection-based converter from JSON to messages. + + + + Instances of this class are thread-safe, with no mutable state. + + + This is a simple start to get JSON parsing working. As it's reflection-based, + it's not as quick as baking calls into generated messages - but is a simpler implementation. + (This code is generally not heavily optimized.) + + + + + + Returns a formatter using the default settings. + + + + + Creates a new formatted with the given settings. + + The settings. + + + + Parses and merges the information into the given message. + + The message to merge the JSON information into. + The JSON to parse. + + + + Parses JSON read from and merges the information into the given message. + + The message to merge the JSON information into. + Reader providing the JSON to parse. + + + + Merges the given message using data from the given tokenizer. In most cases, the next + token should be a "start object" token, but wrapper types and nullity can invalidate + that assumption. This is implemented as an LL(1) recursive descent parser over the stream + of tokens provided by the tokenizer. This token stream is assumed to be valid JSON, with the + tokenizer performing that validation - but not every token stream is valid "protobuf JSON". + + + + + Attempts to parse a single value from the JSON. When the value is completely invalid, + this will still throw an exception; when it's "conditionally invalid" (currently meaning + "when there's an unknown enum string value") the method returns false instead. + + + true if the value was parsed successfully; false for an ignorable parse failure. + + + + + Parses into a new message. + + The type of message to create. + The JSON to parse. + The JSON does not comply with RFC 7159 + The JSON does not represent a Protocol Buffers message correctly + + + + Parses JSON read from into a new message. + + The type of message to create. + Reader providing the JSON to parse. + The JSON does not comply with RFC 7159 + The JSON does not represent a Protocol Buffers message correctly + + + + Parses into a new message. + + The JSON to parse. + Descriptor of message type to parse. + The JSON does not comply with RFC 7159 + The JSON does not represent a Protocol Buffers message correctly + + + + Parses JSON read from into a new message. + + Reader providing the JSON to parse. + Descriptor of message type to parse. + The JSON does not comply with RFC 7159 + The JSON does not represent a Protocol Buffers message correctly + + + + Creates a new instance of the message type for the given field. + + + + + Checks that any infinite/NaN values originated from the correct text. + This corrects the lenient whitespace handling of double.Parse/float.Parse, as well as the + way that Mono parses out-of-range values as infinity. + + + + + Settings controlling JSON parsing. + + + + + Default settings, as used by . This has the same default + recursion limit as , and an empty type registry. + + + + + The maximum depth of messages to parse. Note that this limit only applies to parsing + messages, not collections - so a message within a collection within a message only counts as + depth 2, not 3. + + + + + The type registry used to parse messages. + + + + + Whether the parser should ignore unknown fields (true) or throw an exception when + they are encountered (false). + + + + + Creates a new object with the specified recursion limit. + + The maximum depth of messages to parse + + + + Creates a new object with the specified recursion limit and type registry. + + The maximum depth of messages to parse + The type registry used to parse messages + + + + Creates a new object set to either ignore unknown fields, or throw an exception + when unknown fields are encountered. + + true if unknown fields should be ignored when parsing; false to throw an exception. + + + + Creates a new object based on this one, but with the specified recursion limit. + + The new recursion limit. + + + + Creates a new object based on this one, but with the specified type registry. + + The new type registry. Must not be null. + + + + Simple but strict JSON tokenizer, rigidly following RFC 7159. + + + + This tokenizer is stateful, and only returns "useful" tokens - names, values etc. + It does not create tokens for the separator between names and values, or for the comma + between values. It validates the token stream as it goes - so callers can assume that the + tokens it produces are appropriate. For example, it would never produce "start object, end array." + + Implementation details: the base class handles single token push-back and + Not thread-safe. + + + + + Creates a tokenizer that reads from the given text reader. + + + + + Creates a tokenizer that first replays the given list of tokens, then continues reading + from another tokenizer. Note that if the returned tokenizer is "pushed back", that does not push back + on the continuation tokenizer, or vice versa. Care should be taken when using this method - it was + created for the sake of Any parsing. + + + + + Returns the depth of the stack, purely in objects (not collections). + Informally, this is the number of remaining unclosed '{' characters we have. + + + + + Returns the next JSON token in the stream. An EndDocument token is returned to indicate the end of the stream, + after which point Next() should not be called again. + + This implementation provides single-token buffering, and calls if there is no buffered token. + The next token in the stream. This is never null. + This method is called after an EndDocument token has been returned + The input text does not comply with RFC 7159 + + + + Returns the next JSON token in the stream, when requested by the base class. (The method delegates + to this if it doesn't have a buffered token.) + + This method is called after an EndDocument token has been returned + The input text does not comply with RFC 7159 + + + + Skips the value we're about to read. This must only be called immediately after reading a property name. + If the value is an object or an array, the complete object/array is skipped. + + + + + Tokenizer which first exhausts a list of tokens, then consults another tokenizer. + + + + + Tokenizer which does all the *real* work of parsing JSON. + + + + + This method essentially just loops through characters skipping whitespace, validating and + changing state (e.g. from ObjectBeforeColon to ObjectAfterColon) + until it reaches something which will be a genuine token (e.g. a start object, or a value) at which point + it returns the token. Although the method is large, it would be relatively hard to break down further... most + of it is the large switch statement, which sometimes returns and sometimes doesn't. + + + + + Reads a string token. It is assumed that the opening " has already been read. + + + + + Reads an escaped character. It is assumed that the leading backslash has already been read. + + + + + Reads an escaped Unicode 4-nybble hex sequence. It is assumed that the leading \u has already been read. + + + + + Consumes a text-only literal, throwing an exception if the read text doesn't match it. + It is assumed that the first letter of the literal has already been read. + + + + + Copies an integer into a StringBuilder. + + The builder to read the number into + The character following the integer, or -1 for end-of-text. + + + + Copies the fractional part of an integer into a StringBuilder, assuming reader is positioned after a period. + + The builder to read the number into + The character following the fractional part, or -1 for end-of-text. + + + + Copies the exponent part of a number into a StringBuilder, with an assumption that the reader is already positioned after the "e". + + The builder to read the number into + The character following the exponent, or -1 for end-of-text. + + + + Copies a sequence of digits into a StringBuilder. + + The builder to read the number into + The number of digits appended to the builder + The character following the digits, or -1 for end-of-text. + + + + Validates that we're in a valid state to read a value (using the given error prefix if necessary) + and changes the state to the appropriate one, e.g. ObjectAfterColon to ObjectAfterProperty. + + + + + Pops the top-most container, and sets the state to the appropriate one for the end of a value + in the parent container. + + + + + Possible states of the tokenizer. + + + This is a flags enum purely so we can simply and efficiently represent a set of valid states + for checking. + + Each is documented with an example, + where ^ represents the current position within the text stream. The examples all use string values, + but could be any value, including nested objects/arrays. + The complete state of the tokenizer also includes a stack to indicate the contexts (arrays/objects). + Any additional notional state of "AfterValue" indicates that a value has been completed, at which + point there's an immediate transition to ExpectedEndOfDocument, ObjectAfterProperty or ArrayAfterValue. + + + These states were derived manually by reading RFC 7159 carefully. + + + + + + ^ { "foo": "bar" } + Before the value in a document. Next states: ObjectStart, ArrayStart, "AfterValue" + + + + + { "foo": "bar" } ^ + After the value in a document. Next states: ReaderExhausted + + + + + { "foo": "bar" } ^ (and already read to the end of the reader) + Terminal state. + + + + + { ^ "foo": "bar" } + Before the *first* property in an object. + Next states: + "AfterValue" (empty object) + ObjectBeforeColon (read a name) + + + + + { "foo" ^ : "bar", "x": "y" } + Next state: ObjectAfterColon + + + + + { "foo" : ^ "bar", "x": "y" } + Before any property other than the first in an object. + (Equivalently: after any property in an object) + Next states: + "AfterValue" (value is simple) + ObjectStart (value is object) + ArrayStart (value is array) + + + + + { "foo" : "bar" ^ , "x" : "y" } + At the end of a property, so expecting either a comma or end-of-object + Next states: ObjectAfterComma or "AfterValue" + + + + + { "foo":"bar", ^ "x":"y" } + Read the comma after the previous property, so expecting another property. + This is like ObjectStart, but closing brace isn't valid here + Next state: ObjectBeforeColon. + + + + + [ ^ "foo", "bar" ] + Before the *first* value in an array. + Next states: + "AfterValue" (read a value) + "AfterValue" (end of array; will pop stack) + + + + + [ "foo" ^ , "bar" ] + After any value in an array, so expecting either a comma or end-of-array + Next states: ArrayAfterComma or "AfterValue" + + + + + [ "foo", ^ "bar" ] + After a comma in an array, so there *must* be another value (simple or complex). + Next states: "AfterValue" (simple value), StartObject, StartArray + + + + + Wrapper around a text reader allowing small amounts of buffering and location handling. + + + + + The buffered next character, if we have one, or -1 if there is no buffered character. + + + + + Returns the next character in the stream, or -1 if we have reached the end of the stream. + + + + + Reads the next character from the underlying reader, throwing an + with the specified message if there are no more characters available. + + + + + Creates a new exception appropriate for the current state of the reader. + + + + + Provide a cached reusable instance of stringbuilder per thread. + Copied from https://github.com/dotnet/runtime/blob/main/src/libraries/Common/src/System/Text/StringBuilderCache.cs + + + + Get a StringBuilder for the specified capacity. + If a StringBuilder of an appropriate size is cached, it will be returned and the cache emptied. + + + Place the specified builder in the cache if it is not too big. + + + ToString() the stringbuilder, Release it to the cache, and return the resulting string. + + + + Stream implementation which proxies another stream, only allowing a certain amount + of data to be read. Note that this is only used to read delimited streams, so it + doesn't attempt to implement everything. + + + + + Extension methods on and . + + + + + Merges data from the given byte array into an existing message. + + The message to merge the data into. + The data to merge, which must be protobuf-encoded binary data. + + + + Merges data from the given byte array slice into an existing message. + + The message to merge the data into. + The data containing the slice to merge, which must be protobuf-encoded binary data. + The offset of the slice to merge. + The length of the slice to merge. + + + + Merges data from the given byte string into an existing message. + + The message to merge the data into. + The data to merge, which must be protobuf-encoded binary data. + + + + Merges data from the given stream into an existing message. + + The message to merge the data into. + Stream containing the data to merge, which must be protobuf-encoded binary data. + + + + Merges data from the given span into an existing message. + + The message to merge the data into. + Span containing the data to merge, which must be protobuf-encoded binary data. + + + + Merges data from the given sequence into an existing message. + + The message to merge the data into. + Sequence from the specified data to merge, which must be protobuf-encoded binary data. + + + + Merges length-delimited data from the given stream into an existing message. + + + The stream is expected to contain a length and then the data. Only the amount of data + specified by the length will be consumed. + + The message to merge the data into. + Stream containing the data to merge, which must be protobuf-encoded binary data. + + + + Converts the given message into a byte array in protobuf encoding. + + The message to convert. + The message data as a byte array. + + + + Writes the given message data to the given stream in protobuf encoding. + + The message to write to the stream. + The stream to write to. + + + + Writes the length and then data of the given message to a stream. + + The message to write. + The output stream to write to. + + + + Converts the given message into a byte string in protobuf encoding. + + The message to convert. + The message data as a byte string. + + + + Writes the given message data to the given buffer writer in protobuf encoding. + + The message to write to the stream. + The stream to write to. + + + + Writes the given message data to the given span in protobuf encoding. + The size of the destination span needs to fit the serialized size + of the message exactly, otherwise an exception is thrown. + + The message to write to the stream. + The span to write to. Size must match size of the message exactly. + + + + Checks if all required fields in a message have values set. For proto3 messages, this returns true. + + + + + A general message parser, typically used by reflection-based code as all the methods + return simple . + + + + + Creates a template instance ready for population. + + An empty message. + + + + Parses a message from a byte array. + + The byte array containing the message. Must not be null. + The newly parsed message. + + + + Parses a message from a byte array slice. + + The byte array containing the message. Must not be null. + The offset of the slice to parse. + The length of the slice to parse. + The newly parsed message. + + + + Parses a message from the given byte string. + + The data to parse. + The parsed message. + + + + Parses a message from the given stream. + + The stream to parse. + The parsed message. + + + + Parses a message from the given sequence. + + The data to parse. + The parsed message. + + + + Parses a message from the given span. + + The data to parse. + The parsed message. + + + + Parses a length-delimited message from the given stream. + + + The stream is expected to contain a length and then the data. Only the amount of data + specified by the length will be consumed. + + The stream to parse. + The parsed message. + + + + Parses a message from the given coded input stream. + + The stream to parse. + The parsed message. + + + + Parses a message from the given JSON. + + This method always uses the default JSON parser; it is not affected by . + To ignore unknown fields when parsing JSON, create a using a + with set to true and call directly. + + The JSON to parse. + The parsed message. + The JSON does not comply with RFC 7159 + The JSON does not represent a Protocol Buffers message correctly + + + + Creates a new message parser which optionally discards unknown fields when parsing. + + Note that this does not affect the behavior of + at all. To ignore unknown fields when parsing JSON, create a using a + with set to true and call directly. + Whether or not to discard unknown fields when parsing. + A newly configured message parser. + + + + Creates a new message parser which registers extensions from the specified registry upon creating the message instance + + The extensions to register + A newly configured message parser. + + + + A parser for a specific message type. + + +

+ This delegates most behavior to the + implementation within the original type, but + provides convenient overloads to parse from a variety of sources. +

+

+ Most applications will never need to create their own instances of this type; + instead, use the static Parser property of a generated message type to obtain a + parser for that type. +

+
+ The type of message to be parsed. +
+ + + Creates a new parser. + + + The factory method is effectively an optimization over using a generic constraint + to require a parameterless constructor: delegates are significantly faster to execute. + + Function to invoke when a new, empty message is required. + + + + Creates a template instance ready for population. + + An empty message. + + + + Parses a message from a byte array. + + The byte array containing the message. Must not be null. + The newly parsed message. + + + + Parses a message from a byte array slice. + + The byte array containing the message. Must not be null. + The offset of the slice to parse. + The length of the slice to parse. + The newly parsed message. + + + + Parses a message from the given byte string. + + The data to parse. + The parsed message. + + + + Parses a message from the given stream. + + The stream to parse. + The parsed message. + + + + Parses a message from the given sequence. + + The data to parse. + The parsed message. + + + + Parses a message from the given span. + + The data to parse. + The parsed message. + + + + Parses a length-delimited message from the given stream. + + + The stream is expected to contain a length and then the data. Only the amount of data + specified by the length will be consumed. + + The stream to parse. + The parsed message. + + + + Parses a message from the given coded input stream. + + The stream to parse. + The parsed message. + + + + Parses a message from the given JSON. + + The JSON to parse. + The parsed message. + The JSON does not comply with RFC 7159 + The JSON does not represent a Protocol Buffers message correctly + + + + Creates a new message parser which optionally discards unknown fields when parsing. + + Whether or not to discard unknown fields when parsing. + A newly configured message parser. + + + + Creates a new message parser which registers extensions from the specified registry upon creating the message instance + + The extensions to register + A newly configured message parser. + + + + Struct used to hold the keys for the fieldByNumber table in DescriptorPool and the keys for the + extensionByNumber table in ExtensionRegistry. + + + + + An opaque struct that represents the current parsing state and is passed along + as the parsing proceeds. + All the public methods are intended to be invoked only by the generated code, + users should never invoke them directly. + + + + + Initialize a , building all from defaults and + the given . + + + + + Initialize a using existing , e.g. from . + + + + + Creates a ParseContext instance from CodedInputStream. + WARNING: internally this copies the CodedInputStream's state, so after done with the ParseContext, + the CodedInputStream's state needs to be updated. + + + + + Returns the last tag read, or 0 if no tags have been read or we've read beyond + the end of the input. + + + + + Internal-only property; when set to true, unknown fields will be discarded while parsing. + + + + + Internal-only property; provides extension identifiers to compatible messages while parsing. + + + + + Reads a field tag, returning the tag of 0 for "end of input". + + + If this method returns 0, it doesn't necessarily mean the end of all + the data in this CodedInputReader; it may be the end of the logical input + for an embedded message, for example. + + The next field tag, or 0 for end of input. (0 is never a valid tag.) + + + + Reads a double field from the input. + + + + + Reads a float field from the input. + + + + + Reads a uint64 field from the input. + + + + + Reads an int64 field from the input. + + + + + Reads an int32 field from the input. + + + + + Reads a fixed64 field from the input. + + + + + Reads a fixed32 field from the input. + + + + + Reads a bool field from the input. + + + + + Reads a string field from the input. + + + + + Reads an embedded message field value from the input. + + + + + Reads an embedded group field from the input. + + + + + Reads a bytes field value from the input. + + + + + Reads a uint32 field value from the input. + + + + + Reads an enum field value from the input. + + + + + Reads an sfixed32 field value from the input. + + + + + Reads an sfixed64 field value from the input. + + + + + Reads an sint32 field value from the input. + + + + + Reads an sint64 field value from the input. + + + + + Reads a length for length-delimited data. + + + This is internally just reading a varint, but this method exists + to make the calling code clearer. + + + + + The position within the current buffer (i.e. the next byte to read) + + + + + Size of the current buffer + + + + + If we are currently inside a length-delimited block, this is the number of + bytes in the buffer that are still available once we leave the delimited block. + + + + + The absolute position of the end of the current length-delimited block (including totalBytesRetired) + + + + + The total number of consumed before the start of the current buffer. The + total bytes read up to the current position can be computed as + totalBytesRetired + bufferPos. + + + + + The last tag we read. 0 indicates we've read to the end of the stream + (or haven't read anything yet). + + + + + The next tag, used to store the value read by PeekTag. + + + + + Internal-only property; when set to true, unknown fields will be discarded while parsing. + + + + + Internal-only property; provides extension identifiers to compatible messages while parsing. + + + + + Primitives for parsing protobuf wire format. + + + + + Reads a length for length-delimited data. + + + This is internally just reading a varint, but this method exists + to make the calling code clearer. + + + + + Parses the next tag. + If the end of logical stream was reached, an invalid tag of 0 is returned. + + + + + Peeks at the next tag in the stream. If it matches , + the tag is consumed and the method returns true; otherwise, the + stream is left in the original position and the method returns false. + + + + + Peeks at the next field tag. This is like calling , but the + tag is not consumed. (So a subsequent call to will return the + same value.) + + + + + Parses a raw varint. + + + + + Parses a raw Varint. If larger than 32 bits, discard the upper bits. + This method is optimised for the case where we've got lots of data in the buffer. + That means we can check the size just once, then just read directly from the buffer + without constant rechecking of the buffer length. + + + + + Parses a 32-bit little-endian integer. + + + + + Parses a 64-bit little-endian integer. + + + + + Parses a double value. + + + + + Parses a float value. + + + + + Reads a fixed size of bytes from the input. + + + the end of the stream or the current limit was reached + + + + + Reads and discards bytes. + + the end of the stream + or the current limit was reached + + + + Reads a string field value from the input. + + + + + Reads a bytes field value from the input. + + + + + Reads a UTF-8 string from the next "length" bytes. + + + the end of the stream or the current limit was reached + + + + + Reads a string assuming that it is spread across multiple spans in a . + + + + + Validates that the specified size doesn't exceed the current limit. If it does then remaining bytes + are skipped and an error is thrown. + + + + + Reads a varint from the input one byte at a time, so that it does not + read any bytes after the end of the varint. If you simply wrapped the + stream in a CodedInputStream and used ReadRawVarint32(Stream) + then you would probably end up reading past the end of the varint since + CodedInputStream buffers its input. + + + + + + + Decode a 32-bit value with ZigZag encoding. + + + ZigZag encodes signed integers into values that can be efficiently + encoded with varint. (Otherwise, negative values must be + sign-extended to 32 bits to be varint encoded, thus always taking + 5 bytes on the wire.) + + + + + Decode a 64-bit value with ZigZag encoding. + + + ZigZag encodes signed integers into values that can be efficiently + encoded with varint. (Otherwise, negative values must be + sign-extended to 64 bits to be varint encoded, thus always taking + 10 bytes on the wire.) + + + + + Checks whether there is known data available of the specified size remaining to parse. + When parsing from a Stream this can return false because we have no knowledge of the amount + of data remaining in the stream until it is read. + + + + + Checks whether there is known data available of the specified size remaining to parse + in the underlying data source. + When parsing from a Stream this will return false because we have no knowledge of the amount + of data remaining in the stream until it is read. + + + + + Read raw bytes of the specified length into a span. The amount of data available and the current limit should + be checked before calling this method. + + + + + Reading and skipping messages / groups + + + + + Skip a group. + + + + + Verifies that the last call to ReadTag() returned tag 0 - in other words, + we've reached the end of the stream when we expected to. + + The + tag read was not the one specified + + + + Fast parsing primitives for wrapper types + + + + + Helper methods for throwing exceptions when preconditions are not met. + + + This class is used internally and by generated code; it is not particularly + expected to be used from application code, although nothing prevents it + from being used that way. + + + + + Throws an ArgumentNullException if the given value is null, otherwise + return the value to the caller. + + + + + Throws an ArgumentNullException if the given value is null, otherwise + return the value to the caller. + + + This is equivalent to but without the type parameter + constraint. In most cases, the constraint is useful to prevent you from calling CheckNotNull + with a value type - but it gets in the way if either you want to use it with a nullable + value type, or you want to use it with an unconstrained type parameter. + + + + + Container for a set of custom options specified within a message, field etc. + + + + This type is publicly immutable, but internally mutable. It is only populated + by the descriptor parsing code - by the time any user code is able to see an instance, + it will be fully initialized. + + + If an option is requested using the incorrect method, an answer may still be returned: all + of the numeric types are represented internally using 64-bit integers, for example. It is up to + the caller to ensure that they make the appropriate method call for the option they're interested in. + Note that enum options are simply stored as integers, so the value should be fetched using + and then cast appropriately. + + + Repeated options are currently not supported. Asking for a single value of an option + which was actually repeated will return the last value, except for message types where + all the set values are merged together. + + + + + + Retrieves a Boolean value for the specified option field. + + The field to fetch the value for. + The output variable to populate. + true if a suitable value for the field was found; false otherwise. + + + + Retrieves a signed 32-bit integer value for the specified option field. + + The field to fetch the value for. + The output variable to populate. + true if a suitable value for the field was found; false otherwise. + + + + Retrieves a signed 64-bit integer value for the specified option field. + + The field to fetch the value for. + The output variable to populate. + true if a suitable value for the field was found; false otherwise. + + + + Retrieves an unsigned 32-bit integer value for the specified option field, + assuming a fixed-length representation. + + The field to fetch the value for. + The output variable to populate. + true if a suitable value for the field was found; false otherwise. + + + + Retrieves an unsigned 64-bit integer value for the specified option field, + assuming a fixed-length representation. + + The field to fetch the value for. + The output variable to populate. + true if a suitable value for the field was found; false otherwise. + + + + Retrieves a signed 32-bit integer value for the specified option field, + assuming a fixed-length representation. + + The field to fetch the value for. + The output variable to populate. + true if a suitable value for the field was found; false otherwise. + + + + Retrieves a signed 64-bit integer value for the specified option field, + assuming a fixed-length representation. + + The field to fetch the value for. + The output variable to populate. + true if a suitable value for the field was found; false otherwise. + + + + Retrieves a signed 32-bit integer value for the specified option field, + assuming a zigzag encoding. + + The field to fetch the value for. + The output variable to populate. + true if a suitable value for the field was found; false otherwise. + + + + Retrieves a signed 64-bit integer value for the specified option field, + assuming a zigzag encoding. + + The field to fetch the value for. + The output variable to populate. + true if a suitable value for the field was found; false otherwise. + + + + Retrieves an unsigned 32-bit integer value for the specified option field. + + The field to fetch the value for. + The output variable to populate. + true if a suitable value for the field was found; false otherwise. + + + + Retrieves an unsigned 64-bit integer value for the specified option field. + + The field to fetch the value for. + The output variable to populate. + true if a suitable value for the field was found; false otherwise. + + + + Retrieves a 32-bit floating point value for the specified option field. + + The field to fetch the value for. + The output variable to populate. + true if a suitable value for the field was found; false otherwise. + + + + Retrieves a 64-bit floating point value for the specified option field. + + The field to fetch the value for. + The output variable to populate. + true if a suitable value for the field was found; false otherwise. + + + + Retrieves a string value for the specified option field. + + The field to fetch the value for. + The output variable to populate. + true if a suitable value for the field was found; false otherwise. + + + + Retrieves a bytes value for the specified option field. + + The field to fetch the value for. + The output variable to populate. + true if a suitable value for the field was found; false otherwise. + + + + Retrieves a message value for the specified option field. + + The field to fetch the value for. + The output variable to populate. + true if a suitable value for the field was found; false otherwise. + + + Holder for reflection information generated from google/protobuf/descriptor.proto + + + File descriptor for google/protobuf/descriptor.proto + + + + The full set of known editions. + + + + + A placeholder for an unknown edition value. + + + + + A placeholder edition for specifying default behaviors *before* a feature + was first introduced. This is effectively an "infinite past". + + + + + Legacy syntax "editions". These pre-date editions, but behave much like + distinct editions. These can't be used to specify the edition of proto + files, but feature definitions must supply proto2/proto3 defaults for + backwards compatibility. + + + + + Editions that have been released. The specific values are arbitrary and + should not be depended on, but they will always be time-ordered for easy + comparison. + + + + + Placeholder editions for testing feature resolution. These should not be + used or relyed on outside of tests. + + + + + Placeholder for specifying unbounded edition support. This should only + ever be used by plugins that can expect to never require any changes to + support a new edition. + + + + + The protocol compiler can output a FileDescriptorSet containing the .proto + files it parses. + + + + Field number for the "file" field. + + + + Describes a complete .proto file. + + + + Field number for the "name" field. + + + + file name, relative to root of source tree + + + + Gets whether the "name" field is set + + + Clears the value of the "name" field + + + Field number for the "package" field. + + + + e.g. "foo", "foo.bar", etc. + + + + Gets whether the "package" field is set + + + Clears the value of the "package" field + + + Field number for the "dependency" field. + + + + Names of files imported by this file. + + + + Field number for the "public_dependency" field. + + + + Indexes of the public imported files in the dependency list above. + + + + Field number for the "weak_dependency" field. + + + + Indexes of the weak imported files in the dependency list. + For Google-internal migration only. Do not use. + + + + Field number for the "message_type" field. + + + + All top-level definitions in this file. + + + + Field number for the "enum_type" field. + + + Field number for the "service" field. + + + Field number for the "extension" field. + + + Field number for the "options" field. + + + Field number for the "source_code_info" field. + + + + This field contains optional information about the original source code. + You may safely remove this entire field without harming runtime + functionality of the descriptors -- the information is needed only by + development tools. + + + + Field number for the "syntax" field. + + + + The syntax of the proto file. + The supported values are "proto2", "proto3", and "editions". + + If `edition` is present, this value must be "editions". + + + + Gets whether the "syntax" field is set + + + Clears the value of the "syntax" field + + + Field number for the "edition" field. + + + + The edition of the proto file. + + + + Gets whether the "edition" field is set + + + Clears the value of the "edition" field + + + + Describes a message type. + + + + Field number for the "name" field. + + + Gets whether the "name" field is set + + + Clears the value of the "name" field + + + Field number for the "field" field. + + + Field number for the "extension" field. + + + Field number for the "nested_type" field. + + + Field number for the "enum_type" field. + + + Field number for the "extension_range" field. + + + Field number for the "oneof_decl" field. + + + Field number for the "options" field. + + + Field number for the "reserved_range" field. + + + Field number for the "reserved_name" field. + + + + Reserved field names, which may not be used by fields in the same message. + A given name may only be reserved once. + + + + Container for nested types declared in the DescriptorProto message type. + + + Field number for the "start" field. + + + + Inclusive. + + + + Gets whether the "start" field is set + + + Clears the value of the "start" field + + + Field number for the "end" field. + + + + Exclusive. + + + + Gets whether the "end" field is set + + + Clears the value of the "end" field + + + Field number for the "options" field. + + + + Range of reserved tag numbers. Reserved tag numbers may not be used by + fields or extension ranges in the same message. Reserved ranges may + not overlap. + + + + Field number for the "start" field. + + + + Inclusive. + + + + Gets whether the "start" field is set + + + Clears the value of the "start" field + + + Field number for the "end" field. + + + + Exclusive. + + + + Gets whether the "end" field is set + + + Clears the value of the "end" field + + + Field number for the "uninterpreted_option" field. + + + + The parser stores options it doesn't recognize here. See above. + + + + Field number for the "declaration" field. + + + + For external users: DO NOT USE. We are in the process of open sourcing + extension declaration and executing internal cleanups before it can be + used externally. + + + + Field number for the "features" field. + + + + Any features defined in the specific edition. + + + + Field number for the "verification" field. + + + + The verification state of the range. + TODO: flip the default to DECLARATION once all empty ranges + are marked as UNVERIFIED. + + + + Gets whether the "verification" field is set + + + Clears the value of the "verification" field + + + Container for nested types declared in the ExtensionRangeOptions message type. + + + + The verification state of the extension range. + + + + + All the extensions of the range must be declared. + + + + Field number for the "number" field. + + + + The extension number declared within the extension range. + + + + Gets whether the "number" field is set + + + Clears the value of the "number" field + + + Field number for the "full_name" field. + + + + The fully-qualified name of the extension field. There must be a leading + dot in front of the full name. + + + + Gets whether the "full_name" field is set + + + Clears the value of the "full_name" field + + + Field number for the "type" field. + + + + The fully-qualified type name of the extension field. Unlike + Metadata.type, Declaration.type must have a leading dot for messages + and enums. + + + + Gets whether the "type" field is set + + + Clears the value of the "type" field + + + Field number for the "reserved" field. + + + + If true, indicates that the number is reserved in the extension range, + and any extension field with the number will fail to compile. Set this + when a declared extension field is deleted. + + + + Gets whether the "reserved" field is set + + + Clears the value of the "reserved" field + + + Field number for the "repeated" field. + + + + If true, indicates that the extension must be defined as repeated. + Otherwise the extension must be defined as optional. + + + + Gets whether the "repeated" field is set + + + Clears the value of the "repeated" field + + + + Describes a field within a message. + + + + Field number for the "name" field. + + + Gets whether the "name" field is set + + + Clears the value of the "name" field + + + Field number for the "number" field. + + + Gets whether the "number" field is set + + + Clears the value of the "number" field + + + Field number for the "label" field. + + + Gets whether the "label" field is set + + + Clears the value of the "label" field + + + Field number for the "type" field. + + + + If type_name is set, this need not be set. If both this and type_name + are set, this must be one of TYPE_ENUM, TYPE_MESSAGE or TYPE_GROUP. + + + + Gets whether the "type" field is set + + + Clears the value of the "type" field + + + Field number for the "type_name" field. + + + + For message and enum types, this is the name of the type. If the name + starts with a '.', it is fully-qualified. Otherwise, C++-like scoping + rules are used to find the type (i.e. first the nested types within this + message are searched, then within the parent, on up to the root + namespace). + + + + Gets whether the "type_name" field is set + + + Clears the value of the "type_name" field + + + Field number for the "extendee" field. + + + + For extensions, this is the name of the type being extended. It is + resolved in the same manner as type_name. + + + + Gets whether the "extendee" field is set + + + Clears the value of the "extendee" field + + + Field number for the "default_value" field. + + + + For numeric types, contains the original text representation of the value. + For booleans, "true" or "false". + For strings, contains the default text contents (not escaped in any way). + For bytes, contains the C escaped value. All bytes >= 128 are escaped. + + + + Gets whether the "default_value" field is set + + + Clears the value of the "default_value" field + + + Field number for the "oneof_index" field. + + + + If set, gives the index of a oneof in the containing type's oneof_decl + list. This field is a member of that oneof. + + + + Gets whether the "oneof_index" field is set + + + Clears the value of the "oneof_index" field + + + Field number for the "json_name" field. + + + + JSON name of this field. The value is set by protocol compiler. If the + user has set a "json_name" option on this field, that option's value + will be used. Otherwise, it's deduced from the field's name by converting + it to camelCase. + + + + Gets whether the "json_name" field is set + + + Clears the value of the "json_name" field + + + Field number for the "options" field. + + + Field number for the "proto3_optional" field. + + + + If true, this is a proto3 "optional". When a proto3 field is optional, it + tracks presence regardless of field type. + + When proto3_optional is true, this field must belong to a oneof to signal + to old proto3 clients that presence is tracked for this field. This oneof + is known as a "synthetic" oneof, and this field must be its sole member + (each proto3 optional field gets its own synthetic oneof). Synthetic oneofs + exist in the descriptor only, and do not generate any API. Synthetic oneofs + must be ordered after all "real" oneofs. + + For message fields, proto3_optional doesn't create any semantic change, + since non-repeated message fields always track presence. However it still + indicates the semantic detail of whether the user wrote "optional" or not. + This can be useful for round-tripping the .proto file. For consistency we + give message fields a synthetic oneof also, even though it is not required + to track presence. This is especially important because the parser can't + tell if a field is a message or an enum, so it must always create a + synthetic oneof. + + Proto2 optional fields do not set this flag, because they already indicate + optional with `LABEL_OPTIONAL`. + + + + Gets whether the "proto3_optional" field is set + + + Clears the value of the "proto3_optional" field + + + Container for nested types declared in the FieldDescriptorProto message type. + + + + 0 is reserved for errors. + Order is weird for historical reasons. + + + + + Not ZigZag encoded. Negative numbers take 10 bytes. Use TYPE_SINT64 if + negative values are likely. + + + + + Not ZigZag encoded. Negative numbers take 10 bytes. Use TYPE_SINT32 if + negative values are likely. + + + + + Tag-delimited aggregate. + Group type is deprecated and not supported after google.protobuf. However, Proto3 + implementations should still be able to parse the group wire format and + treat group fields as unknown fields. In Editions, the group wire format + can be enabled via the `message_encoding` feature. + + + + + Length-delimited aggregate. + + + + + New in version 2. + + + + + Uses ZigZag encoding. + + + + + Uses ZigZag encoding. + + + + + 0 is reserved for errors + + + + + The required label is only allowed in google.protobuf. In proto3 and Editions + it's explicitly prohibited. In Editions, the `field_presence` feature + can be used to get this behavior. + + + + + Describes a oneof. + + + + Field number for the "name" field. + + + Gets whether the "name" field is set + + + Clears the value of the "name" field + + + Field number for the "options" field. + + + + Describes an enum type. + + + + Field number for the "name" field. + + + Gets whether the "name" field is set + + + Clears the value of the "name" field + + + Field number for the "value" field. + + + Field number for the "options" field. + + + Field number for the "reserved_range" field. + + + + Range of reserved numeric values. Reserved numeric values may not be used + by enum values in the same enum declaration. Reserved ranges may not + overlap. + + + + Field number for the "reserved_name" field. + + + + Reserved enum value names, which may not be reused. A given name may only + be reserved once. + + + + Container for nested types declared in the EnumDescriptorProto message type. + + + + Range of reserved numeric values. Reserved values may not be used by + entries in the same enum. Reserved ranges may not overlap. + + Note that this is distinct from DescriptorProto.ReservedRange in that it + is inclusive such that it can appropriately represent the entire int32 + domain. + + + + Field number for the "start" field. + + + + Inclusive. + + + + Gets whether the "start" field is set + + + Clears the value of the "start" field + + + Field number for the "end" field. + + + + Inclusive. + + + + Gets whether the "end" field is set + + + Clears the value of the "end" field + + + + Describes a value within an enum. + + + + Field number for the "name" field. + + + Gets whether the "name" field is set + + + Clears the value of the "name" field + + + Field number for the "number" field. + + + Gets whether the "number" field is set + + + Clears the value of the "number" field + + + Field number for the "options" field. + + + + Describes a service. + + + + Field number for the "name" field. + + + Gets whether the "name" field is set + + + Clears the value of the "name" field + + + Field number for the "method" field. + + + Field number for the "options" field. + + + + Describes a method of a service. + + + + Field number for the "name" field. + + + Gets whether the "name" field is set + + + Clears the value of the "name" field + + + Field number for the "input_type" field. + + + + Input and output type names. These are resolved in the same way as + FieldDescriptorProto.type_name, but must refer to a message type. + + + + Gets whether the "input_type" field is set + + + Clears the value of the "input_type" field + + + Field number for the "output_type" field. + + + Gets whether the "output_type" field is set + + + Clears the value of the "output_type" field + + + Field number for the "options" field. + + + Field number for the "client_streaming" field. + + + + Identifies if client streams multiple client messages + + + + Gets whether the "client_streaming" field is set + + + Clears the value of the "client_streaming" field + + + Field number for the "server_streaming" field. + + + + Identifies if server streams multiple server messages + + + + Gets whether the "server_streaming" field is set + + + Clears the value of the "server_streaming" field + + + Field number for the "java_package" field. + + + + Sets the Java package where classes generated from this .proto will be + placed. By default, the proto package is used, but this is often + inappropriate because proto packages do not normally start with backwards + domain names. + + + + Gets whether the "java_package" field is set + + + Clears the value of the "java_package" field + + + Field number for the "java_outer_classname" field. + + + + Controls the name of the wrapper Java class generated for the .proto file. + That class will always contain the .proto file's getDescriptor() method as + well as any top-level extensions defined in the .proto file. + If java_multiple_files is disabled, then all the other classes from the + .proto file will be nested inside the single wrapper outer class. + + + + Gets whether the "java_outer_classname" field is set + + + Clears the value of the "java_outer_classname" field + + + Field number for the "java_multiple_files" field. + + + + If enabled, then the Java code generator will generate a separate .java + file for each top-level message, enum, and service defined in the .proto + file. Thus, these types will *not* be nested inside the wrapper class + named by java_outer_classname. However, the wrapper class will still be + generated to contain the file's getDescriptor() method as well as any + top-level extensions defined in the file. + + + + Gets whether the "java_multiple_files" field is set + + + Clears the value of the "java_multiple_files" field + + + Field number for the "java_generate_equals_and_hash" field. + + + + This option does nothing. + + + + Gets whether the "java_generate_equals_and_hash" field is set + + + Clears the value of the "java_generate_equals_and_hash" field + + + Field number for the "java_string_check_utf8" field. + + + + A proto2 file can set this to true to opt in to UTF-8 checking for Java, + which will throw an exception if invalid UTF-8 is parsed from the wire or + assigned to a string field. + + TODO: clarify exactly what kinds of field types this option + applies to, and update these docs accordingly. + + Proto3 files already perform these checks. Setting the option explicitly to + false has no effect: it cannot be used to opt proto3 files out of UTF-8 + checks. + + + + Gets whether the "java_string_check_utf8" field is set + + + Clears the value of the "java_string_check_utf8" field + + + Field number for the "optimize_for" field. + + + Gets whether the "optimize_for" field is set + + + Clears the value of the "optimize_for" field + + + Field number for the "go_package" field. + + + + Sets the Go package where structs generated from this .proto will be + placed. If omitted, the Go package will be derived from the following: + - The basename of the package import path, if provided. + - Otherwise, the package statement in the .proto file, if present. + - Otherwise, the basename of the .proto file, without extension. + + + + Gets whether the "go_package" field is set + + + Clears the value of the "go_package" field + + + Field number for the "cc_generic_services" field. + + + + Should generic services be generated in each language? "Generic" services + are not specific to any particular RPC system. They are generated by the + main code generators in each language (without additional plugins). + Generic services were the only kind of service generation supported by + early versions of google.protobuf. + + Generic services are now considered deprecated in favor of using plugins + that generate code specific to your particular RPC system. Therefore, + these default to false. Old code which depends on generic services should + explicitly set them to true. + + + + Gets whether the "cc_generic_services" field is set + + + Clears the value of the "cc_generic_services" field + + + Field number for the "java_generic_services" field. + + + Gets whether the "java_generic_services" field is set + + + Clears the value of the "java_generic_services" field + + + Field number for the "py_generic_services" field. + + + Gets whether the "py_generic_services" field is set + + + Clears the value of the "py_generic_services" field + + + Field number for the "deprecated" field. + + + + Is this file deprecated? + Depending on the target platform, this can emit Deprecated annotations + for everything in the file, or it will be completely ignored; in the very + least, this is a formalization for deprecating files. + + + + Gets whether the "deprecated" field is set + + + Clears the value of the "deprecated" field + + + Field number for the "cc_enable_arenas" field. + + + + Enables the use of arenas for the proto messages in this file. This applies + only to generated classes for C++. + + + + Gets whether the "cc_enable_arenas" field is set + + + Clears the value of the "cc_enable_arenas" field + + + Field number for the "objc_class_prefix" field. + + + + Sets the objective c class prefix which is prepended to all objective c + generated classes from this .proto. There is no default. + + + + Gets whether the "objc_class_prefix" field is set + + + Clears the value of the "objc_class_prefix" field + + + Field number for the "csharp_namespace" field. + + + + Namespace for generated classes; defaults to the package. + + + + Gets whether the "csharp_namespace" field is set + + + Clears the value of the "csharp_namespace" field + + + Field number for the "swift_prefix" field. + + + + By default Swift generators will take the proto package and CamelCase it + replacing '.' with underscore and use that to prefix the types/symbols + defined. When this options is provided, they will use this value instead + to prefix the types/symbols defined. + + + + Gets whether the "swift_prefix" field is set + + + Clears the value of the "swift_prefix" field + + + Field number for the "php_class_prefix" field. + + + + Sets the php class prefix which is prepended to all php generated classes + from this .proto. Default is empty. + + + + Gets whether the "php_class_prefix" field is set + + + Clears the value of the "php_class_prefix" field + + + Field number for the "php_namespace" field. + + + + Use this option to change the namespace of php generated classes. Default + is empty. When this option is empty, the package name will be used for + determining the namespace. + + + + Gets whether the "php_namespace" field is set + + + Clears the value of the "php_namespace" field + + + Field number for the "php_metadata_namespace" field. + + + + Use this option to change the namespace of php generated metadata classes. + Default is empty. When this option is empty, the proto file name will be + used for determining the namespace. + + + + Gets whether the "php_metadata_namespace" field is set + + + Clears the value of the "php_metadata_namespace" field + + + Field number for the "ruby_package" field. + + + + Use this option to change the package of ruby generated classes. Default + is empty. When this option is not set, the package name will be used for + determining the ruby package. + + + + Gets whether the "ruby_package" field is set + + + Clears the value of the "ruby_package" field + + + Field number for the "features" field. + + + + Any features defined in the specific edition. + + + + Field number for the "uninterpreted_option" field. + + + + The parser stores options it doesn't recognize here. + See the documentation for the "Options" section above. + + + + Container for nested types declared in the FileOptions message type. + + + + Generated classes can be optimized for speed or code size. + + + + + Generate complete code for parsing, serialization, + + + + + etc. + + + + + Generate code using MessageLite and the lite runtime. + + + + Field number for the "message_set_wire_format" field. + + + + Set true to use the old proto1 MessageSet wire format for extensions. + This is provided for backwards-compatibility with the MessageSet wire + format. You should not use this for any other reason: It's less + efficient, has fewer features, and is more complicated. + + The message must be defined exactly as follows: + message Foo { + option message_set_wire_format = true; + extensions 4 to max; + } + Note that the message cannot have any defined fields; MessageSets only + have extensions. + + All extensions of your type must be singular messages; e.g. they cannot + be int32s, enums, or repeated messages. + + Because this is an option, the above two restrictions are not enforced by + the protocol compiler. + + + + Gets whether the "message_set_wire_format" field is set + + + Clears the value of the "message_set_wire_format" field + + + Field number for the "no_standard_descriptor_accessor" field. + + + + Disables the generation of the standard "descriptor()" accessor, which can + conflict with a field of the same name. This is meant to make migration + from proto1 easier; new code should avoid fields named "descriptor". + + + + Gets whether the "no_standard_descriptor_accessor" field is set + + + Clears the value of the "no_standard_descriptor_accessor" field + + + Field number for the "deprecated" field. + + + + Is this message deprecated? + Depending on the target platform, this can emit Deprecated annotations + for the message, or it will be completely ignored; in the very least, + this is a formalization for deprecating messages. + + + + Gets whether the "deprecated" field is set + + + Clears the value of the "deprecated" field + + + Field number for the "map_entry" field. + + + + Whether the message is an automatically generated map entry type for the + maps field. + + For maps fields: + map<KeyType, ValueType> map_field = 1; + The parsed descriptor looks like: + message MapFieldEntry { + option map_entry = true; + optional KeyType key = 1; + optional ValueType value = 2; + } + repeated MapFieldEntry map_field = 1; + + Implementations may choose not to generate the map_entry=true message, but + use a native map in the target language to hold the keys and values. + The reflection APIs in such implementations still need to work as + if the field is a repeated message field. + + NOTE: Do not set the option in .proto files. Always use the maps syntax + instead. The option should only be implicitly set by the proto compiler + parser. + + + + Gets whether the "map_entry" field is set + + + Clears the value of the "map_entry" field + + + Field number for the "deprecated_legacy_json_field_conflicts" field. + + + + Enable the legacy handling of JSON field name conflicts. This lowercases + and strips underscored from the fields before comparison in proto3 only. + The new behavior takes `json_name` into account and applies to proto2 as + well. + + This should only be used as a temporary measure against broken builds due + to the change in behavior for JSON field name conflicts. + + TODO This is legacy behavior we plan to remove once downstream + teams have had time to migrate. + + + + Gets whether the "deprecated_legacy_json_field_conflicts" field is set + + + Clears the value of the "deprecated_legacy_json_field_conflicts" field + + + Field number for the "features" field. + + + + Any features defined in the specific edition. + + + + Field number for the "uninterpreted_option" field. + + + + The parser stores options it doesn't recognize here. See above. + + + + Field number for the "ctype" field. + + + + NOTE: ctype is deprecated. Use `features.(pb.cpp).string_type` instead. + The ctype option instructs the C++ code generator to use a different + representation of the field than it normally would. See the specific + options below. This option is only implemented to support use of + [ctype=CORD] and [ctype=STRING] (the default) on non-repeated fields of + type "bytes" in the open source release. + TODO: make ctype actually deprecated. + + + + Gets whether the "ctype" field is set + + + Clears the value of the "ctype" field + + + Field number for the "packed" field. + + + + The packed option can be enabled for repeated primitive fields to enable + a more efficient representation on the wire. Rather than repeatedly + writing the tag and type for each element, the entire array is encoded as + a single length-delimited blob. In proto3, only explicit setting it to + false will avoid using packed encoding. This option is prohibited in + Editions, but the `repeated_field_encoding` feature can be used to control + the behavior. + + + + Gets whether the "packed" field is set + + + Clears the value of the "packed" field + + + Field number for the "jstype" field. + + + + The jstype option determines the JavaScript type used for values of the + field. The option is permitted only for 64 bit integral and fixed types + (int64, uint64, sint64, fixed64, sfixed64). A field with jstype JS_STRING + is represented as JavaScript string, which avoids loss of precision that + can happen when a large value is converted to a floating point JavaScript. + Specifying JS_NUMBER for the jstype causes the generated JavaScript code to + use the JavaScript "number" type. The behavior of the default option + JS_NORMAL is implementation dependent. + + This option is an enum to permit additional types to be added, e.g. + goog.math.Integer. + + + + Gets whether the "jstype" field is set + + + Clears the value of the "jstype" field + + + Field number for the "lazy" field. + + + + Should this field be parsed lazily? Lazy applies only to message-type + fields. It means that when the outer message is initially parsed, the + inner message's contents will not be parsed but instead stored in encoded + form. The inner message will actually be parsed when it is first accessed. + + This is only a hint. Implementations are free to choose whether to use + eager or lazy parsing regardless of the value of this option. However, + setting this option true suggests that the protocol author believes that + using lazy parsing on this field is worth the additional bookkeeping + overhead typically needed to implement it. + + This option does not affect the public interface of any generated code; + all method signatures remain the same. Furthermore, thread-safety of the + interface is not affected by this option; const methods remain safe to + call from multiple threads concurrently, while non-const methods continue + to require exclusive access. + + Note that lazy message fields are still eagerly verified to check + ill-formed wireformat or missing required fields. Calling IsInitialized() + on the outer message would fail if the inner message has missing required + fields. Failed verification would result in parsing failure (except when + uninitialized messages are acceptable). + + + + Gets whether the "lazy" field is set + + + Clears the value of the "lazy" field + + + Field number for the "unverified_lazy" field. + + + + unverified_lazy does no correctness checks on the byte stream. This should + only be used where lazy with verification is prohibitive for performance + reasons. + + + + Gets whether the "unverified_lazy" field is set + + + Clears the value of the "unverified_lazy" field + + + Field number for the "deprecated" field. + + + + Is this field deprecated? + Depending on the target platform, this can emit Deprecated annotations + for accessors, or it will be completely ignored; in the very least, this + is a formalization for deprecating fields. + + + + Gets whether the "deprecated" field is set + + + Clears the value of the "deprecated" field + + + Field number for the "weak" field. + + + + For Google-internal migration only. Do not use. + + + + Gets whether the "weak" field is set + + + Clears the value of the "weak" field + + + Field number for the "debug_redact" field. + + + + Indicate that the field value should not be printed out when using debug + formats, e.g. when the field contains sensitive credentials. + + + + Gets whether the "debug_redact" field is set + + + Clears the value of the "debug_redact" field + + + Field number for the "retention" field. + + + Gets whether the "retention" field is set + + + Clears the value of the "retention" field + + + Field number for the "targets" field. + + + Field number for the "edition_defaults" field. + + + Field number for the "features" field. + + + + Any features defined in the specific edition. + + + + Field number for the "feature_support" field. + + + Field number for the "uninterpreted_option" field. + + + + The parser stores options it doesn't recognize here. See above. + + + + Container for nested types declared in the FieldOptions message type. + + + + Default mode. + + + + + The option [ctype=CORD] may be applied to a non-repeated field of type + "bytes". It indicates that in C++, the data should be stored in a Cord + instead of a string. For very large strings, this may reduce memory + fragmentation. It may also allow better performance when parsing from a + Cord, or when parsing with aliasing enabled, as the parsed Cord may then + alias the original buffer. + + + + + Use the default type. + + + + + Use JavaScript strings. + + + + + Use JavaScript numbers. + + + + + If set to RETENTION_SOURCE, the option will be omitted from the binary. + Note: as of January 2023, support for this is in progress and does not yet + have an effect (b/264593489). + + + + + This indicates the types of entities that the field may apply to when used + as an option. If it is unset, then the field may be freely used as an + option on any kind of entity. Note: as of January 2023, support for this is + in progress and does not yet have an effect (b/264593489). + + + + Field number for the "edition" field. + + + Gets whether the "edition" field is set + + + Clears the value of the "edition" field + + + Field number for the "value" field. + + + + Textproto value. + + + + Gets whether the "value" field is set + + + Clears the value of the "value" field + + + + Information about the support window of a feature. + + + + Field number for the "edition_introduced" field. + + + + The edition that this feature was first available in. In editions + earlier than this one, the default assigned to EDITION_LEGACY will be + used, and proto files will not be able to override it. + + + + Gets whether the "edition_introduced" field is set + + + Clears the value of the "edition_introduced" field + + + Field number for the "edition_deprecated" field. + + + + The edition this feature becomes deprecated in. Using this after this + edition may trigger warnings. + + + + Gets whether the "edition_deprecated" field is set + + + Clears the value of the "edition_deprecated" field + + + Field number for the "deprecation_warning" field. + + + + The deprecation warning text if this feature is used after the edition it + was marked deprecated in. + + + + Gets whether the "deprecation_warning" field is set + + + Clears the value of the "deprecation_warning" field + + + Field number for the "edition_removed" field. + + + + The edition this feature is no longer available in. In editions after + this one, the last default assigned will be used, and proto files will + not be able to override it. + + + + Gets whether the "edition_removed" field is set + + + Clears the value of the "edition_removed" field + + + Field number for the "features" field. + + + + Any features defined in the specific edition. + + + + Field number for the "uninterpreted_option" field. + + + + The parser stores options it doesn't recognize here. See above. + + + + Field number for the "allow_alias" field. + + + + Set this option to true to allow mapping different tag names to the same + value. + + + + Gets whether the "allow_alias" field is set + + + Clears the value of the "allow_alias" field + + + Field number for the "deprecated" field. + + + + Is this enum deprecated? + Depending on the target platform, this can emit Deprecated annotations + for the enum, or it will be completely ignored; in the very least, this + is a formalization for deprecating enums. + + + + Gets whether the "deprecated" field is set + + + Clears the value of the "deprecated" field + + + Field number for the "deprecated_legacy_json_field_conflicts" field. + + + + Enable the legacy handling of JSON field name conflicts. This lowercases + and strips underscored from the fields before comparison in proto3 only. + The new behavior takes `json_name` into account and applies to proto2 as + well. + TODO Remove this legacy behavior once downstream teams have + had time to migrate. + + + + Gets whether the "deprecated_legacy_json_field_conflicts" field is set + + + Clears the value of the "deprecated_legacy_json_field_conflicts" field + + + Field number for the "features" field. + + + + Any features defined in the specific edition. + + + + Field number for the "uninterpreted_option" field. + + + + The parser stores options it doesn't recognize here. See above. + + + + Field number for the "deprecated" field. + + + + Is this enum value deprecated? + Depending on the target platform, this can emit Deprecated annotations + for the enum value, or it will be completely ignored; in the very least, + this is a formalization for deprecating enum values. + + + + Gets whether the "deprecated" field is set + + + Clears the value of the "deprecated" field + + + Field number for the "features" field. + + + + Any features defined in the specific edition. + + + + Field number for the "debug_redact" field. + + + + Indicate that fields annotated with this enum value should not be printed + out when using debug formats, e.g. when the field contains sensitive + credentials. + + + + Gets whether the "debug_redact" field is set + + + Clears the value of the "debug_redact" field + + + Field number for the "feature_support" field. + + + + Information about the support window of a feature value. + + + + Field number for the "uninterpreted_option" field. + + + + The parser stores options it doesn't recognize here. See above. + + + + Field number for the "features" field. + + + + Any features defined in the specific edition. + + + + Field number for the "deprecated" field. + + + + Is this service deprecated? + Depending on the target platform, this can emit Deprecated annotations + for the service, or it will be completely ignored; in the very least, + this is a formalization for deprecating services. + + + + Gets whether the "deprecated" field is set + + + Clears the value of the "deprecated" field + + + Field number for the "uninterpreted_option" field. + + + + The parser stores options it doesn't recognize here. See above. + + + + Field number for the "deprecated" field. + + + + Is this method deprecated? + Depending on the target platform, this can emit Deprecated annotations + for the method, or it will be completely ignored; in the very least, + this is a formalization for deprecating methods. + + + + Gets whether the "deprecated" field is set + + + Clears the value of the "deprecated" field + + + Field number for the "idempotency_level" field. + + + Gets whether the "idempotency_level" field is set + + + Clears the value of the "idempotency_level" field + + + Field number for the "features" field. + + + + Any features defined in the specific edition. + + + + Field number for the "uninterpreted_option" field. + + + + The parser stores options it doesn't recognize here. See above. + + + + Container for nested types declared in the MethodOptions message type. + + + + Is this method side-effect-free (or safe in HTTP parlance), or idempotent, + or neither? HTTP based RPC implementation may choose GET verb for safe + methods, and PUT verb for idempotent methods instead of the default POST. + + + + + implies idempotent + + + + + idempotent, but may have side effects + + + + + A message representing a option the parser does not recognize. This only + appears in options protos created by the compiler::Parser class. + DescriptorPool resolves these when building Descriptor objects. Therefore, + options protos in descriptor objects (e.g. returned by Descriptor::options(), + or produced by Descriptor::CopyTo()) will never have UninterpretedOptions + in them. + + + + Field number for the "name" field. + + + Field number for the "identifier_value" field. + + + + The value of the uninterpreted option, in whatever type the tokenizer + identified it as during parsing. Exactly one of these should be set. + + + + Gets whether the "identifier_value" field is set + + + Clears the value of the "identifier_value" field + + + Field number for the "positive_int_value" field. + + + Gets whether the "positive_int_value" field is set + + + Clears the value of the "positive_int_value" field + + + Field number for the "negative_int_value" field. + + + Gets whether the "negative_int_value" field is set + + + Clears the value of the "negative_int_value" field + + + Field number for the "double_value" field. + + + Gets whether the "double_value" field is set + + + Clears the value of the "double_value" field + + + Field number for the "string_value" field. + + + Gets whether the "string_value" field is set + + + Clears the value of the "string_value" field + + + Field number for the "aggregate_value" field. + + + Gets whether the "aggregate_value" field is set + + + Clears the value of the "aggregate_value" field + + + Container for nested types declared in the UninterpretedOption message type. + + + + The name of the uninterpreted option. Each string represents a segment in + a dot-separated name. is_extension is true iff a segment represents an + extension (denoted with parentheses in options specs in .proto files). + E.g.,{ ["foo", false], ["bar.baz", true], ["moo", false] } represents + "foo.(bar.baz).moo". + + + + Field number for the "name_part" field. + + + Gets whether the "name_part" field is set + + + Clears the value of the "name_part" field + + + Field number for the "is_extension" field. + + + Gets whether the "is_extension" field is set + + + Clears the value of the "is_extension" field + + + + TODO Enums in C++ gencode (and potentially other languages) are + not well scoped. This means that each of the feature enums below can clash + with each other. The short names we've chosen maximize call-site + readability, but leave us very open to this scenario. A future feature will + be designed and implemented to handle this, hopefully before we ever hit a + conflict here. + + + + Field number for the "field_presence" field. + + + Gets whether the "field_presence" field is set + + + Clears the value of the "field_presence" field + + + Field number for the "enum_type" field. + + + Gets whether the "enum_type" field is set + + + Clears the value of the "enum_type" field + + + Field number for the "repeated_field_encoding" field. + + + Gets whether the "repeated_field_encoding" field is set + + + Clears the value of the "repeated_field_encoding" field + + + Field number for the "utf8_validation" field. + + + Gets whether the "utf8_validation" field is set + + + Clears the value of the "utf8_validation" field + + + Field number for the "message_encoding" field. + + + Gets whether the "message_encoding" field is set + + + Clears the value of the "message_encoding" field + + + Field number for the "json_format" field. + + + Gets whether the "json_format" field is set + + + Clears the value of the "json_format" field + + + Container for nested types declared in the FeatureSet message type. + + + + A compiled specification for the defaults of a set of features. These + messages are generated from FeatureSet extensions and can be used to seed + feature resolution. The resolution with this object becomes a simple search + for the closest matching edition, followed by proto merges. + + + + Field number for the "defaults" field. + + + Field number for the "minimum_edition" field. + + + + The minimum supported edition (inclusive) when this was constructed. + Editions before this will not have defaults. + + + + Gets whether the "minimum_edition" field is set + + + Clears the value of the "minimum_edition" field + + + Field number for the "maximum_edition" field. + + + + The maximum known edition (inclusive) when this was constructed. Editions + after this will not have reliable defaults. + + + + Gets whether the "maximum_edition" field is set + + + Clears the value of the "maximum_edition" field + + + Container for nested types declared in the FeatureSetDefaults message type. + + + + A map from every known edition with a unique set of defaults to its + defaults. Not all editions may be contained here. For a given edition, + the defaults at the closest matching edition ordered at or before it should + be used. This field must be in strict ascending order by edition. + + + + Field number for the "edition" field. + + + Gets whether the "edition" field is set + + + Clears the value of the "edition" field + + + Field number for the "overridable_features" field. + + + + Defaults of features that can be overridden in this edition. + + + + Field number for the "fixed_features" field. + + + + Defaults of features that can't be overridden in this edition. + + + + + Encapsulates information about the original source file from which a + FileDescriptorProto was generated. + + + + Field number for the "location" field. + + + + A Location identifies a piece of source code in a .proto file which + corresponds to a particular definition. This information is intended + to be useful to IDEs, code indexers, documentation generators, and similar + tools. + + For example, say we have a file like: + message Foo { + optional string foo = 1; + } + Let's look at just the field definition: + optional string foo = 1; + ^ ^^ ^^ ^ ^^^ + a bc de f ghi + We have the following locations: + span path represents + [a,i) [ 4, 0, 2, 0 ] The whole field definition. + [a,b) [ 4, 0, 2, 0, 4 ] The label (optional). + [c,d) [ 4, 0, 2, 0, 5 ] The type (string). + [e,f) [ 4, 0, 2, 0, 1 ] The name (foo). + [g,h) [ 4, 0, 2, 0, 3 ] The number (1). + + Notes: + - A location may refer to a repeated field itself (i.e. not to any + particular index within it). This is used whenever a set of elements are + logically enclosed in a single code segment. For example, an entire + extend block (possibly containing multiple extension definitions) will + have an outer location whose path refers to the "extensions" repeated + field without an index. + - Multiple locations may have the same path. This happens when a single + logical declaration is spread out across multiple places. The most + obvious example is the "extend" block again -- there may be multiple + extend blocks in the same scope, each of which will have the same path. + - A location's span is not always a subset of its parent's span. For + example, the "extendee" of an extension declaration appears at the + beginning of the "extend" block and is shared by all extensions within + the block. + - Just because a location's span is a subset of some other location's span + does not mean that it is a descendant. For example, a "group" defines + both a type and a field in a single declaration. Thus, the locations + corresponding to the type and field and their components will overlap. + - Code which tries to interpret locations should probably be designed to + ignore those that it doesn't understand, as more types of locations could + be recorded in the future. + + + + Container for nested types declared in the SourceCodeInfo message type. + + + Field number for the "path" field. + + + + Identifies which part of the FileDescriptorProto was defined at this + location. + + Each element is a field number or an index. They form a path from + the root FileDescriptorProto to the place where the definition appears. + For example, this path: + [ 4, 3, 2, 7, 1 ] + refers to: + file.message_type(3) // 4, 3 + .field(7) // 2, 7 + .name() // 1 + This is because FileDescriptorProto.message_type has field number 4: + repeated DescriptorProto message_type = 4; + and DescriptorProto.field has field number 2: + repeated FieldDescriptorProto field = 2; + and FieldDescriptorProto.name has field number 1: + optional string name = 1; + + Thus, the above path gives the location of a field name. If we removed + the last element: + [ 4, 3, 2, 7 ] + this path refers to the whole field declaration (from the beginning + of the label to the terminating semicolon). + + + + Field number for the "span" field. + + + + Always has exactly three or four elements: start line, start column, + end line (optional, otherwise assumed same as start line), end column. + These are packed into a single field for efficiency. Note that line + and column numbers are zero-based -- typically you will want to add + 1 to each before displaying to a user. + + + + Field number for the "leading_comments" field. + + + + If this SourceCodeInfo represents a complete declaration, these are any + comments appearing before and after the declaration which appear to be + attached to the declaration. + + A series of line comments appearing on consecutive lines, with no other + tokens appearing on those lines, will be treated as a single comment. + + leading_detached_comments will keep paragraphs of comments that appear + before (but not connected to) the current element. Each paragraph, + separated by empty lines, will be one comment element in the repeated + field. + + Only the comment content is provided; comment markers (e.g. //) are + stripped out. For block comments, leading whitespace and an asterisk + will be stripped from the beginning of each line other than the first. + Newlines are included in the output. + + Examples: + + optional int32 foo = 1; // Comment attached to foo. + // Comment attached to bar. + optional int32 bar = 2; + + optional string baz = 3; + // Comment attached to baz. + // Another line attached to baz. + + // Comment attached to moo. + // + // Another line attached to moo. + optional double moo = 4; + + // Detached comment for corge. This is not leading or trailing comments + // to moo or corge because there are blank lines separating it from + // both. + + // Detached comment for corge paragraph 2. + + optional string corge = 5; + /* Block comment attached + * to corge. Leading asterisks + * will be removed. */ + /* Block comment attached to + * grault. */ + optional int32 grault = 6; + + // ignored detached comments. + + + + Gets whether the "leading_comments" field is set + + + Clears the value of the "leading_comments" field + + + Field number for the "trailing_comments" field. + + + Gets whether the "trailing_comments" field is set + + + Clears the value of the "trailing_comments" field + + + Field number for the "leading_detached_comments" field. + + + + Describes the relationship between generated code and its original source + file. A GeneratedCodeInfo message is associated with only one generated + source file, but may contain references to different source .proto files. + + + + Field number for the "annotation" field. + + + + An Annotation connects some span of text in generated code to an element + of its generating .proto file. + + + + Container for nested types declared in the GeneratedCodeInfo message type. + + + Field number for the "path" field. + + + + Identifies the element in the original source .proto file. This field + is formatted the same as SourceCodeInfo.Location.path. + + + + Field number for the "source_file" field. + + + + Identifies the filesystem path to the original source .proto. + + + + Gets whether the "source_file" field is set + + + Clears the value of the "source_file" field + + + Field number for the "begin" field. + + + + Identifies the starting offset in bytes in the generated code + that relates to the identified object. + + + + Gets whether the "begin" field is set + + + Clears the value of the "begin" field + + + Field number for the "end" field. + + + + Identifies the ending offset in bytes in the generated code that + relates to the identified object. The end offset should be one past + the last relevant byte (so the length of the text = end - begin). + + + + Gets whether the "end" field is set + + + Clears the value of the "end" field + + + Field number for the "semantic" field. + + + Gets whether the "semantic" field is set + + + Clears the value of the "semantic" field + + + Container for nested types declared in the Annotation message type. + + + + Represents the identified object's effect on the element in the original + .proto file. + + + + + There is no effect or the effect is indescribable. + + + + + The element is set or otherwise mutated. + + + + + An alias to the element is returned. + + + + + Base class for nearly all descriptors, providing common functionality. + + + + + The feature set for this descriptor, including inherited features. + This is internal as external users should use the properties on individual + descriptor types (e.g. FieldDescriptor.IsPacked) rather than querying features directly. + + + + + The index of this descriptor within its parent descriptor. + + + This returns the index of this descriptor within its parent, for + this descriptor's type. (There can be duplicate values for different + types, e.g. one enum type with index 0 and one message type with index 0.) + + + + + Returns the name of the entity (field, message etc) being described. + + + + + The fully qualified name of the descriptor's target. + + + + + The file this descriptor was declared in. + + + + + The declaration information about the descriptor, or null if no declaration information + is available for this descriptor. + + + This information is typically only available for dynamically loaded descriptors, + for example within a protoc plugin where the full descriptors, including source info, + are passed to the code by protoc. + + + + + Retrieves the list of nested descriptors corresponding to the given field number, if any. + If the field is unknown or not a nested descriptor list, return null to terminate the search. + The default implementation returns null. + + + + + Provides additional information about the declaration of a descriptor, + such as source location and comments. + + + + + The descriptor this declaration relates to. + + + + + The start line of the declaration within the source file. This value is 1-based. + + + + + The start column of the declaration within the source file. This value is 1-based. + + + + + // The end line of the declaration within the source file. This value is 1-based. + + + + + The end column of the declaration within the source file. This value is 1-based, and + exclusive. (The final character of the declaration is on the column before this value.) + + + + + Comments appearing before the declaration. Never null, but may be empty. Multi-line comments + are represented as a newline-separated string. Leading whitespace and the comment marker ("//") + are removed from each line. + + + + + Comments appearing after the declaration. Never null, but may be empty. Multi-line comments + are represented as a newline-separated string. Leading whitespace and the comment marker ("//") + are removed from each line. + + + + + Comments appearing before the declaration, but separated from it by blank + lines. Each string represents a newline-separated paragraph of comments. + Leading whitespace and the comment marker ("//") are removed from each line. + The list is never null, but may be empty. Likewise each element is never null, but may be empty. + + + + + Contains lookup tables containing all the descriptors defined in a particular file. + + + + + Finds a symbol of the given name within the pool. + + The type of symbol to look for + Fully-qualified name to look up + The symbol with the given name and type, + or null if the symbol doesn't exist or has the wrong type + + + + Adds a package to the symbol tables. If a package by the same name + already exists, that is fine, but if some other kind of symbol + exists under the same name, an exception is thrown. If the package + has multiple components, this also adds the parent package(s). + + + + + Adds a symbol to the symbol table. + + The symbol already existed + in the symbol table. + + + + Verifies that the descriptor's name is valid (i.e. it contains + only letters, digits and underscores, and does not start with a digit). + + + + + + Returns the field with the given number in the given descriptor, + or null if it can't be found. + + + + + Adds a field to the fieldsByNumber table. + + A field with the same + containing type and number already exists. + + + + Adds an enum value to the enumValuesByNumber and enumValuesByName tables. If an enum value + with the same type and number already exists, this method does nothing to enumValuesByNumber. + (This is allowed; the first value defined with the number takes precedence.) If an enum + value with the same name already exists, this method throws DescriptorValidationException. + (It is expected that this method is called after AddSymbol, which would already have thrown + an exception in this failure case.) + + + + + Looks up a descriptor by name, relative to some other descriptor. + The name may be fully-qualified (with a leading '.'), partially-qualified, + or unqualified. C++-like name lookup semantics are used to search for the + matching descriptor. + + + This isn't heavily optimized, but it's only used during cross linking anyway. + If it starts being used more widely, we should look at performance more carefully. + + + + + Struct used to hold the keys for the enumValuesByName table. + + + + + Internal class containing utility methods when working with descriptors. + + + + + Equivalent to Func[TInput, int, TOutput] but usable in .NET 2.0. Only used to convert + arrays. + + + + + Converts the given array into a read-only list, applying the specified conversion to + each input element. + + + + + Thrown when building descriptors fails because the source DescriptorProtos + are not valid. + + + + + The full name of the descriptor where the error occurred. + + + + + A human-readable description of the error. (The Message property + is made up of the descriptor's name and this description.) + + + + + Descriptor for an enum type in a .proto file. + + + + + Returns a clone of the underlying describing this enum. + Note that a copy is taken every time this method is called, so clients using it frequently + (and not modifying it) may want to cache the returned value. + + A protobuf representation of this enum descriptor. + + + + The brief name of the descriptor's target. + + + + + The CLR type for this enum. For generated code, this will be a CLR enum type. + + + + + If this is a nested type, get the outer descriptor, otherwise null. + + + + + An unmodifiable list of defined value descriptors for this enum. + + + + + Finds an enum value by number. If multiple enum values have the + same number, this returns the first defined value with that number. + If there is no value for the given number, this returns null. + + + + + Finds an enum value by name. + + The unqualified name of the value (e.g. "FOO"). + The value's descriptor, or null if not found. + + + + The (possibly empty) set of custom options for this enum. + + + + + The EnumOptions, defined in descriptor.proto. + If the options message is not present (i.e. there are no options), null is returned. + Custom options can be retrieved as extensions of the returned message. + NOTE: A defensive copy is created each time this property is retrieved. + + + + + Gets a single value enum option for this descriptor + + + + + Gets a repeated value enum option for this descriptor + + + + + Descriptor for a single enum value within an enum in a .proto file. + + + + + Returns a clone of the underlying describing this enum value. + Note that a copy is taken every time this method is called, so clients using it frequently + (and not modifying it) may want to cache the returned value. + + A protobuf representation of this enum value descriptor. + + + + Returns the name of the enum value described by this object. + + + + + Returns the number associated with this enum value. + + + + + Returns the enum descriptor that this value is part of. + + + + + The (possibly empty) set of custom options for this enum value. + + + + + The EnumValueOptions, defined in descriptor.proto. + If the options message is not present (i.e. there are no options), null is returned. + Custom options can be retrieved as extensions of the returned message. + NOTE: A defensive copy is created each time this property is retrieved. + + + + + Gets a single value enum value option for this descriptor + + + + + Gets a repeated value enum value option for this descriptor + + + + + A collection to simplify retrieving the descriptors of extensions in a descriptor for a message + + + + + Returns a readonly list of all the extensions defined in this type in + the order they were defined in the source .proto file + + + + + Returns a readonly list of all the extensions define in this type that extend + the provided descriptor type in the order they were defined in the source .proto file + + + + + Returns a readonly list of all the extensions define in this type that extend + the provided descriptor type in ascending field order + + + + + A resolved set of features for a file, message etc. + + + Only features supported by the C# runtime are exposed; currently + all enums in C# are open, and we never perform UTF-8 validation. + If either of those features are ever implemented in this runtime, + the feature settings will be exposed as properties in this class. + + + + + Only relevant to fields. Indicates if a field has explicit presence. + + + + + Only relevant to fields. Indicates how a repeated field should be encoded. + + + + + Only relevant to fields. Indicates how a message-valued field should be encoded. + + + + + Returns a new descriptor based on this one, with the specified overrides. + Multiple calls to this method that produce equivalent feature sets will return + the same instance. + + The proto representation of the "child" feature set to merge with this + one. May be null, in which case this descriptor is returned. + A descriptor based on the current one, with the given set of overrides. + + + + Base class for field accessors. + + + + + Descriptor for a field or extension within a message in a .proto file. + + + + + Get the field's containing message type, or null if it is a field defined at the top level of a file as an extension. + + + + + Returns the oneof containing this field, or null if it is not part of a oneof. + + + + + Returns the oneof containing this field if it's a "real" oneof, or null if either this + field is not part of a oneof, or the oneof is synthetic. + + + + + The effective JSON name for this field. This is usually the lower-camel-cased form of the field name, + but can be overridden using the json_name option in the .proto file. + + + + + The name of the property in the ContainingType.ClrType class. + + + + + Indicates whether this field supports presence, either implicitly (e.g. due to it being a message + type field) or explicitly via Has/Clear members. If this returns true, it is safe to call + and + on this field's accessor with a suitable message. + + + + + Returns a clone of the underlying describing this field. + Note that a copy is taken every time this method is called, so clients using it frequently + (and not modifying it) may want to cache the returned value. + + A protobuf representation of this field descriptor. + + + + An extension identifier for this field, or null if this field isn't an extension. + + + + + Returns the features from the direct parent: + - The file for top-level extensions + - The oneof for one-of fields + - Otherwise the message + + + + + Returns a feature set with inferred features for the given field, or null if no features + need to be inferred. + + + + + The brief name of the descriptor's target. + + + + + Returns the accessor for this field. + + + + While a describes the field, it does not provide + any way of obtaining or changing the value of the field within a specific message; + that is the responsibility of the accessor. + + + In descriptors for generated code, the value returned by this property will be non-null for all + regular fields. However, if a message containing a map field is introspected, the list of nested messages will include + an auto-generated nested key/value pair message for the field. This is not represented in any + generated type, and the value of the map field itself is represented by a dictionary in the + reflection API. There are never instances of those "hidden" messages, so no accessor is provided + and this property will return null. + + + In dynamically loaded descriptors, the value returned by this property will current be null; + if and when dynamic messages are supported, it will return a suitable accessor to work with + them. + + + + + + Maps a field type as included in the .proto file to a FieldType. + + + + + Returns true if this field is a repeated field; false otherwise. + + + + + Returns true if this field is a required field; false otherwise. + + + + + Returns true if this field is a map field; false otherwise. + + + + + Returns true if this field is a packed, repeated field; false otherwise. + + + + + Returns true if this field extends another message type; false otherwise. + + + + + Returns the type of the field. + + + + + Returns the field number declared in the proto file. + + + + + Compares this descriptor with another one, ordering in "canonical" order + which simply means ascending order by field number. + must be a field of the same type, i.e. the of + both fields must be the same. + + + + + For enum fields, returns the field's type. + + + + + For embedded message and group fields, returns the field's type. + + + + + For extension fields, returns the extended type + + + + + The (possibly empty) set of custom options for this field. + + + + + The FieldOptions, defined in descriptor.proto. + If the options message is not present (i.e. there are no options), null is returned. + Custom options can be retrieved as extensions of the returned message. + NOTE: A defensive copy is created each time this property is retrieved. + + + + + Gets a single value field option for this descriptor + + + + + Gets a repeated value field option for this descriptor + + + + + Look up and cross-link all field types etc. + + + + + Enumeration of all the possible field types. + + + + + The double field type. + + + + + The float field type. + + + + + The int64 field type. + + + + + The uint64 field type. + + + + + The int32 field type. + + + + + The fixed64 field type. + + + + + The fixed32 field type. + + + + + The bool field type. + + + + + The string field type. + + + + + The field type used for groups. + + + + + The field type used for message fields. + + + + + The bytes field type. + + + + + The uint32 field type. + + + + + The sfixed32 field type. + + + + + The sfixed64 field type. + + + + + The sint32 field type. + + + + + The sint64 field type. + + + + + The field type used for enum fields. + + + + + The syntax of a .proto file + + + + + Proto2 syntax + + + + + Proto3 syntax + + + + + Editions syntax + + + + + An unknown declared syntax + + + + + Describes a .proto file, including everything defined within. + IDescriptor is implemented such that the File property returns this descriptor, + and the FullName is the same as the Name. + + + + + Computes the full name of a descriptor within this file, with an optional parent message. + + + + + Extracts public dependencies from direct dependencies. This is a static method despite its + first parameter, as the value we're in the middle of constructing is only used for exceptions. + + + + + The descriptor in its protocol message representation. + + + + + Returns a clone of the underlying describing this file. + Note that a copy is taken every time this method is called, so clients using it frequently + (and not modifying it) may want to cache the returned value. + + A protobuf representation of this file descriptor. + + + + The feature set for this file, including inherited features. + + + + + Returns the edition of the file descriptor. + + + + + The syntax of the file. + + + + + The file name. + + + + + The package as declared in the .proto file. This may or may not + be equivalent to the .NET namespace of the generated classes. + + + + + Unmodifiable list of top-level message types declared in this file. + + + + + Unmodifiable list of top-level enum types declared in this file. + + + + + Unmodifiable list of top-level services declared in this file. + + + + + Unmodifiable list of top-level extensions declared in this file. + Note that some extensions may be incomplete (FieldDescriptor.Extension may be null) + if this descriptor was generated using a version of protoc that did not fully + support extensions in C#. + + + + + Unmodifiable list of this file's dependencies (imports). + + + + + Unmodifiable list of this file's public dependencies (public imports). + + + + + The original serialized binary form of this descriptor. + + + + + Implementation of IDescriptor.FullName - just returns the same as Name. + + + + + Implementation of IDescriptor.File - just returns this descriptor. + + + + + Pool containing symbol descriptors. + + + + + Finds a type (message, enum, service or extension) in the file by name. Does not find nested types. + + The unqualified type name to look for. + The type of descriptor to look for + The type's descriptor, or null if not found. + + + + Builds a FileDescriptor from its protocol buffer representation. + + The original serialized descriptor data. + We have only limited proto2 support, so serializing FileDescriptorProto + would not necessarily give us this. + The protocol message form of the FileDescriptor. + FileDescriptors corresponding to all of the + file's dependencies, in the exact order listed in the .proto file. May be null, + in which case it is treated as an empty array. + Whether unknown dependencies are ignored (true) or cause an exception to be thrown (false). + Details about generated code, for the purposes of reflection. + If is not + a valid descriptor. This can occur for a number of reasons, such as a field + having an undefined type or because two messages were defined with the same name. + + + + Creates a descriptor for generated code. + + + This method is only designed to be used by the results of generating code with protoc, + which creates the appropriate dependencies etc. It has to be public because the generated + code is "external", but should not be called directly by end users. + + + + + Converts the given descriptor binary data into FileDescriptor objects. + Note: reflection using the returned FileDescriptors is not currently supported. + + The binary file descriptor proto data. Must not be null, and any + dependencies must come before the descriptor which depends on them. (If A depends on B, and B + depends on C, then the descriptors must be presented in the order C, B, A.) This is compatible + with the order in which protoc provides descriptors to plugins. + The extension registry to use when parsing, or null if no extensions are required. + The file descriptors corresponding to . + + + + Converts the given descriptor binary data into FileDescriptor objects. + Note: reflection using the returned FileDescriptors is not currently supported. + + The binary file descriptor proto data. Must not be null, and any + dependencies must come before the descriptor which depends on them. (If A depends on B, and B + depends on C, then the descriptors must be presented in the order C, B, A.) This is compatible + with the order in which protoc provides descriptors to plugins. + The file descriptors corresponding to . + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Returns the file descriptor for descriptor.proto. + + + This is used for protos which take a direct dependency on descriptor.proto, typically for + annotations. While descriptor.proto is a proto2 file, it is built into the Google.Protobuf + runtime for reflection purposes. The messages are internal to the runtime as they would require + proto2 semantics for full support, but the file descriptor is available via this property. The + C# codegen in protoc automatically uses this property when it detects a dependency on descriptor.proto. + + + The file descriptor for descriptor.proto. + + + + + The (possibly empty) set of custom options for this file. + + + + + The FileOptions, defined in descriptor.proto. + If the options message is not present (i.e. there are no options), null is returned. + Custom options can be retrieved as extensions of the returned message. + NOTE: A defensive copy is created each time this property is retrieved. + + + + + Gets a single value file option for this descriptor + + + + + Gets a repeated value file option for this descriptor + + + + + Performs initialization for the given generic type argument. + + + This method is present for the sake of AOT compilers. It allows code (whether handwritten or generated) + to make calls into the reflection machinery of this library to express an intention to use that type + reflectively (e.g. for JSON parsing and formatting). The call itself does almost nothing, but AOT compilers + attempting to determine which generic type arguments need to be handled will spot the code path and act + accordingly. + + The type to force initialization for. + + + + Extra information provided by generated code when initializing a message or file descriptor. + These are constructed as required, and are not long-lived. Hand-written code should + never need to use this type. + + + + + Irrelevant for file descriptors; the CLR type for the message for message descriptors. + + + + + Irrelevant for file descriptors; the parser for message descriptors. + + + + + Irrelevant for file descriptors; the CLR property names (in message descriptor field order) + for fields in the message for message descriptors. + + + + + The extensions defined within this file/message descriptor + + + + + Irrelevant for file descriptors; the CLR property "base" names (in message descriptor oneof order) + for oneofs in the message for message descriptors. It is expected that for a oneof name of "Foo", + there will be a "FooCase" property and a "ClearFoo" method. + + + + + The reflection information for types within this file/message descriptor. Elements may be null + if there is no corresponding generated type, e.g. for map entry types. + + + + + The CLR types for enums within this file/message descriptor. + + + + + Creates a GeneratedClrTypeInfo for a message descriptor, with nested types, nested enums, the CLR type, property names and oneof names. + Each array parameter may be null, to indicate a lack of values. + The parameter order is designed to make it feasible to format the generated code readably. + + + + + Creates a GeneratedClrTypeInfo for a message descriptor, with nested types, nested enums, the CLR type, property names and oneof names. + Each array parameter may be null, to indicate a lack of values. + The parameter order is designed to make it feasible to format the generated code readably. + + + + + Creates a GeneratedClrTypeInfo for a file descriptor, with only types, enums, and extensions. + + + + + Creates a GeneratedClrTypeInfo for a file descriptor, with only types and enums. + + + + + Interface implemented by all descriptor types. + + + + + Returns the name of the entity (message, field etc) being described. + + + + + Returns the fully-qualified name of the entity being described. + + + + + Returns the descriptor for the .proto file that this entity is part of. + + + + + Allows fields to be reflectively accessed. + + + + + Returns the descriptor associated with this field. + + + + + Clears the field in the specified message. (For repeated fields, + this clears the list.) + + + + + Fetches the field value. For repeated values, this will be an + implementation. For map values, this will be an + implementation. + + + + + Indicates whether the field in the specified message is set. + For proto3 fields that aren't explicitly optional, this throws an + + + + + Mutator for single "simple" fields only. + + + Repeated fields are mutated by fetching the value and manipulating it as a list. + Map fields are mutated by fetching the value and manipulating it as a dictionary. + + The field is not a "simple" field. + + + + Accessor for map fields. + + + + + Describes a message type. + + + + + The brief name of the descriptor's target. + + + + + Returns a clone of the underlying describing this message. + Note that a copy is taken every time this method is called, so clients using it frequently + (and not modifying it) may want to cache the returned value. + + A protobuf representation of this message descriptor. + + + + The CLR type used to represent message instances from this descriptor. + + + + The value returned by this property will be non-null for all regular fields. However, + if a message containing a map field is introspected, the list of nested messages will include + an auto-generated nested key/value pair message for the field. This is not represented in any + generated type, so this property will return null in such cases. + + + For wrapper types ( and the like), the type returned here + will be the generated message type, not the native type used by reflection for fields of those types. Code + using reflection should call to determine whether a message descriptor represents + a wrapper type, and handle the result appropriately. + + + + + + A parser for this message type. + + + + As is not generic, this cannot be statically + typed to the relevant type, but it should produce objects of a type compatible with . + + + The value returned by this property will be non-null for all regular fields. However, + if a message containing a map field is introspected, the list of nested messages will include + an auto-generated nested key/value pair message for the field. No message parser object is created for + such messages, so this property will return null in such cases. + + + For wrapper types ( and the like), the parser returned here + will be the generated message type, not the native type used by reflection for fields of those types. Code + using reflection should call to determine whether a message descriptor represents + a wrapper type, and handle the result appropriately. + + + + + + Returns whether this message is one of the "well known types" which may have runtime/protoc support. + + + + + Returns whether this message is one of the "wrapper types" used for fields which represent primitive values + with the addition of presence. + + + + + Returns whether this message was synthetically-created to store key/value pairs in a + map field. + + + + + If this is a nested type, get the outer descriptor, otherwise null. + + + + + A collection of fields, which can be retrieved by name or field number. + + + + + An unmodifiable list of extensions defined in this message's scope. + Note that some extensions may be incomplete (FieldDescriptor.Extension may be null) + if they are declared in a file generated using a version of protoc that did not fully + support extensions in C#. + + + + + An unmodifiable list of this message type's nested types. + + + + + An unmodifiable list of this message type's enum types. + + + + + An unmodifiable list of the "oneof" field collections in this message type. + All "real" oneofs (where returns false) + come before synthetic ones. + + + + + The number of real "oneof" descriptors in this message type. Every element in + with an index less than this will have a property value + of false; every element with an index greater than or equal to this will have a + property value of true. + + + + + Finds a field by field name. + + The unqualified name of the field (e.g. "foo"). + The field's descriptor, or null if not found. + + + + Finds a field by field number. + + The field number within this message type. + The field's descriptor, or null if not found. + + + + Finds a nested descriptor by name. The is valid for fields, nested + message types, oneofs and enums. + + The unqualified name of the descriptor, e.g. "Foo" + The descriptor, or null if not found. + + + + The (possibly empty) set of custom options for this message. + + + + + The MessageOptions, defined in descriptor.proto. + If the options message is not present (i.e. there are no options), null is returned. + Custom options can be retrieved as extensions of the returned message. + NOTE: A defensive copy is created each time this property is retrieved. + + + + + Gets a single value message option for this descriptor + + + + + Gets a repeated value message option for this descriptor + + + + + Looks up and cross-links all fields and nested types. + + + + + A collection to simplify retrieving the field accessor for a particular field. + + + + + Returns the fields in the message as an immutable list, in the order in which they + are declared in the source .proto file. + + + + + Returns the fields in the message as an immutable list, in ascending field number + order. Field numbers need not be contiguous, so there is no direct mapping from the + index in the list to the field number; to retrieve a field by field number, it is better + to use the indexer. + + + + + Returns a read-only dictionary mapping the field names in this message as they're available + in the JSON representation to the field descriptors. For example, a field foo_bar + in the message would result two entries, one with a key fooBar and one with a key + foo_bar, both referring to the same field. + + + + + Retrieves the descriptor for the field with the given number. + + Number of the field to retrieve the descriptor for + The accessor for the given field + The message descriptor does not contain a field + with the given number + + + + Retrieves the descriptor for the field with the given name. + + Name of the field to retrieve the descriptor for + The descriptor for the given field + The message descriptor does not contain a field + with the given name + + + + Describes a single method in a service. + + + + + The service this method belongs to. + + + + + The method's input type. + + + + + The method's input type. + + + + + Indicates if client streams multiple requests. + + + + + Indicates if server streams multiple responses. + + + + + The (possibly empty) set of custom options for this method. + + + + + The MethodOptions, defined in descriptor.proto. + If the options message is not present (i.e. there are no options), null is returned. + Custom options can be retrieved as extensions of the returned message. + NOTE: A defensive copy is created each time this property is retrieved. + + + + + Gets a single value method option for this descriptor + + + + + Gets a repeated value method option for this descriptor + + + + + Returns a clone of the underlying describing this method. + Note that a copy is taken every time this method is called, so clients using it frequently + (and not modifying it) may want to cache the returned value. + + A protobuf representation of this method descriptor. + + + + The brief name of the descriptor's target. + + + + + Reflection access for a oneof, allowing clear and "get case" actions. + + + + + Gets the descriptor for this oneof. + + + The descriptor of the oneof. + + + + + Clears the oneof in the specified message. + + + + + Indicates which field in the oneof is set for specified message + + + + + Describes a "oneof" field collection in a message type: a set of + fields of which at most one can be set in any particular message. + + + + + The brief name of the descriptor's target. + + + + + Returns a clone of the underlying describing this oneof. + Note that a copy is taken every time this method is called, so clients using it frequently + (and not modifying it) may want to cache the returned value. + + A protobuf representation of this oneof descriptor. + + + + Gets the message type containing this oneof. + + + The message type containing this oneof. + + + + + Gets the fields within this oneof, in declaration order. + + + The fields within this oneof, in declaration order. + + + + + Returns true if this oneof is a synthetic oneof containing a proto3 optional field; + false otherwise. + + + + + Gets an accessor for reflective access to the values associated with the oneof + in a particular message. + + + + In descriptors for generated code, the value returned by this property will always be non-null. + + + In dynamically loaded descriptors, the value returned by this property will current be null; + if and when dynamic messages are supported, it will return a suitable accessor to work with + them. + + + + The accessor used for reflective access. + + + + + The (possibly empty) set of custom options for this oneof. + + + + + The OneofOptions, defined in descriptor.proto. + If the options message is not present (i.e. there are no options), null is returned. + Custom options can be retrieved as extensions of the returned message. + NOTE: A defensive copy is created each time this property is retrieved. + + + + + Gets a single value oneof option for this descriptor + + + + + Gets a repeated value oneof option for this descriptor + + + + + Specifies the original name (in the .proto file) of a named element, + such as an enum value. + + + + + The name of the element in the .proto file. + + + + + If the name is preferred in the .proto file. + + + + + Constructs a new attribute instance for the given name. + + The name of the element in the .proto file. + + + + Represents a package in the symbol table. We use PackageDescriptors + just as placeholders so that someone cannot define, say, a message type + that has the same name as an existing package. + + + + + The methods in this class are somewhat evil, and should not be tampered with lightly. + Basically they allow the creation of relatively weakly typed delegates from MethodInfos + which are more strongly typed. They do this by creating an appropriate strongly typed + delegate from the MethodInfo, and then calling that within an anonymous method. + Mind-bending stuff (at least to your humble narrator) but the resulting delegates are + very fast compared with calling Invoke later on. + + + + + Empty Type[] used when calling GetProperty to force property instead of indexer fetching. + + + + + Creates a delegate which will cast the argument to the type that declares the method, + call the method on it, then convert the result to object. + + The method to create a delegate for, which must be declared in an + IMessage implementation. + + + + Creates a delegate which will cast the argument to the type that declares the method, + call the method on it, then convert the result to the specified type. The method is expected + to actually return an enum (because of where we're calling it - for oneof cases). Sometimes + that means we need some extra work to perform conversions. + + The method to create a delegate for, which must be declared in an + IMessage implementation. + + + + Creates a delegate which will execute the given method after casting the first argument to + the type that declares the method, and the second argument to the first parameter type of + the method. + + The method to create a delegate for, which must be declared in an + IMessage implementation. + + + + Creates a delegate which will execute the given method after casting the first argument to + type that declares the method. + + The method to create a delegate for, which must be declared in an + IMessage implementation. + + + + Creates a delegate which will execute the given method after casting the first argument to + the type that declares the method, and the second argument to the first parameter type of + the method. + + + + + Creates a reflection helper for the given type arguments. Currently these are created on + demand rather than cached; this will be "busy" when initially loading a message's + descriptor, but after that they can be garbage collected. We could cache them by type if + that proves to be important, but creating an object is pretty cheap. + + + + + Accessor for repeated fields. + + + + + Describes a service type. + + + + + The brief name of the descriptor's target. + + + + + Returns a clone of the underlying describing this service. + Note that a copy is taken every time this method is called, so clients using it frequently + (and not modifying it) may want to cache the returned value. + + A protobuf representation of this service descriptor. + + + + An unmodifiable list of methods in this service. + + + + + Finds a method by name. + + The unqualified name of the method (e.g. "Foo"). + The method's descriptor, or null if not found. + + + + The (possibly empty) set of custom options for this service. + + + + + The ServiceOptions, defined in descriptor.proto. + If the options message is not present (i.e. there are no options), null is returned. + Custom options can be retrieved as extensions of the returned message. + NOTE: A defensive copy is created each time this property is retrieved. + + + + + Gets a single value service option for this descriptor + + + + + Gets a repeated value service option for this descriptor + + + + + Accessor for single fields. + + + + + An immutable registry of types which can be looked up by their full name. + + + + + An empty type registry, containing no types. + + + + + Attempts to find a message descriptor by its full name. + + The full name of the message, which is the dot-separated + combination of package, containing messages and message name + The message descriptor corresponding to or null + if there is no such message descriptor. + + + + Creates a type registry from the specified set of file descriptors. + + + This is a convenience overload for + to allow calls such as TypeRegistry.FromFiles(descriptor1, descriptor2). + + The set of files to include in the registry. Must not contain null values. + A type registry for the given files. + + + + Creates a type registry from the specified set of file descriptors. + + + All message types within all the specified files are added to the registry, and + the dependencies of the specified files are also added, recursively. + + The set of files to include in the registry. Must not contain null values. + A type registry for the given files. + + + + Creates a type registry from the file descriptor parents of the specified set of message descriptors. + + + This is a convenience overload for + to allow calls such as TypeRegistry.FromFiles(descriptor1, descriptor2). + + The set of message descriptors to use to identify file descriptors to include in the registry. + Must not contain null values. + A type registry for the given files. + + + + Creates a type registry from the file descriptor parents of the specified set of message descriptors. + + + The specified message descriptors are only used to identify their file descriptors; the returned registry + contains all the types within the file descriptors which contain the specified message descriptors (and + the dependencies of those files), not just the specified messages. + + The set of message descriptors to use to identify file descriptors to include in the registry. + Must not contain null values. + A type registry for the given files. + + + + Builder class which isn't exposed, but acts as a convenient alternative to passing round two dictionaries in recursive calls. + + + + + Abstraction for reading from a stream / read only sequence. + Parsing from the buffer is a loop of reading from current buffer / refreshing the buffer once done. + + + + + Initialize an instance with a coded input stream. + This approach is faster than using a constructor because the instance to initialize is passed by reference + and we can write directly into it without copying. + + + + + Initialize an instance with a read only sequence. + This approach is faster than using a constructor because the instance to initialize is passed by reference + and we can write directly into it without copying. + + + + + Sets currentLimit to (current position) + byteLimit. This is called + when descending into a length-delimited embedded message. The previous + limit is returned. + + The old limit. + + + + Discards the current limit, returning the previous limit. + + + + + Returns whether or not all the data before the limit has been read. + + + + + + Returns true if the stream has reached the end of the input. This is the + case if either the end of the underlying input source has been reached or + the stream has reached a limit created using PushLimit. + + + + + Represents a single field in an UnknownFieldSet. + + An UnknownField consists of four lists of values. The lists correspond + to the four "wire types" used in the protocol buffer binary format. + Normally, only one of the four lists will contain any values, since it + is impossible to define a valid message type that declares two different + types for the same field number. However, the code is designed to allow + for the case where the same unknown field number is encountered using + multiple different wire types. + + + + + + Creates a new UnknownField. + + + + + Checks if two unknown field are equal. + + + + + Get the hash code of the unknown field. + + + + + Serializes the field, including the field number, and writes it to + + + The unknown field number. + The write context to write to. + + + + Computes the number of bytes required to encode this field, including field + number. + + + + + Merge the values in into this field. For each list + of values, 's values are append to the ones in this + field. + + + + + Returns a new list containing all of the given specified values from + both the and lists. + If is null and is null or empty, + null is returned. Otherwise, either a new list is created (if + is null) or the elements of are added to . + + + + + Adds a varint value. + + + + + Adds a fixed32 value. + + + + + Adds a fixed64 value. + + + + + Adds a length-delimited value. + + + + + Adds to the , creating + a new list if is null. The list is returned - either + the original reference or the new list. + + + + + Used to keep track of fields which were seen when parsing a protocol message + but whose field numbers or types are unrecognized. This most frequently + occurs when new fields are added to a message type and then messages containing + those fields are read by old software that was built before the new types were + added. + + Most users will never need to use this class directly. + + + + + Creates a new UnknownFieldSet. + + + + + Checks whether or not the given field number is present in the set. + + + + + Serializes the set and writes it to . + + + + + Serializes the set and writes it to . + + + + + Gets the number of bytes required to encode this set. + + + + + Checks if two unknown field sets are equal. + + + + + Gets the unknown field set's hash code. + + + + + Adds a field to the set. If a field with the same number already exists, it + is replaced. + + + + + Parse a single field from and merge it + into this set. + + The parse context from which to read the field + false if the tag is an "end group" tag, true otherwise + + + + Create a new UnknownFieldSet if unknownFields is null. + Parse a single field from and merge it + into unknownFields. If is configured to discard unknown fields, + will be returned as-is and the field will be skipped. + + The UnknownFieldSet which need to be merged + The coded input stream containing the field + The merged UnknownFieldSet + + + + Create a new UnknownFieldSet if unknownFields is null. + Parse a single field from and merge it + into unknownFields. If is configured to discard unknown fields, + will be returned as-is and the field will be skipped. + + The UnknownFieldSet which need to be merged + The parse context from which to read the field + The merged UnknownFieldSet + + + + Merges the fields from into this set. + If a field number exists in both sets, the values in + will be appended to the values in this set. + + + + + Created a new UnknownFieldSet to if + needed and merges the fields from into the first set. + If a field number exists in both sets, the values in + will be appended to the values in this set. + + + + + Adds a field to the unknown field set. If a field with the same + number already exists, the two are merged. + + + + + Clone an unknown field set from . + + + + + Provides a number of unsafe byte operations to be used by advanced applications with high performance + requirements. These methods are referred to as "unsafe" due to the fact that they potentially expose + the backing buffer of a to the application. + + + + The methods in this class should only be called if it is guaranteed that the buffer backing the + will never change! Mutation of a can lead to unexpected + and undesirable consequences in your application, and will likely be difficult to debug. Proceed with caution! + + + This can have a number of significant side affects that have spooky-action-at-a-distance-like behavior. In + particular, if the bytes value changes out from under a Protocol Buffer: + + + + serialization may throw + + + serialization may succeed but the wrong bytes may be written out + + + objects that are normally immutable (such as ByteString) are no longer immutable + + + hashCode may be incorrect + + + + + + + Constructs a new from the given bytes. The bytes are not copied, + and must not be modified while the is in use. + This API is experimental and subject to change. + + + + Holder for reflection information generated from google/protobuf/any.proto + + + File descriptor for google/protobuf/any.proto + + + + `Any` contains an arbitrary serialized protocol buffer message along with a + URL that describes the type of the serialized message. + + Protobuf library provides support to pack/unpack Any values in the form + of utility functions or additional generated methods of the Any type. + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by default use + 'type.googleapis.com/full.type.name' as the type URL and the unpack + methods only use the fully qualified type name after the last '/' + in the type URL, for example "foo.bar.com/x/y.z" will yield type + name "y.z". + + JSON + ==== + The JSON representation of an `Any` value uses the regular + representation of the deserialized, embedded message, with an + additional field `@type` which contains the type URL. Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": <string>, + "lastName": <string> + } + + If the embedded message type is well-known and has a custom JSON + representation, that representation will be embedded adding a field + `value` which holds the custom JSON in addition to the `@type` + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + + + + Field number for the "type_url" field. + + + + A URL/resource name that uniquely identifies the type of the serialized + protocol buffer message. This string must contain at least + one "/" character. The last segment of the URL's path must represent + the fully qualified name of the type (as in + `path/google.protobuf.Duration`). The name should be in a canonical form + (e.g., leading "." is not accepted). + + In practice, teams usually precompile into the binary all types that they + expect it to use in the context of Any. However, for URLs which use the + scheme `http`, `https`, or no scheme, one can optionally set up a type + server that maps type URLs to message definitions as follows: + + * If no scheme is provided, `https` is assumed. + * An HTTP GET on the URL must yield a [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in the official + protobuf release, and it is not used for type URLs beginning with + type.googleapis.com. As of May 2023, there are no widely used type server + implementations and no plans to implement one. + + Schemes other than `http`, `https` (or the empty scheme) might be + used with implementation specific semantics. + + + + Field number for the "value" field. + + + + Must be a valid serialized protocol buffer of the above specified type. + + + + + Retrieves the type name for a type URL, matching the + of the packed message type. + + + + This is always just the last part of the URL, after the final slash. No validation of + anything before the trailing slash is performed. If the type URL does not include a slash, + an empty string is returned rather than an exception being thrown; this won't match any types, + and the calling code is probably in a better position to give a meaningful error. + + + There is no handling of fragments or queries at the moment. + + + The URL to extract the type name from + The type name + + + + Returns a bool indictating whether this Any message is of the target message type + + The descriptor of the message type + true if the type name matches the descriptor's full name or false otherwise + + + + Unpacks the content of this Any message into the target message type, + which must match the type URL within this Any message. + + The type of message to unpack the content into. + The unpacked message. + The target message type doesn't match the type URL in this message + + + + Attempts to unpack the content of this Any message into the target message type, + if it matches the type URL within this Any message. + + The type of message to attempt to unpack the content into. + true if the message was successfully unpacked; false if the type name didn't match + + + + Attempts to unpack the content of this Any message into one of the message types + in the given type registry, based on the type URL. + + The type registry to consult for messages. + The unpacked message, or null if no matching message was found. + + + + Packs the specified message into an Any message using a type URL prefix of "type.googleapis.com". + + The message to pack. + An Any message with the content and type URL of . + + + + Packs the specified message into an Any message using the specified type URL prefix. + + The message to pack. + The prefix for the type URL. + An Any message with the content and type URL of . + + + Holder for reflection information generated from google/protobuf/api.proto + + + File descriptor for google/protobuf/api.proto + + + + Api is a light-weight descriptor for an API Interface. + + Interfaces are also described as "protocol buffer services" in some contexts, + such as by the "service" keyword in a .proto file, but they are different + from API Services, which represent a concrete implementation of an interface + as opposed to simply a description of methods and bindings. They are also + sometimes simply referred to as "APIs" in other contexts, such as the name of + this message itself. See https://cloud.google.com/apis/design/glossary for + detailed terminology. + + + + Field number for the "name" field. + + + + The fully qualified name of this interface, including package name + followed by the interface's simple name. + + + + Field number for the "methods" field. + + + + The methods of this interface, in unspecified order. + + + + Field number for the "options" field. + + + + Any metadata attached to the interface. + + + + Field number for the "version" field. + + + + A version string for this interface. If specified, must have the form + `major-version.minor-version`, as in `1.10`. If the minor version is + omitted, it defaults to zero. If the entire version field is empty, the + major version is derived from the package name, as outlined below. If the + field is not empty, the version in the package name will be verified to be + consistent with what is provided here. + + The versioning schema uses [semantic + versioning](http://semver.org) where the major version number + indicates a breaking change and the minor version an additive, + non-breaking change. Both version numbers are signals to users + what to expect from different versions, and should be carefully + chosen based on the product plan. + + The major version is also reflected in the package name of the + interface, which must end in `v<major-version>`, as in + `google.feature.v1`. For major versions 0 and 1, the suffix can + be omitted. Zero major versions must only be used for + experimental, non-GA interfaces. + + + + Field number for the "source_context" field. + + + + Source context for the protocol buffer service represented by this + message. + + + + Field number for the "mixins" field. + + + + Included interfaces. See [Mixin][]. + + + + Field number for the "syntax" field. + + + + The source syntax of the service. + + + + + Method represents a method of an API interface. + + + + Field number for the "name" field. + + + + The simple name of this method. + + + + Field number for the "request_type_url" field. + + + + A URL of the input message type. + + + + Field number for the "request_streaming" field. + + + + If true, the request is streamed. + + + + Field number for the "response_type_url" field. + + + + The URL of the output message type. + + + + Field number for the "response_streaming" field. + + + + If true, the response is streamed. + + + + Field number for the "options" field. + + + + Any metadata attached to the method. + + + + Field number for the "syntax" field. + + + + The source syntax of this method. + + + + + Declares an API Interface to be included in this interface. The including + interface must redeclare all the methods from the included interface, but + documentation and options are inherited as follows: + + - If after comment and whitespace stripping, the documentation + string of the redeclared method is empty, it will be inherited + from the original method. + + - Each annotation belonging to the service config (http, + visibility) which is not set in the redeclared method will be + inherited. + + - If an http annotation is inherited, the path pattern will be + modified as follows. Any version prefix will be replaced by the + version of the including interface plus the [root][] path if + specified. + + Example of a simple mixin: + + package google.acl.v1; + service AccessControl { + // Get the underlying ACL object. + rpc GetAcl(GetAclRequest) returns (Acl) { + option (google.api.http).get = "/v1/{resource=**}:getAcl"; + } + } + + package google.storage.v2; + service Storage { + rpc GetAcl(GetAclRequest) returns (Acl); + + // Get a data record. + rpc GetData(GetDataRequest) returns (Data) { + option (google.api.http).get = "/v2/{resource=**}"; + } + } + + Example of a mixin configuration: + + apis: + - name: google.storage.v2.Storage + mixins: + - name: google.acl.v1.AccessControl + + The mixin construct implies that all methods in `AccessControl` are + also declared with same name and request/response types in + `Storage`. A documentation generator or annotation processor will + see the effective `Storage.GetAcl` method after inherting + documentation and annotations as follows: + + service Storage { + // Get the underlying ACL object. + rpc GetAcl(GetAclRequest) returns (Acl) { + option (google.api.http).get = "/v2/{resource=**}:getAcl"; + } + ... + } + + Note how the version in the path pattern changed from `v1` to `v2`. + + If the `root` field in the mixin is specified, it should be a + relative path under which inherited HTTP paths are placed. Example: + + apis: + - name: google.storage.v2.Storage + mixins: + - name: google.acl.v1.AccessControl + root: acls + + This implies the following inherited HTTP annotation: + + service Storage { + // Get the underlying ACL object. + rpc GetAcl(GetAclRequest) returns (Acl) { + option (google.api.http).get = "/v2/acls/{resource=**}:getAcl"; + } + ... + } + + + + Field number for the "name" field. + + + + The fully qualified name of the interface which is included. + + + + Field number for the "root" field. + + + + If non-empty specifies a path under which inherited HTTP paths + are rooted. + + + + Holder for reflection information generated from google/protobuf/duration.proto + + + File descriptor for google/protobuf/duration.proto + + + + A Duration represents a signed, fixed-length span of time represented + as a count of seconds and fractions of seconds at nanosecond + resolution. It is independent of any calendar and concepts like "day" + or "month". It is related to Timestamp in that the difference between + two Timestamp values is a Duration and it can be added or subtracted + from a Timestamp. Range is approximately +-10,000 years. + + # Examples + + Example 1: Compute Duration from two Timestamps in pseudo code. + + Timestamp start = ...; + Timestamp end = ...; + Duration duration = ...; + + duration.seconds = end.seconds - start.seconds; + duration.nanos = end.nanos - start.nanos; + + if (duration.seconds < 0 && duration.nanos > 0) { + duration.seconds += 1; + duration.nanos -= 1000000000; + } else if (duration.seconds > 0 && duration.nanos < 0) { + duration.seconds -= 1; + duration.nanos += 1000000000; + } + + Example 2: Compute Timestamp from Timestamp + Duration in pseudo code. + + Timestamp start = ...; + Duration duration = ...; + Timestamp end = ...; + + end.seconds = start.seconds + duration.seconds; + end.nanos = start.nanos + duration.nanos; + + if (end.nanos < 0) { + end.seconds -= 1; + end.nanos += 1000000000; + } else if (end.nanos >= 1000000000) { + end.seconds += 1; + end.nanos -= 1000000000; + } + + Example 3: Compute Duration from datetime.timedelta in Python. + + td = datetime.timedelta(days=3, minutes=10) + duration = Duration() + duration.FromTimedelta(td) + + # JSON Mapping + + In JSON format, the Duration type is encoded as a string rather than an + object, where the string ends in the suffix "s" (indicating seconds) and + is preceded by the number of seconds, with nanoseconds expressed as + fractional seconds. For example, 3 seconds with 0 nanoseconds should be + encoded in JSON format as "3s", while 3 seconds and 1 nanosecond should + be expressed in JSON format as "3.000000001s", and 3 seconds and 1 + microsecond should be expressed in JSON format as "3.000001s". + + + + Field number for the "seconds" field. + + + + Signed seconds of the span of time. Must be from -315,576,000,000 + to +315,576,000,000 inclusive. Note: these bounds are computed from: + 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years + + + + Field number for the "nanos" field. + + + + Signed fractions of a second at nanosecond resolution of the span + of time. Durations less than one second are represented with a 0 + `seconds` field and a positive or negative `nanos` field. For durations + of one second or more, a non-zero value for the `nanos` field must be + of the same sign as the `seconds` field. Must be from -999,999,999 + to +999,999,999 inclusive. + + + + + The number of nanoseconds in a second. + + + + + The number of nanoseconds in a BCL tick (as used by and ). + + + + + The maximum permitted number of seconds. + + + + + The minimum permitted number of seconds. + + + + + Converts this to a . + + If the duration is not a precise number of ticks, it is truncated towards 0. + The value of this duration, as a TimeSpan. + This value isn't a valid normalized duration, as + described in the documentation. + + + + Converts the given to a . + + The TimeSpan to convert. + The value of the given TimeSpan, as a Duration. + + + + Returns the result of negating the duration. For example, the negation of 5 minutes is -5 minutes. + + The duration to negate. Must not be null. + The negated value of this duration. + + + + Adds the two specified values together. + + The first value to add. Must not be null. + The second value to add. Must not be null. + + + + + Subtracts one from another. + + The duration to subtract from. Must not be null. + The duration to subtract. Must not be null. + The difference between the two specified durations. + + + + Creates a duration with the normalized values from the given number of seconds and + nanoseconds, conforming with the description in the proto file. + + + + + Converts a duration specified in seconds/nanoseconds to a string. + + + If the value is a normalized duration in the range described in duration.proto, + is ignored. Otherwise, if the parameter is true, + a JSON object with a warning is returned; if it is false, an is thrown. + + Seconds portion of the duration. + Nanoseconds portion of the duration. + Determines the handling of non-normalized values + The represented duration is invalid, and is false. + + + + Returns a string representation of this for diagnostic purposes. + + + Normally the returned value will be a JSON string value (including leading and trailing quotes) but + when the value is non-normalized or out of range, a JSON object representation will be returned + instead, including a warning. This is to avoid exceptions being thrown when trying to + diagnose problems - the regular JSON formatter will still throw an exception for non-normalized + values. + + A string representation of this value. + + + + Appends a number of nanoseconds to a StringBuilder. Either 0 digits are added (in which + case no "." is appended), or 3 6 or 9 digits. This is internal for use in Timestamp as well + as Duration. + + + + + Given another duration, returns 0 if the durations are equivalent, -1 if this duration is shorter than the other, and 1 otherwise. + + + This method expects that both durations are normalized; that is, that the values of + and are within the documented bounds. + If either value is not normalized, the results of this method are unspecified. + + The duration to compare with this object. + An integer indicating whether this duration is shorter or longer than . + + + Holder for reflection information generated from google/protobuf/empty.proto + + + File descriptor for google/protobuf/empty.proto + + + + A generic empty message that you can re-use to avoid defining duplicated + empty messages in your APIs. A typical example is to use it as the request + or the response type of an API method. For instance: + + service Foo { + rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); + } + + + + Holder for reflection information generated from google/protobuf/field_mask.proto + + + File descriptor for google/protobuf/field_mask.proto + + + + `FieldMask` represents a set of symbolic field paths, for example: + + paths: "f.a" + paths: "f.b.d" + + Here `f` represents a field in some root message, `a` and `b` + fields in the message found in `f`, and `d` a field found in the + message in `f.b`. + + Field masks are used to specify a subset of fields that should be + returned by a get operation or modified by an update operation. + Field masks also have a custom JSON encoding (see below). + + # Field Masks in Projections + + When used in the context of a projection, a response message or + sub-message is filtered by the API to only contain those fields as + specified in the mask. For example, if the mask in the previous + example is applied to a response message as follows: + + f { + a : 22 + b { + d : 1 + x : 2 + } + y : 13 + } + z: 8 + + The result will not contain specific values for fields x,y and z + (their value will be set to the default, and omitted in proto text + output): + + f { + a : 22 + b { + d : 1 + } + } + + A repeated field is not allowed except at the last position of a + paths string. + + If a FieldMask object is not present in a get operation, the + operation applies to all fields (as if a FieldMask of all fields + had been specified). + + Note that a field mask does not necessarily apply to the + top-level response message. In case of a REST get operation, the + field mask applies directly to the response, but in case of a REST + list operation, the mask instead applies to each individual message + in the returned resource list. In case of a REST custom method, + other definitions may be used. Where the mask applies will be + clearly documented together with its declaration in the API. In + any case, the effect on the returned resource/resources is required + behavior for APIs. + + # Field Masks in Update Operations + + A field mask in update operations specifies which fields of the + targeted resource are going to be updated. The API is required + to only change the values of the fields as specified in the mask + and leave the others untouched. If a resource is passed in to + describe the updated values, the API ignores the values of all + fields not covered by the mask. + + If a repeated field is specified for an update operation, new values will + be appended to the existing repeated field in the target resource. Note that + a repeated field is only allowed in the last position of a `paths` string. + + If a sub-message is specified in the last position of the field mask for an + update operation, then new value will be merged into the existing sub-message + in the target resource. + + For example, given the target message: + + f { + b { + d: 1 + x: 2 + } + c: [1] + } + + And an update message: + + f { + b { + d: 10 + } + c: [2] + } + + then if the field mask is: + + paths: ["f.b", "f.c"] + + then the result will be: + + f { + b { + d: 10 + x: 2 + } + c: [1, 2] + } + + An implementation may provide options to override this default behavior for + repeated and message fields. + + In order to reset a field's value to the default, the field must + be in the mask and set to the default value in the provided resource. + Hence, in order to reset all fields of a resource, provide a default + instance of the resource and set all fields in the mask, or do + not provide a mask as described below. + + If a field mask is not present on update, the operation applies to + all fields (as if a field mask of all fields has been specified). + Note that in the presence of schema evolution, this may mean that + fields the client does not know and has therefore not filled into + the request will be reset to their default. If this is unwanted + behavior, a specific service may require a client to always specify + a field mask, producing an error if not. + + As with get operations, the location of the resource which + describes the updated values in the request message depends on the + operation kind. In any case, the effect of the field mask is + required to be honored by the API. + + ## Considerations for HTTP REST + + The HTTP kind of an update operation which uses a field mask must + be set to PATCH instead of PUT in order to satisfy HTTP semantics + (PUT must only be used for full updates). + + # JSON Encoding of Field Masks + + In JSON, a field mask is encoded as a single string where paths are + separated by a comma. Fields name in each path are converted + to/from lower-camel naming conventions. + + As an example, consider the following message declarations: + + message Profile { + User user = 1; + Photo photo = 2; + } + message User { + string display_name = 1; + string address = 2; + } + + In proto a field mask for `Profile` may look as such: + + mask { + paths: "user.display_name" + paths: "photo" + } + + In JSON, the same mask is represented as below: + + { + mask: "user.displayName,photo" + } + + # Field Masks and Oneof Fields + + Field masks treat fields in oneofs just as regular fields. Consider the + following message: + + message SampleMessage { + oneof test_oneof { + string name = 4; + SubMessage sub_message = 9; + } + } + + The field mask can be: + + mask { + paths: "name" + } + + Or: + + mask { + paths: "sub_message" + } + + Note that oneof type names ("test_oneof" in this case) cannot be used in + paths. + + ## Field Mask Verification + + The implementation of any API method which has a FieldMask type field in the + request should verify the included field paths, and return an + `INVALID_ARGUMENT` error if any path is unmappable. + + + + Field number for the "paths" field. + + + + The set of field mask paths. + + + + + Converts a field mask specified by paths to a string. + + + If the value is a normalized duration in the range described in field_mask.proto, + is ignored. Otherwise, if the parameter is true, + a JSON object with a warning is returned; if it is false, an is thrown. + + Paths in the field mask + Determines the handling of non-normalized values + The represented field mask is invalid, and is false. + + + + Returns a string representation of this for diagnostic purposes. + + + Normally the returned value will be a JSON string value (including leading and trailing quotes) but + when the value is non-normalized or out of range, a JSON object representation will be returned + instead, including a warning. This is to avoid exceptions being thrown when trying to + diagnose problems - the regular JSON formatter will still throw an exception for non-normalized + values. + + A string representation of this value. + + + + Parses from a string to a FieldMask. + + + + + Parses from a string to a FieldMask and validates all field paths. + + The type to validate the field paths against. + + + + Constructs a FieldMask for a list of field paths in a certain type. + + The type to validate the field paths against. + + + + Constructs a FieldMask from the passed field numbers. + + The type to validate the field paths against. + + + + Constructs a FieldMask from the passed field numbers. + + The type to validate the field paths against. + + + + Checks whether the given path is valid for a field mask. + + true if the path is valid; false otherwise + + + + Checks whether paths in a given fields mask are valid. + + The type to validate the field paths against. + + + + Checks whether paths in a given fields mask are valid. + + + + + Checks whether a given field path is valid. + + The type to validate the field paths against. + + + + Checks whether paths in a given fields mask are valid. + + + + + Converts this FieldMask to its canonical form. In the canonical form of a + FieldMask, all field paths are sorted alphabetically and redundant field + paths are removed. + + + + + Creates a union of two or more FieldMasks. + + + + + Calculates the intersection of two FieldMasks. + + + + + Merges fields specified by this FieldMask from one message to another with the + specified merge options. + + + + + Merges fields specified by this FieldMask from one message to another. + + + + + Options to customize merging behavior. + + + + + Whether to replace message fields(i.e., discard existing content in + destination message fields) when merging. + Default behavior is to merge the source message field into the + destination message field. + + + + + Whether to replace repeated fields (i.e., discard existing content in + destination repeated fields) when merging. + Default behavior is to append elements from source repeated field to the + destination repeated field. + + + + + Whether to replace primitive (non-repeated and non-message) fields in + destination message fields with the source primitive fields (i.e., if the + field is set in the source, the value is copied to the + destination; if the field is unset in the source, the field is cleared + from the destination) when merging. + + Default behavior is to always set the value of the source primitive + field to the destination primitive field, and if the source field is + unset, the default value of the source field is copied to the + destination. + + + + Holder for reflection information generated from google/protobuf/source_context.proto + + + File descriptor for google/protobuf/source_context.proto + + + + `SourceContext` represents information about the source of a + protobuf element, like the file in which it is defined. + + + + Field number for the "file_name" field. + + + + The path-qualified name of the .proto file that contained the associated + protobuf element. For example: `"google/protobuf/source_context.proto"`. + + + + Holder for reflection information generated from google/protobuf/struct.proto + + + File descriptor for google/protobuf/struct.proto + + + + `NullValue` is a singleton enumeration to represent the null value for the + `Value` type union. + + The JSON representation for `NullValue` is JSON `null`. + + + + + Null value. + + + + + `Struct` represents a structured data value, consisting of fields + which map to dynamically typed values. In some languages, `Struct` + might be supported by a native representation. For example, in + scripting languages like JS a struct is represented as an + object. The details of that representation are described together + with the proto support for the language. + + The JSON representation for `Struct` is JSON object. + + + + Field number for the "fields" field. + + + + Unordered map of dynamically typed values. + + + + + `Value` represents a dynamically typed value which can be either + null, a number, a string, a boolean, a recursive struct value, or a + list of values. A producer of value is expected to set one of these + variants. Absence of any variant indicates an error. + + The JSON representation for `Value` is JSON value. + + + + Field number for the "null_value" field. + + + + Represents a null value. + + + + Gets whether the "null_value" field is set + + + Clears the value of the oneof if it's currently set to "null_value" + + + Field number for the "number_value" field. + + + + Represents a double value. + + + + Gets whether the "number_value" field is set + + + Clears the value of the oneof if it's currently set to "number_value" + + + Field number for the "string_value" field. + + + + Represents a string value. + + + + Gets whether the "string_value" field is set + + + Clears the value of the oneof if it's currently set to "string_value" + + + Field number for the "bool_value" field. + + + + Represents a boolean value. + + + + Gets whether the "bool_value" field is set + + + Clears the value of the oneof if it's currently set to "bool_value" + + + Field number for the "struct_value" field. + + + + Represents a structured value. + + + + Field number for the "list_value" field. + + + + Represents a repeated `Value`. + + + + Enum of possible cases for the "kind" oneof. + + + + Convenience method to create a Value message with a string value. + + Value to set for the StringValue property. + A newly-created Value message with the given value. + + + + Convenience method to create a Value message with a number value. + + Value to set for the NumberValue property. + A newly-created Value message with the given value. + + + + Convenience method to create a Value message with a Boolean value. + + Value to set for the BoolValue property. + A newly-created Value message with the given value. + + + + Convenience method to create a Value message with a null initial value. + + A newly-created Value message a null initial value. + + + + Convenience method to create a Value message with an initial list of values. + + The values provided are not cloned; the references are copied directly. + A newly-created Value message an initial list value. + + + + Convenience method to create a Value message with an initial struct value + + The value provided is not cloned; the reference is copied directly. + A newly-created Value message an initial struct value. + + + + `ListValue` is a wrapper around a repeated field of values. + + The JSON representation for `ListValue` is JSON array. + + + + Field number for the "values" field. + + + + Repeated field of dynamically typed values. + + + + + Extension methods on BCL time-related types, converting to protobuf types. + + + + + Converts the given to a . + + The date and time to convert to a timestamp. + The value has a other than Utc. + The converted timestamp. + + + + Converts the given to a + + The offset is taken into consideration when converting the value (so the same instant in time + is represented) but is not a separate part of the resulting value. In other words, there is no + roundtrip operation to retrieve the original DateTimeOffset. + The date and time (with UTC offset) to convert to a timestamp. + The converted timestamp. + + + + Converts the given to a . + + The time span to convert. + The converted duration. + + + Holder for reflection information generated from google/protobuf/timestamp.proto + + + File descriptor for google/protobuf/timestamp.proto + + + + A Timestamp represents a point in time independent of any time zone or local + calendar, encoded as a count of seconds and fractions of seconds at + nanosecond resolution. The count is relative to an epoch at UTC midnight on + January 1, 1970, in the proleptic Gregorian calendar which extends the + Gregorian calendar backwards to year one. + + All minutes are 60 seconds long. Leap seconds are "smeared" so that no leap + second table is needed for interpretation, using a [24-hour linear + smear](https://developers.google.com/time/smear). + + The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By + restricting to that range, we ensure that we can convert to and from [RFC + 3339](https://www.ietf.org/rfc/rfc3339.txt) date strings. + + # Examples + + Example 1: Compute Timestamp from POSIX `time()`. + + Timestamp timestamp; + timestamp.set_seconds(time(NULL)); + timestamp.set_nanos(0); + + Example 2: Compute Timestamp from POSIX `gettimeofday()`. + + struct timeval tv; + gettimeofday(&tv, NULL); + + Timestamp timestamp; + timestamp.set_seconds(tv.tv_sec); + timestamp.set_nanos(tv.tv_usec * 1000); + + Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`. + + FILETIME ft; + GetSystemTimeAsFileTime(&ft); + UINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime; + + // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z + // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z. + Timestamp timestamp; + timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL)); + timestamp.set_nanos((INT32) ((ticks % 10000000) * 100)); + + Example 4: Compute Timestamp from Java `System.currentTimeMillis()`. + + long millis = System.currentTimeMillis(); + + Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000) + .setNanos((int) ((millis % 1000) * 1000000)).build(); + + Example 5: Compute Timestamp from Java `Instant.now()`. + + Instant now = Instant.now(); + + Timestamp timestamp = + Timestamp.newBuilder().setSeconds(now.getEpochSecond()) + .setNanos(now.getNano()).build(); + + Example 6: Compute Timestamp from current time in Python. + + timestamp = Timestamp() + timestamp.GetCurrentTime() + + # JSON Mapping + + In JSON format, the Timestamp type is encoded as a string in the + [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the + format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z" + where {year} is always expressed using four digits while {month}, {day}, + {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional + seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution), + are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone + is required. A proto3 JSON serializer should always use UTC (as indicated by + "Z") when printing the Timestamp type and a proto3 JSON parser should be + able to accept both UTC and other timezones (as indicated by an offset). + + For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past + 01:30 UTC on January 15, 2017. + + In JavaScript, one can convert a Date object to this format using the + standard + [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString) + method. In Python, a standard `datetime.datetime` object can be converted + to this format using + [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with + the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use + the Joda Time's [`ISODateTimeFormat.dateTime()`]( + http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime() + ) to obtain a formatter capable of generating timestamps in this format. + + + + Field number for the "seconds" field. + + + + Represents seconds of UTC time since Unix epoch + 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to + 9999-12-31T23:59:59Z inclusive. + + + + Field number for the "nanos" field. + + + + Non-negative fractions of a second at nanosecond resolution. Negative + second values with fractions must still have non-negative nanos values + that count forward in time. Must be from 0 to 999,999,999 + inclusive. + + + + + Returns the difference between one and another, as a . + + The timestamp to subtract from. Must not be null. + The timestamp to subtract. Must not be null. + The difference between the two specified timestamps. + + + + Adds a to a , to obtain another Timestamp. + + The timestamp to add the duration to. Must not be null. + The duration to add. Must not be null. + The result of adding the duration to the timestamp. + + + + Subtracts a from a , to obtain another Timestamp. + + The timestamp to subtract the duration from. Must not be null. + The duration to subtract. + The result of subtracting the duration from the timestamp. + + + + Converts this timestamp into a . + + + The resulting DateTime will always have a Kind of Utc. + If the timestamp is not a precise number of ticks, it will be truncated towards the start + of time. For example, a timestamp with a value of 99 will result in a + value precisely on a second. + + This timestamp as a DateTime. + The timestamp contains invalid values; either it is + incorrectly normalized or is outside the valid range. + + + + Converts this timestamp into a . + + + The resulting DateTimeOffset will always have an Offset of zero. + If the timestamp is not a precise number of ticks, it will be truncated towards the start + of time. For example, a timestamp with a value of 99 will result in a + value precisely on a second. + + This timestamp as a DateTimeOffset. + The timestamp contains invalid values; either it is + incorrectly normalized or is outside the valid range. + + + + Converts the specified to a . + + + The Kind of is not DateTimeKind.Utc. + The converted timestamp. + + + + Converts the given to a + + The offset is taken into consideration when converting the value (so the same instant in time + is represented) but is not a separate part of the resulting value. In other words, there is no + roundtrip operation to retrieve the original DateTimeOffset. + The date and time (with UTC offset) to convert to a timestamp. + The converted timestamp. + + + + Converts a timestamp specified in seconds/nanoseconds to a string. + + + If the value is a normalized duration in the range described in timestamp.proto, + is ignored. Otherwise, if the parameter is true, + a JSON object with a warning is returned; if it is false, an is thrown. + + Seconds portion of the duration. + Nanoseconds portion of the duration. + Determines the handling of non-normalized values + The represented duration is invalid, and is false. + + + + Given another timestamp, returns 0 if the timestamps are equivalent, -1 if this timestamp precedes the other, and 1 otherwise + + + Make sure the timestamps are normalized. Comparing non-normalized timestamps is not specified and may give unexpected results. + + Timestamp to compare + an integer indicating whether this timestamp precedes or follows the other + + + + Compares two timestamps and returns whether the first is less than (chronologically precedes) the second + + + Make sure the timestamps are normalized. Comparing non-normalized timestamps is not specified and may give unexpected results. + + + + true if a precedes b + + + + Compares two timestamps and returns whether the first is greater than (chronologically follows) the second + + + Make sure the timestamps are normalized. Comparing non-normalized timestamps is not specified and may give unexpected results. + + + + true if a follows b + + + + Compares two timestamps and returns whether the first is less than (chronologically precedes) the second + + + Make sure the timestamps are normalized. Comparing non-normalized timestamps is not specified and may give unexpected results. + + + + true if a precedes b + + + + Compares two timestamps and returns whether the first is greater than (chronologically follows) the second + + + Make sure the timestamps are normalized. Comparing non-normalized timestamps is not specified and may give unexpected results. + + + + true if a follows b + + + + Returns whether two timestamps are equivalent + + + Make sure the timestamps are normalized. Comparing non-normalized timestamps is not specified and may give unexpected results. + + + + true if the two timestamps refer to the same nanosecond + + + + Returns whether two timestamps differ + + + Make sure the timestamps are normalized. Comparing non-normalized timestamps is not specified and may give unexpected results. + + + + true if the two timestamps differ + + + + Returns a string representation of this for diagnostic purposes. + + + Normally the returned value will be a JSON string value (including leading and trailing quotes) but + when the value is non-normalized or out of range, a JSON object representation will be returned + instead, including a warning. This is to avoid exceptions being thrown when trying to + diagnose problems - the regular JSON formatter will still throw an exception for non-normalized + values. + + A string representation of this value. + + + Holder for reflection information generated from google/protobuf/type.proto + + + File descriptor for google/protobuf/type.proto + + + + The syntax in which a protocol buffer element is defined. + + + + + Syntax `proto2`. + + + + + Syntax `proto3`. + + + + + Syntax `editions`. + + + + + A protocol buffer message type. + + + + Field number for the "name" field. + + + + The fully qualified message name. + + + + Field number for the "fields" field. + + + + The list of fields. + + + + Field number for the "oneofs" field. + + + + The list of types appearing in `oneof` definitions in this type. + + + + Field number for the "options" field. + + + + The protocol buffer options. + + + + Field number for the "source_context" field. + + + + The source context. + + + + Field number for the "syntax" field. + + + + The source syntax. + + + + Field number for the "edition" field. + + + + The source edition string, only valid when syntax is SYNTAX_EDITIONS. + + + + + A single field of a message type. + + + + Field number for the "kind" field. + + + + The field type. + + + + Field number for the "cardinality" field. + + + + The field cardinality. + + + + Field number for the "number" field. + + + + The field number. + + + + Field number for the "name" field. + + + + The field name. + + + + Field number for the "type_url" field. + + + + The field type URL, without the scheme, for message or enumeration + types. Example: `"type.googleapis.com/google.protobuf.Timestamp"`. + + + + Field number for the "oneof_index" field. + + + + The index of the field type in `Type.oneofs`, for message or enumeration + types. The first type has index 1; zero means the type is not in the list. + + + + Field number for the "packed" field. + + + + Whether to use alternative packed wire representation. + + + + Field number for the "options" field. + + + + The protocol buffer options. + + + + Field number for the "json_name" field. + + + + The field JSON name. + + + + Field number for the "default_value" field. + + + + The string value of the default value of this field. Proto2 syntax only. + + + + Container for nested types declared in the Field message type. + + + + Basic field types. + + + + + Field type unknown. + + + + + Field type double. + + + + + Field type float. + + + + + Field type int64. + + + + + Field type uint64. + + + + + Field type int32. + + + + + Field type fixed64. + + + + + Field type fixed32. + + + + + Field type bool. + + + + + Field type string. + + + + + Field type group. Proto2 syntax only, and deprecated. + + + + + Field type message. + + + + + Field type bytes. + + + + + Field type uint32. + + + + + Field type enum. + + + + + Field type sfixed32. + + + + + Field type sfixed64. + + + + + Field type sint32. + + + + + Field type sint64. + + + + + Whether a field is optional, required, or repeated. + + + + + For fields with unknown cardinality. + + + + + For optional fields. + + + + + For required fields. Proto2 syntax only. + + + + + For repeated fields. + + + + + Enum type definition. + + + + Field number for the "name" field. + + + + Enum type name. + + + + Field number for the "enumvalue" field. + + + + Enum value definitions. + + + + Field number for the "options" field. + + + + Protocol buffer options. + + + + Field number for the "source_context" field. + + + + The source context. + + + + Field number for the "syntax" field. + + + + The source syntax. + + + + Field number for the "edition" field. + + + + The source edition string, only valid when syntax is SYNTAX_EDITIONS. + + + + + Enum value definition. + + + + Field number for the "name" field. + + + + Enum value name. + + + + Field number for the "number" field. + + + + Enum value number. + + + + Field number for the "options" field. + + + + Protocol buffer options. + + + + + A protocol buffer option, which can be attached to a message, field, + enumeration, etc. + + + + Field number for the "name" field. + + + + The option's name. For protobuf built-in options (options defined in + descriptor.proto), this is the short name. For example, `"map_entry"`. + For custom options, it should be the fully-qualified name. For example, + `"google.api.http"`. + + + + Field number for the "value" field. + + + + The option's value packed in an Any message. If the value is a primitive, + the corresponding wrapper type defined in google/protobuf/wrappers.proto + should be used. If the value is an enum, it should be stored as an int32 + value using the google.protobuf.Int32Value type. + + + + Holder for reflection information generated from google/protobuf/wrappers.proto + + + File descriptor for google/protobuf/wrappers.proto + + + + Field number for the single "value" field in all wrapper types. + + + + + Wrapper message for `double`. + + The JSON representation for `DoubleValue` is JSON number. + + + + Field number for the "value" field. + + + + The double value. + + + + + Wrapper message for `float`. + + The JSON representation for `FloatValue` is JSON number. + + + + Field number for the "value" field. + + + + The float value. + + + + + Wrapper message for `int64`. + + The JSON representation for `Int64Value` is JSON string. + + + + Field number for the "value" field. + + + + The int64 value. + + + + + Wrapper message for `uint64`. + + The JSON representation for `UInt64Value` is JSON string. + + + + Field number for the "value" field. + + + + The uint64 value. + + + + + Wrapper message for `int32`. + + The JSON representation for `Int32Value` is JSON number. + + + + Field number for the "value" field. + + + + The int32 value. + + + + + Wrapper message for `uint32`. + + The JSON representation for `UInt32Value` is JSON number. + + + + Field number for the "value" field. + + + + The uint32 value. + + + + + Wrapper message for `bool`. + + The JSON representation for `BoolValue` is JSON `true` and `false`. + + + + Field number for the "value" field. + + + + The bool value. + + + + + Wrapper message for `string`. + + The JSON representation for `StringValue` is JSON string. + + + + Field number for the "value" field. + + + + The string value. + + + + + Wrapper message for `bytes`. + + The JSON representation for `BytesValue` is JSON string. + + + + Field number for the "value" field. + + + + The bytes value. + + + + + This class is used internally by the Protocol Buffer Library and generated + message implementations. It is public only for the sake of those generated + messages. Others should not use this class directly. + + This class contains constants and helper functions useful for dealing with + the Protocol Buffer wire format. + + + + + + Wire types within protobuf encoding. + + + + + Variable-length integer. + + + + + A fixed-length 64-bit value. + + + + + A length-delimited value, i.e. a length followed by that many bytes of data. + + + + + A "start group" value + + + + + An "end group" value + + + + + A fixed-length 32-bit value. + + + + + Given a tag value, determines the wire type (lower 3 bits). + + + + + Given a tag value, determines the field number (the upper 29 bits). + + + + + Makes a tag value given a field number and wire type. + + + + + Abstraction for writing to a steam / IBufferWriter + + + + + Initialize an instance with a coded output stream. + This approach is faster than using a constructor because the instance to initialize is passed by reference + and we can write directly into it without copying. + + + + + Initialize an instance with a buffer writer. + This approach is faster than using a constructor because the instance to initialize is passed by reference + and we can write directly into it without copying. + + + + + Initialize an instance with a buffer represented by a single span (i.e. buffer cannot be refreshed) + This approach is faster than using a constructor because the instance to initialize is passed by reference + and we can write directly into it without copying. + + + + + Verifies that SpaceLeft returns zero. + + + + + If writing to a flat array, returns the space left in the array. Otherwise, + throws an InvalidOperationException. + + + + + An opaque struct that represents the current serialization state and is passed along + as the serialization proceeds. + All the public methods are intended to be invoked only by the generated code, + users should never invoke them directly. + + + + + Creates a WriteContext instance from CodedOutputStream. + WARNING: internally this copies the CodedOutputStream's state, so after done with the WriteContext, + the CodedOutputStream's state needs to be updated. + + + + + Writes a double field value, without a tag. + + The value to write + + + + Writes a float field value, without a tag. + + The value to write + + + + Writes a uint64 field value, without a tag. + + The value to write + + + + Writes an int64 field value, without a tag. + + The value to write + + + + Writes an int32 field value, without a tag. + + The value to write + + + + Writes a fixed64 field value, without a tag. + + The value to write + + + + Writes a fixed32 field value, without a tag. + + The value to write + + + + Writes a bool field value, without a tag. + + The value to write + + + + Writes a string field value, without a tag. + The data is length-prefixed. + + The value to write + + + + Writes a message, without a tag. + The data is length-prefixed. + + The value to write + + + + Writes a group, without a tag, to the stream. + + The value to write + + + + Write a byte string, without a tag, to the stream. + The data is length-prefixed. + + The value to write + + + + Writes a uint32 value, without a tag. + + The value to write + + + + Writes an enum value, without a tag. + + The value to write + + + + Writes an sfixed32 value, without a tag. + + The value to write. + + + + Writes an sfixed64 value, without a tag. + + The value to write + + + + Writes an sint32 value, without a tag. + + The value to write + + + + Writes an sint64 value, without a tag. + + The value to write + + + + Writes a length (in bytes) for length-delimited data. + + + This method simply writes a rawint, but exists for clarity in calling code. + + Length value, in bytes. + + + + Encodes and writes a tag. + + The number of the field to write the tag for + The wire format type of the tag to write + + + + Writes an already-encoded tag. + + The encoded tag + + + + Writes the given single-byte tag. + + The encoded tag + + + + Writes the given two-byte tag. + + The first byte of the encoded tag + The second byte of the encoded tag + + + + Writes the given three-byte tag. + + The first byte of the encoded tag + The second byte of the encoded tag + The third byte of the encoded tag + + + + Writes the given four-byte tag. + + The first byte of the encoded tag + The second byte of the encoded tag + The third byte of the encoded tag + The fourth byte of the encoded tag + + + + Writes the given five-byte tag. + + The first byte of the encoded tag + The second byte of the encoded tag + The third byte of the encoded tag + The fourth byte of the encoded tag + The fifth byte of the encoded tag + + + + Primitives for encoding protobuf wire format. + + + + + Writes a double field value, without a tag, to the stream. + + + + + Writes a float field value, without a tag, to the stream. + + + + + Writes a uint64 field value, without a tag, to the stream. + + + + + Writes an int64 field value, without a tag, to the stream. + + + + + Writes an int32 field value, without a tag, to the stream. + + + + + Writes a fixed64 field value, without a tag, to the stream. + + + + + Writes a fixed32 field value, without a tag, to the stream. + + + + + Writes a bool field value, without a tag, to the stream. + + + + + Writes a string field value, without a tag, to the stream. + The data is length-prefixed. + + + + + Given a QWORD which represents a buffer of 4 ASCII chars in machine-endian order, + narrows each WORD to a BYTE, then writes the 4-byte result to the output buffer + also in machine-endian order. + + + + + Write a byte string, without a tag, to the stream. + The data is length-prefixed. + + + + + Writes a uint32 value, without a tag, to the stream. + + + + + Writes an enum value, without a tag, to the stream. + + + + + Writes an sfixed32 value, without a tag, to the stream. + + + + + Writes an sfixed64 value, without a tag, to the stream. + + + + + Writes an sint32 value, without a tag, to the stream. + + + + + Writes an sint64 value, without a tag, to the stream. + + + + + Writes a length (in bytes) for length-delimited data. + + + This method simply writes a rawint, but exists for clarity in calling code. + + + + + Writes a 32 bit value as a varint. The fast route is taken when + there's enough buffer space left to whizz through without checking + for each byte; otherwise, we resort to calling WriteRawByte each time. + + + + + Writes out an array of bytes. + + + + + Writes out part of an array of bytes. + + + + + Writes out part of an array of bytes. + + + + + Encodes and writes a tag. + + + + + Writes an already-encoded tag. + + + + + Writes the given single-byte tag directly to the stream. + + + + + Writes the given two-byte tag directly to the stream. + + + + + Writes the given three-byte tag directly to the stream. + + + + + Writes the given four-byte tag directly to the stream. + + + + + Writes the given five-byte tag directly to the stream. + + + + + Encode a 32-bit value with ZigZag encoding. + + + ZigZag encodes signed integers into values that can be efficiently + encoded with varint. (Otherwise, negative values must be + sign-extended to 64 bits to be varint encoded, thus always taking + 10 bytes on the wire.) + + + + + Encode a 64-bit value with ZigZag encoding. + + + ZigZag encodes signed integers into values that can be efficiently + encoded with varint. (Otherwise, negative values must be + sign-extended to 64 bits to be varint encoded, thus always taking + 10 bytes on the wire.) + + + + + Writing messages / groups. + + + + + Writes a message, without a tag. + The data is length-prefixed. + + + + + Writes a group, without a tag. + + + + + Writes a message, without a tag. + Message will be written without a length prefix. + + + + + Indicates that certain members on a specified are accessed dynamically, + for example through . + + + This allows tools to understand which members are being accessed during the execution + of a program. + + This attribute is valid on members whose type is or . + + When this attribute is applied to a location of type , the assumption is + that the string represents a fully qualified type name. + + When this attribute is applied to a class, interface, or struct, the members specified + can be accessed dynamically on instances returned from calling + on instances of that class, interface, or struct. + + If the attribute is applied to a method it's treated as a special case and it implies + the attribute should be applied to the "this" parameter of the method. As such the attribute + should only be used on instance methods of types assignable to System.Type (or string, but no methods + will use it there). + + + + + Initializes a new instance of the class + with the specified member types. + + The types of members dynamically accessed. + + + + Gets the which specifies the type + of members dynamically accessed. + + + + + Specifies the types of members that are dynamically accessed. + + This enumeration has a attribute that allows a + bitwise combination of its member values. + + + + + Specifies no members. + + + + + Specifies the default, parameterless public constructor. + + + + + Specifies all public constructors. + + + + + Specifies all non-public constructors. + + + + + Specifies all public methods. + + + + + Specifies all non-public methods. + + + + + Specifies all public fields. + + + + + Specifies all non-public fields. + + + + + Specifies all public nested types. + + + + + Specifies all non-public nested types. + + + + + Specifies all public properties. + + + + + Specifies all non-public properties. + + + + + Specifies all public events. + + + + + Specifies all non-public events. + + + + + Specifies all interfaces implemented by the type. + + + + + Specifies all members. + + + + + Indicates that the specified method requires dynamic access to code that is not referenced + statically, for example through . + + + This allows tools to understand which methods are unsafe to call when removing unreferenced + code from an application. + + + + + Initializes a new instance of the class + with the specified message. + + + A message that contains information about the usage of unreferenced code. + + + + + Gets a message that contains information about the usage of unreferenced code. + + + + + Gets or sets an optional URL that contains more information about the method, + why it requires unreferenced code, and what options a consumer has to deal with it. + + + + + Suppresses reporting of a specific rule violation, allowing multiple suppressions on a + single code artifact. + + + is different than + in that it doesn't have a + . So it is always preserved in the compiled assembly. + + + + + Initializes a new instance of the + class, specifying the category of the tool and the identifier for an analysis rule. + + The category for the attribute. + The identifier of the analysis rule the attribute applies to. + + + + Gets the category identifying the classification of the attribute. + + + The property describes the tool or tool analysis category + for which a message suppression attribute applies. + + + + + Gets the identifier of the analysis tool rule to be suppressed. + + + Concatenated together, the and + properties form a unique check identifier. + + + + + Gets or sets the scope of the code that is relevant for the attribute. + + + The Scope property is an optional argument that specifies the metadata scope for which + the attribute is relevant. + + + + + Gets or sets a fully qualified path that represents the target of the attribute. + + + The property is an optional argument identifying the analysis target + of the attribute. An example value is "System.IO.Stream.ctor():System.Void". + Because it is fully qualified, it can be long, particularly for targets such as parameters. + The analysis tool user interface should be capable of automatically formatting the parameter. + + + + + Gets or sets an optional argument expanding on exclusion criteria. + + + The property is an optional argument that specifies additional + exclusion where the literal metadata target is not sufficiently precise. For example, + the cannot be applied within a method, + and it may be desirable to suppress a violation against a statement in the method that will + give a rule violation, but not against all statements in the method. + + + + + Gets or sets the justification for suppressing the code analysis message. + + +
+
diff --git a/xiaofang/Assets/Plugins/Google.Protobuf.xml.meta b/xiaofang/Assets/Plugins/Google.Protobuf.xml.meta new file mode 100644 index 00000000..764816e8 --- /dev/null +++ b/xiaofang/Assets/Plugins/Google.Protobuf.xml.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 74cf1967f309f1b49ba3a6dbf830c330 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/xiaofang/Assets/a_res/TPS Bundle/Cover+Shoot/Animations/Jumping/fall.anim b/xiaofang/Assets/a_res/TPS Bundle/Cover+Shoot/Animations/Jumping/fall.anim index 1cb839e52364870859c2bdf7e2eb666f2cb43e90..154c280d144b71e17723d7e367bad6e2ea627185 100644 GIT binary patch literal 498559 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 literal 90192 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 G@cMsqEQoyo diff --git a/xiaofang/Assets/a_res/TPS Bundle/Cover+Shoot/Animations/Shoot/rifle_shot.anim b/xiaofang/Assets/a_res/TPS Bundle/Cover+Shoot/Animations/Shoot/rifle_shot.anim index e44066d8651796d0105483e492c2efd2bcc090c8..331f9f75b84448c7517e7ecfc16610b4604b7f54 100644 GIT binary patch literal 339780 zcmeFaU6Uloai)8(U(tK9=W3@dGb=wTaVL@DlE+9%3y>>2wzftaVwyl70W)JW4S|qM z|9u~?>IwIZaIbCKL8W=EvGrlnycn?GbPo^z3ito~|NZUnetXy7_kZ)BfB(1t_3l6Y z@SpCUUVrn&4{slzemcCl|N7nc|7Ga<{)@kP_3D+N%Xs(yEMq4>fAhC*AHRS7^!V=W zFTQ(x|Ha?j-F^SZfBe(`|M2zGuOHt${OY^c-+cVyt~>qlFW!Cl@bK~dySHy1-+uGe zyB|J${c!##zqtGNKR@1D-Qg(6vJyiebufBWt`sw-4_z!$__x0(Q;{TK% zhv@JOegDVP-x3kY&nxerJv@VVcTbP<5rygb=U-oc_XB_Ms=M#HX_)7J?WO`gzWwUE zckkt&zwgH5VV)1ig1!6UDFzYmHxF;0e)sOp=0EJm2fq2!!<+igAK(7-36cMx!}({l z|3M-8GP3vG^S@M?S=xtrI;_j0)GY0J>c(X~=-=G%ZqRJR=hKgziB{a*I;;r1FQDbU zOhdn{`b{>pYcLt>{$#;ACH5?B(eeH;chfZL7qO)0W4{hvK)MFAk*?2;A$^$pd0dv+ zmGogacJpCXa3ksl%|<)WaFO)^IScQW_Q~9h{n*XZ`pJ&o-6?S&Pey$>tGWLER^o@T z8xIE+s#SA%uYK3A<+~_xK3jukqkUF%waA9{I3Aa7RAPm-2(&-0Yd$9G# zZ8EHfZW#}Qn!63_aqN!#=;zwfZs26R)pId~dk*%p8Uw#!-1moJnDkg|3D;;gz8B1R zf9TioIIC;4rQIF6;V|e2t9aLNHsTiyd3T(YlKpdN3x=WO0lpdJ++K$Z!aY!>wtT4y^`XM0>f((kLU$Hzlw0-&v2H_%=*uVi%o?M94Ff0!f( zp{iH368C24)=6(m6;=c7C9D@3ov>2U-S=|PaMH_BGkhoh-tnMrpe0;m$r#6Gwm*_K zKf3Z2H;;V!CvV@nJa_>$n2mAh=Jo5m3{=Bf5fh^IN1|~oaRF7x9-54F?9lh55vC}8 zdRSJek*U&eNH=IQ(kjT}$@debpx!tLc8sEz{;(XDIZPx? z%W>+KUO(1`HD&P{PsUrtrBa6Pp;Jah$YhrWawWJKYS)ymhwer8D&E9@yO~4^)^#G& ztFkmA>!%gx&ox4r^eU_XOLu@1*^9`qJ9oQL&D{W8$f2F%7eykVtOCk57Wi5kjO z>8ZB&ssi?4HefQ!q=4i{FUn$z1~?yk6QUW)bYrYjH~5qrFdOAq%EL_2Y4N3eJRZiV z-QrM#$tcHO)WGe#biTJN#f%>Bp(wpo>;}w6`7C91dsVTeZ|tZ*(QBz^puE(dCRG9D z?83=dpHH)UoToz%vm#5&nhT6xxhNCdpvgFM-^hG)0HP7Tt^OmAuEFPHLXL40kdpbT-la<#M{PDVTOB!%`c^gZ;HS|JYD5f+dLH>eVK;cUb&$b0Ci_Z`aTB@7wgn7CWKVR@|PPp8{!Evz z?1eEzbLn*VQuHHmS3-p?WC{1z&d+3cXfn3VVTA2W|DJgTV#(q~^&Pgj$lV$quAmCt zi|mz79QMCFX#83G9VuG3+rBJJJmu(W_S=0VNb5 z%u(&$u&%*utS>l$IKEU#l$T1HxBCPFgQ*J|&MlaXbJSZSf+oR8q_0_1%URy&b|%NX z;ar2+IG>WpZRQ-#_;9>T^Sb39a(6EsyA;CI z-7uUTG#Tp)NsE4_8;)TLK+-+y*w%QZYyjv_cx(^`5a2Q#gZ}BUs|bRun+X8c(+tf;}~Sk zXRusrEF0I@UK0Q;JonMBQO+@pxv+WP&Q#qoEBz=GdpB1}FLm}pQq20_M4spbY+ou*PV%|knST@2Z zz4rL7!?=!vBVaC{WuS|A*)r~VH#Pd>miUVenvAn@GV)~z%`|xzDuie>0xh!N$hX4w zqI$)9=BE?U?Ac_|GaPrRcND=C6&-OLcuuT{imZY5lGqEcnJ|@%lS^wkuZGpo7`~)i zJCmNVd@Cp$-?PnCQK|1o@s8Wmxn{=uby$w(0h zspz?-TVvVy2Du1c4X+Hq@4x52%j}t zZ=7PBad{6sndG7qDO(#xtFdOBQ zkd;@Fu}qs4=RpsvrA*_@JR597xdxL_R$pEt03!IqXkLL>uG4T}2CJ*l{e2DY#r29I zz-_d5abXOo=R`KbIg~gH3vI=E=^6!Xu)SpVxj_JwIg~SRYJJA5ywZ#)S70{If%gPu zW+0CY>QI+Z&*p%0OkT#6IyPdi!DO5-JPe@~YV5tzq$En|96yeMIjX^Alq07RF;5fc z^nCC>L-3|cH34VXuxEQqrgwnvGanD@9OnP4xJ|?MgDq%B`dJSvJnoVJ_s|b z!!3isiG%FtC0i^RUpkGNfQNOrK6cb z4VsN~5C{or%+y5tb&+OaEytb9XD}C&y?h!l8|NSv63%ou9=sudJr8_F)LV_ZGH$VC zgfG-dNKLJ)o1c{DT|EPrNun1GP|kd-7EVSx@|gME=Y{EirW#^Yn=P0$z?zw9N}6D~ z29r^4d`RKS?mWi46(Jg~487yO)tFnVHMSSiD|(Q((O`oWVh}0w4qA!Pg+LkiNF}IX zDl!M$OJ*-SNDko^%SJeG zk%{6c?si6Ri&B%?kmS1QkyHV(|w5_Z6B zj6<_U59G?q^p>&s{3GN2j;1G6DSK!#&QU;sR`Yt=-TR6lrRvATgYrF;vIAyge3G*M z?yA>k=DQC`#4AsP~(rVX6W;M8%&|Vk;#o>T#fj#m@&!x;?gk$HJt+zbi^CANAfG68Dr+gbI8{N=1rV`If zATMoBghOJHi8cNyZoq7mL+@A~$gixmDtc>FdZf{Y2b={`5mU^quw;Z|_gG5t@-+&p zLKuILtPKsWZo`y^CL62=!-7QX3&-_)=;+~-C zZ=@^Iq;^!Z$=+31GQR2+D$|~4Ud!S+jFOBbk;R79qVF57HMkeqpWS8r^6{H*Z*2e? zaVak}-4+B=>P(HLni-tR2Hi_=pXoMYP}YShj7A@={aqORjw*Y)$``4?WRxQ>N+{1G z>$x0HnQ5vcvsT?ia*HJ+9Nn=HUQS6>?~ea4)I7@UFQu3Jt%O)XS{a#*(J5k<753*$wF$%trbg(djQ= zyg?e|VNG*m5vJuVlMdufTLCwu8#Ec~C>w=QVt_YsEN}IESu=vaTPEXcZFo0mHs0sE zR?qIUw1qcAyvJ!(fvU9o`vYx$6m>mew_rBTfrbm`BVCH4>qE-ZH4eN#=%WRbalYU~ za^=#KY-S=`In%f+1rT4(HJFX_Scj;6L)Hpa16G2%7QRZ&Qzj7tqV%Z4C{)E(aIudTJh~;(S0qa{3btW1p8Q%+OIG$4Ts?X?cQE759 z((6Y#+hOd0$v9u|o*1Jmqk{`Ar7TH0T0PC>t3u{9)L=Hsq5Cva+GBaP>aL|M6Sipi z3?4IbL$!D^;*A%Dtk@hvVBjh?*EPwkK1#RN;9g{}=SbbqXen`&yc{`d$V_{hO;px; zG#zj+p?#(og`SdM96e)1_)52)8`d;XGPaRJfdysu3T~2Ph@|bDDO&7NEOyxnxB;_K z4qOT-lV4uwo+z}e?L9E*k5Wm&l(INq6_|{2UtEm^AA9m^=xif_m^=w4*6=|J5^ z371QQ^aTF8X+kZ6litONDN=4G$^rKh+Y4Q&u!bw7S$Q<@sHN3baShk;$lMaORI05W znvC|P{2Sws<*M~qPcp^DK$dfjC1ZS{!X;HZGBhpWf%TYJBzJIQi)AAm=idgNrujt= z6uNiw6wuv5+1Li2GRL^5C&8V|DU%uH?$raX`rKm42~msTmqxfqRj?W>|0=1!~Ey(HXy(L{pI( zW(psJoQz&ms-h0Km(*Su6-4eaiB%@K_k&SJLz%6DjKelnK1;a)lTnWRW5S?mU}ux} z$cGyA)E#LpagJt-Wg{GTjNFqG4Dtr+>bN)y(d&buRlQE7w3K&!K@pT$+gPWC6HGcQ1gC--bqAK#`Vd>bplfGr- zY%jB|_2yNLcEG*3Uh{VS@pO2zznc)RmsXgWY)mmWtWSqy}?r;YW-AiyUykIY- z-3V`1s#~hZmNrL|dY%~!VAK_dq(-yRj>9^#6ofcl7noQicG8im2vXw>nvC^@!O(b9 zoos4$Rh*tw=Abbnx1bwgw{SMzv9t%?hi@L)S{>)H+C$h)yfB%;g(d^z8SL#R>wey1>hS)JSmW*)ZTnH&_keQ-t&Lm|62CSMFn^wXNn2d3By&_`SxyMG8BF91*gUl;b9+TK1 zQ%c%}lhIbiEphG0HVMWCD`NQ`2yEG~890v(nv899vx?zj(7~Yby5&qt1BcqwhBhK@ z&}5udZ&ku0OBX11v>J^<^ZJyXCUPV!yA~@j8ROWcz#!8F<>ek>g$uPZp2eqJgUKkX@hRFo_Oia# z6nBg|(>g_3J&1!Ea4)V`^e1kk(LlU{j?k4sJ1Wp3Hc;LS%e*DEU22CsbT7fZ(4)9m z3+b5?bu^DMPq_@VW+#(GsTX(~T8G_>4wF`1&%2RimI=%XOE4bnAoa1Ts$ET(G1xJ5@aicz<;Pgexo=U+=DEXCkN7cuYpPOyeZi z9OPaba4)h~ylHQx_Qe2f*#z&O$Q2XC3@QIa*5F=3d+9a%Y=s(4l@M)Yv+L^Jv!rY$ z#$rWf+6K%&EdqC8rWLx-8OuW8caqxO3XpIr_C)G&B<0a%A5Wy zXo-YsG#lx&a;wCiy(y71FWk6fTRG!aaMGpCClWu5#06M2c!uP~|Khb&X~t zeO7M$?aPUl7Ae*uxt!4fYE4G(H=G+Z8E4Hj8nR-v{neo`r3vzAu5D#2wyj39u?=mu zw6o%AIW`+wXuLIS8_E@yjBpeaiL8!{1MuGHighABWZkBD(5jqWI2-NLNp2Dy!dgUW z>b}JVgVrG9(P&*M$9zM&L6dQIZ8h(3y~YJG#$>D5#i+(^L$*QpB74Pf@HSc(n5jyo zkHAhHORJ-J(>x9dXBxKfUV?jJNEkQY69ecWt~Z<;G#TgEYoSYcLt*vvXl$_~KHDn0cSq}{|;pbOh#FiQ@K*Gq2i%M674MuMPg2eQwyopc%aKM# zM{432^)x^p)tyqQIpAJWd*Ou>_R67f%mwIZB~oHVRfQKB%7b~Jxg}kJ*+_>Mjx--o zBRHCC#gZn6GczMXzsQDlgC?UL=OLLDhCHe3s=>0frR8R2pR;3w(S!!gMmvsbJ4WEm z1JmvcvqBsF2b9al9ZuxJ*@(w#PQHc-aAtX^;Z074&PlzDRmYKag(YJgdsP(ZIk`BD zuB1mY&Yn|+l($eezGu}|^(}4&d^wj3JI!3e{5>3NBY!Joxf8Z%Hri*!R(oV<^SV*y z-MFktUyz%IHhHisqqZ^xTZeUqyX9fyb z+RWu*w2%8vSl*t{2fgm4KM30Nd*QtMW14Y-%oUK$dIZZi*e8FJ~5=RGh) zk4s07v!&dC$tXvyuhc7&Ni22I8}juoixF;&eI^C{Y0aTLRj z{Ix=pkv?CuUJh0^jIu^HkTl~?=~2<(NtIhZNsT5Wt+z+2 zY~j85Uh~?ym2OZ8X;u>DZh*&gPZH=sv4A93h3+M{&%Sv2m4|+lSx->RuvlRn!ankW zYcLt*xZX*HSGJeweOf4EaY$d0ayO5}Huk7Nvyl!RjDB6D*rf)`l4k$t#0IUR_#4hO zn2d6K*%Ik2biQd<$(AyA3kwV*&J~)C^!c_`X_o7UtPRn;;blql+>_=La?d{N7EVT6 zBRS*AAGBYn-j2Scv$&ehpaRLI9b@*bV0fO-5Q3vj~`G zDJBa98=*(y1T0$-z9oy5--3H_y{0d98?98_qol)Svf6nH%9#^igUKkzgPC}VEbC-i-6o!;>cQL>4eu@E2293S52TUqOcI%S5FS~& zeR*}@-nEFg2KOR+&AawCN(0 zEW8S5K8Oq#pg`*#Ob^Y*I=*Qq-cayZ(XmGG;^7`my>^X-%G!mK@xE}^GJcDY*0D<> zPD+|I2SviJ(QKsSyO!}pybe+)*=jgD{usYyz^$ljG#Tmmww)$0^U!OGw`i=_g9o)Bj*asMmX@SgfRP&=`t^@?183M$M&d5$_<)~bmUe+ zx|`X2=Czn}zwltBqx+_Okd2sYFdOB-sS?TqV=h<6siNmoo`%e(^+qW>U^2?*qwIA! zawKu7OmkRKZE6Wr>sK?u$TF_6WQ3y%2{LA29`)U#xrQ&joLpk28fXbOU^2#f%RKv! zLX|C2i&@@YxSj%|Vd6cTThn#nz4%_!gZ%L%_UupV`TSCDCvBtmXb~O82CqNJnLFTK zVtb(j8M#uTax=SkdUN~?=W&oF#$FUJoeNtm8{@#O5XSh+yf}9J3N%3GEssGpz5$bQ zj=T!t%o9cWGF{C+ZJ%MdO)<{a05@PZ&VgHT;!Hy)F9`~-qS=6?XDN)BH7!coLzA&q zPMWshmEPPKvU|@+fXc{V%O6%*M+yJJ#b*t=m+W5XKGOv+Kg|(^^tiI0 zl9ddu&NBSrfD57uy*Z){nv8W6G{Bn79Q_w2inX%F<&t+4<%?`c*I+izfu|t`=D@Vi zV-(l(4zOe7flr!Z{}#>0I@WJ)AF@%Nr1>P0wi~0a{2ENgISQ6U(r7RHAM~cN+TF1l zf|usez1zasc%L;~k7r3-afMR9Xy(|pbM0{XMCzda3S?9xI=AUl(HfT1!f%z5(aYV!mGhB)! zEp6r%(Y;il4e1KYMmezELYd^ zpe7(FQWFb>hB8E7(|4+(9=ez8UK$Ob&5()k)S2Q@>Tx2m?%5&cmy!aYN2`EJTkhu? z%|<)8Xyu;8tQ;4|ZzexYAhEiVZn0#9DfymRLc1F@8|zri z(~*>oF}Id9eK}N)qgJ~HO-A}cFwACEX$>xCwvd+c3J+>*gO)wd4VaB`90!wDN6yAG zHk?_A!Mq=ht1RUj%f|Su*?KOE*=C2>dZ3Hj6Y?r$e$#bm3D;OM!YUXQ$eNb zp?i_NQqcSRA0IzH-Q8H|iyR0Kb0c3NJu@qU2^!@T zTGA-(I+=Fw4e1)pMmo4_Pn@}VC=;urWl58P;(@4ItPSZJOh!7YeG6#{qPR_FMwKB= zN}Y*`ZWzdQTZ7q12Tr7r9+_gqCF5x~gSU?zV>b$B1>JzzIA752k--|clX^!LL7%<| zOKTX7sRv$ZyKpk%1hMj?un}>C?nU=!kDGq+?E?|h z?X}KQ{KDLtGLb!=j1Hv>5Ahb0wUu52?K{ z1NZVoePN*uXSRrSL!H9@%HYBRZe?Dh$!JI6lhCF($kQvYS}KN$O$x`}e}L!0*@$0o zJa~#ka~)IJicB{G=Y-R>q}s3*c#US`9q75pOgg8@*G3aKc~nbzRIjux?;1_UJ1U%> zc*`Sy%KxsonY+(ezkqcOW+Q!8a{c9vciqX(o5QSegVphVV1_$Syvi5Z$htwZ(Y_En zGLMqEBYo0umos6r+_-9=jee8r z0K8rzHOm68NER#ruFJjo!XrNS|C zlL;8{OL{*;j)2q%RTwW$h8f0c;C%XqxJ9$k4lZ4YQ7pv4a{Op8dT-}} zvBT~;ZP8?;FZ30k@?5s+P;^`ZDppGlBo7?c9-57HENT*XJTcU(X+xT3CUW-?=^9N& zItq^wCM{fS0-{&1h_lcJm5Ef$_*}dv5-yyLcn~5B@tMJ^2PI}`OWgrmriXrW|JGnO z%4Y@F`$>Hc=C#s9?p2@g8|kK?;--Jia&Ew6oHhPcvInMMFsId3Yer=7174I*Qdnzce5k6;|FKAC1(Vi+VA88PnnEu4*aY`ST!m33Fj%$#Oi7W%7YczV%= zjksGl8Sf}KKFNC=R!n$dW_V-Zcrp;2=myNjIf#vg^FsHyS70UebDFblQoUBt4VaDc zNxjwmP*X-L8yh=ZQ%16D;r{kjy8)9iR<$);c{G3-Q$j|gnFzuN7c)uFinjsxB73F4 z_*T1)8SA-@j70NHlFWnW*;aw9{Az43@qKP&EE(rRN9(_Dg_&7`;R&9>H()l>!Hp}N z2iCaJ*;8a`&MB@lo3hLq-pIKIlW~q}=E9j70Hl7@Y#GjEgb0>QcEoaSz-*iYk5ZgQ z2C~rk;mWx`T};O7vYZ<*8|PTJ*&sx7t=DCJ`XJ0)v-=;Ew1*~R9c2Pe+Re*<3aIUg z7GAUL{f=XY2F}L&tl>)T+2c6zCTC0R;QCh`Q859(e`PgbHqvJm*O*>ObF4?isgN;c zTxL9RV`Nd$1XXb~p+S?eR#{oPjQ)#ei!qK0?eMZaXh#iZBO6=pQyqMBWQ&a9MG0{n z=|**A?4ikMMF_M;ve3>fB0~-eb#L68y7pW z)aq+TC`ehY3v5#h?K z%tmnh4bCj><0GB-CRx8F-oVL-MiyKDAYD5oW;yD`T7EGc(Wp7izefJA$Fvvo^i}` z*oexznK|k==3l!-v(b)2M|y#n_dP-V?F+%9Or58aW+hHVXIV|&4XPXo@HaD?f!rW%6 z-VT_J^jW>tyE12*7XmX+;1n}*p4hcFf;(qg@+K9Sjr2*mm6zd6^~FchZ&_hNg^B*E?VStC5A%bC=>(N-E0(Pnu| z?;cVI-b;o*LyiFAGA6(Yog`Go-^AneY1d#j(!s?GEv8P(4XWZa!e+(%d<+|zYA_k+ z3tiS+tUcj_V~!<{$t=MGup?*>&Bi*GG?f;vUQ;wKl0NY|Qd~8Gh58#Fnv8W6Afw-8 z;F(SC<*Wr9XPM=s2VPlwXg1bCd@R2@NdblksI@AxmSW4ob1zT7TPz#nvvzAT^V!LQ zF@>jjoP0Sm*oyp)ehe$+8cW7le`%#UFSOJK7F&Wtb8}m!eT8LX8pOoNcBZgINUSPb zv{`HuB`N+#bwW9NXg1cdy=LGoYg~NNGBHAi^98J1I2r9IEEZw&oNY97*NUvMPBh7k z?j6-)*$4+AF@(w99vS&k{0&QZrh`%46xD3_ZlP>+Pin2dxf-wI!q_qYSsx=8*TJ0< zL29eQlJV73s!Z2@!H+a493xl~mpz*!-1MbfW;MDO-D?KIH``ae;3H0EJYbQd+%Hmn zSxh&so>33oOOBr#44-aJI&RtBgg}Kd7!y!=lh=Fkk%wj@9r#v4nyy63EShQFu;vMBSTtpS z^9D@DIf{f&oMri=H)E0S!7>TnS(meJ&vT7sV;n@m!kEWf>`7EJRixbALzwM7>UCMh zHI|KW5CsckS|H42RQUEp{mj>Nqofu~#``0 ziJ-p)JI#DSwmRvDvfA8$**M2$8qUOnrZ2B3wCMVg2Lg5npOW^_WUQGoB|oaA&w+#J z_PQ`2)b_7f+O+IQ80?s8{%Q?oBkhNUA}*Gqa5<@`VJY)IUWTRyoEtP5=_WQ5x>U0# z7N!&_D%~D0w5RT(PN>oA7Tk;M&mI~6!^7AAa`zAK-rW82-H&fy{o(!TQ{2E_TY98X zNAs3eMMu4!&W1pAEx4EHJ~tS|BK3I77$pCA4x}l0xu?o(6qd|Qjb@`ATtC8^(cDMs zi0vum1hbQxPTK-0=N3!GI0}GaJTOC_k&kL=i*lpBbed8kbQ#xJHpb`6R%vOLjw)27CgHvzO*}}4gF0ub;X=AbvynclxXQDfYF^3Hwc!ow zg%&{)Q`3w`x*^@5*+`$%+vUu|@v(POmM6{>22HmY1z1UtS4F3J&cTcyt=k~}T4yJj!0_+!dP_NMq)S!C_@TI|UaQ|=$J6Vv2 z_vEtXoiOc&#?joUZG$Fb9rer#Ym70rSTC7!1IZU*x1QZ$rKBA&8|Mp>K901y`@Kk~ zhC|+ks}0|fmUhGqnv8W6E1e|Gk+yktE9rh>WU=dCA?X^-#`!GiCRRFe=Eb0_v}g}C zuEv2Dc_v>J%u2celaW4qSH?y^U%x_{g?m<(M$XKEVA{BOM82V1gUKjIZuE&V`7Pd+ z7EuSkIQp)mn-TWbBk!(ORr=&-8c#!}38a=>|+j zI!e8t%nJp6YP*G3;VdBaQT7W>9%~oQ#yiMkop{U8TCegev>BI26F}f(HE1^07hFr; z!O~G^-Z~d?Lz{XV33_|#t&%%%GU6Ay&zKC8HE&ZeFL zo~EL2WX&tBfeMs*Bv#T5n2qxVkD6CGcvH&DaAqDAljMzgx11X=8E1|AjVFD;tz?Fw z+Nr|!WSx)nF!4;On0Dps!r2&KFy6E=p#$D#6PU^LL&~dO;N+p%XkW12#EN8MO&6Ax zH)A`b9Hq*z5qE-9mAEaExMQJUK%3@R}kiOCio{a z(2~aL@F9~(8;kZ#aqq@yqq4PNEu^d90NX=$-#7MR}08`2G$jdTzvLYfjA3lW?%4aT5x z$`f8{+5wYM)-(Bh;c}E&d2#3spQ6=5hn-t=a71KlG#lF>T!OT?7`$;WCaRD|s|g>O zi{|cr@X&0eL;EF9ExRdr!^3+O8csDCv^~icn2d51D51a%@MPMGD`wGa1{Ld(*idfJ zY@CBANjR^}s_=~$ZCcc!{Nr3>*$Ddqk{B@JAH9OgN#8yTi)mg4$QUazprOMo5dojIESahQ;TC7@Tl%qKT|0yyaDm8d4?Ex7&VxT^M$@N z2A{LG)4Ov;g{d>JcU)a-6}5+EV||vi9$igL$~^3K^7}5C;>a#JW9O7K4p|K*12Ikxs%u;T^WR#7MY(8jmq@k)_qVT~2zDwEfD1yjxrn2fPHTvn^)X=SgfYss$N$U|xUYa6mPxEI+g zdD1u7h}RV@RH2nWGO{XvwwH)r=q#&ZeG2Q!Z<>tI&#rSafB)|9e|osBITKmM^H+WQ z^4-(xr^k11|MA0{hYw%eo$ut=Pfs5n|MbJt!xyI(&$n;}P{;F=T z-+uG(_UU);-XKD?_CG#6e)H|q!<+igAK(7-3E`iW$!hYman3^YXE$$O$}jj=`&P;A z|5!eMwQv7B`=$!_R|99vW_aT7?(h#o^soB%ztgw>_w|o=zxeLm$A`b(q<43Be>H5M z?%ALHCKW}yv1MJ7{Fx{Asd?48R|8#QEc@MhCSQH`?maG!111YuyR%#6)^`S8>mGR! zW$f=KUj04gE((@z`nv_Qk&aXT!;!*rG_sm8-E159bTm#^&ZiI3-Pd3;&KF8r%<^Ft zvm<5nexm8qRyH*YBd4N9vvEEvw+c+tgaf(Wqn%8x2^uOpvXIR@o>J0M_Nl;ZoG<7$ z+RFl1J+p@M%4FEpo#u>YS6DK}QGX)}IvjWqbTs3C4P$0)vaH!WCbCj)z-*k)nyseU zX!gjS0lHcJ^USjn9z<$(TuIA$uF+(yRdWqp#;>ib>GU!po>-p9r_l4SY-yaS!DM7F zl(8u0Fdt;mLT2II-^;bUxMk@U%f|Su)Or)Clxc44*O>)mtycH<3#+U;Gb&i6++x`% zhc&y7hD`>PTX&;KdAMH&w0G3=pp;uI8Rf=iVR!gpL!erv!t`)|?D;RZ&9BAwV*0ZO zMW^b?AKt%z_&{v*&E2m)ynFlf>hE5E{VykVPoLLjG!=_5IiBt5^{l@wN}xu` z0h3XV!Xqft{lj|#&xw51GuD{td!`@TaBjhDoa6AQ>loCvN!Ob?{O>ocWmsINLL&;&#AftfM#y(sZ%mHM(n11zl;h=RKoyust*z z?Ko6I%Si$-Uemp}c|6}6v?aktuC zW62n+E38ymqaePcUPy(i*r<_*y{3&@xjJArvX>0^gx0z<_~CVG-;JXG8q7xeg3+c` zl^Oh|MRy}y$Z*Jv`@7t#QvZI@xQUeD4dYsXw*H31veHJFX`g-igCl1X9d zdAFR|Uq1LLJyHG&Ovbs1i}{s_i%DOZ&7hVno%#&NiN=F8=w5WM9UR|MKLoQQmjg3g z)b8MFdA?#@qK<^Ou)|s3G=SJa7LqfJVFP47nr36&Bi*ogU*$Pb@ozN zkmh9x7f|%*yg`$ZjzePt10GbEr;RG!EBTR2MhmsMYTs$D6^Cq7BiXQ z*5<~gNnnd*BOEF=+iY0?;?9sjv$(MdO7cV=iK9QH)P?>!co9r*tK z$H$LPcQ+LNA`5OEMvZ$D6b5b=*1foO;TGFVhMyb#LRp@X5A$Sdf<6t_;;V#x@{aW4bcXX+@9C7z^Tg)!v%EmXoSmW^=e zPK}IrwZnXhfJfFgvDn!aaEoQ*8)`J;FQg;Mai?gnV#d#6whX9%TPzvjINqhtpQ(vn zFeG_O#xnQ8Fpvh!MmdakrGvpvbtyW{qYWm6c6O<=%Gd$3F%AP>iewBpahDk%Xl-CI zn^6EmxdoF^KFioV%qU*uK#fegv`QpkrQ9>WESNV=hOz>)Q4Vbv6BEhVd8sSfm6&f! zl3LSRM#?RijB*?b_5;_Go8UObKD=*v9B9rXU*pNPf%c+# zosj6a?|yu4l>O@I!^6|p-=0o){w`T+xlHIaxi&RMG*9AG;&rIR&Cztwy(IX#0g>dD z4>T18?@`ED9PzWgObti3L9?+AjWEsoya{#RD@atlP!OcyuG~r+SvP1h)^S`!cQBpa zOb;x?iiXn+JK$BBRtDwVV%Zpnfe~eT>Ly;S-`~&NO2^K#$1RqPaH!ZlK|N?Y@-Bx$rvSYaDv??ZTL%9Z%QP#MpL`1wD>!8`##%7uk4U8~WAr{hfbdb+k8EV^kTJ6HwXvfA{+Ry0TDB?7<@lWLWvtp{( zNV*1-QN9ogvQLewg7%kL%8WY2n3u1yVO(L^2%luE4x=7tR?D;O#N~@(vqPTs^Dg5S zO~zTzqhU)~|KPb>QXVB2X*w;fbZcxcrq_;tZ?YuFUCWC(M`LjzR#x{gb;eOx2i!}F zpBn>95^Cb95%tbOte7QuE$kfUNoc`Ta~&`n>EQB#GhG%;Sn;Z4LTg^^IHfJ+EtZUN zv^WpO_{LPj^n$TMUTFTPzu4<@4-boTwfa zaU+T;E>x-ebpy?E22<%eU^cQrXe9b9KCwFq>(zLV13As^b^r&=#yP&4CON6I)4u^L z`q>vZi`8Pu2uD#7LY^7W;lKJtcWKbF6{U?{S6DX2XSG(hN{_NkCm0e z5({W3J7_Y}`fDrOnQ?Zj?P@KCi>Xhf-FX)2kZrNOs9q;9`qjI4Pj`QK|LT|TetdhP zo4+Q=R&5rN1n-FsOg3|$<8x>$Y%jrmZY*@pA~M;ksAJJoNYO>ezFJRJ9WWc^;JSe^ zp&vbCdTuS{>B#Up^Er$u!ZKH2GRhY!feh9-GHue4@`0FPI?^;)FhjWovrss7N- zOpZ~%QpGH-kQ`-&4CMyP#yHSxahG`*$kucx_>*i6y(qJJtzam(U^31Z0$v_d@m$I@ z$`vWk99IHEQ!G@K@PWL3POaM^m z^0<>oc%Zl6A?$$3D68=)>2xALqC0Pn=s9GV4hM~qRGA$x8`r=}BVL(V&EWDPLL*+8 zQpom8U%U;NjdEb7p*)hJqi)|)meez?NM>%13c1CS5sso=sRYrrF?uC#dR%!$*PD@0 zmT-+_BYalsCfJ2=e`IJ~uz#9&a#GUQOIj&&kQ+1^X+4Z;wWKX@3>s8;m4mOX$J>zQ zb#Ddk#r2BO?k!dT8L>F6?u2q0U3q3i(V*BWm0yePCBDy%c{yfG8f3^KyCp`y8-tk= zv{iYR?P;XM2Fpe}ym%P9#sEHVk|qs-6SFkUxEz&pizOp`A?l^H&Bkyq>qwsc$Xi%H zI&i>joI{7I!+~69GgGiQRK$Qh8>87wZ!DFv17@Qf=(U_?!aS~9<0)Fw>v5(@)-z!e z6<1&~(iZ|>ae!wQ#T3(QIrHX-NkD<1YcLz`w8M>f1X(2q)NJw?m^Bo%~8QnPIm#57<^lfbst#cz&Gxg?G={8U{ zwxMv@{ln{vmMrbO3?=aGZi^+O8-={Ib068GU{*vFRVI$_Mrr5v%#{OXV;ls$FlKWE z{g17LrQwJ+rO6##=77l<>oF`<1V&RY%(Qj1`4x-hq}SISP3M5wxCXHwwwX#k=E|w$ z)7r|!Bhp&lZRCL2D2En{VJY0c2ed_njW&fnjXM*|LNyC>!74z7@W*Uv9F#lM%7J zGx29s%Lt$?mW*-~B?x74dAe?bZ zg=*PUvpqB$?Xz;Lm#p_LeW7eaFhxQ6wvnrOX)jfvQTuHk4~H8D(W;$nrRaP90yqG`5rb zF;6)*Y#Vehx>t`IZfl)FFS~k};9GQZqpyr2oTHWVYX$Blz!%00Oxq66=*o-#{%~B1<=DG=Y4^2k;LcGL?9QG@i2Faq_ zsyq`$q*Q~+II9sdWGB&S=Zd1FHjZ3h?g$kJ%*Hh~*8{89s0eBtWaNt_Uyu0Ku1+^# zHqNoR=Dj2}GCiu6GNmM%MO6jVa&i7^Fd5|w0n*YjVA5-*BYib+BeOxnm2v|nqpZKR zo?Bmr`#IC9e%f>h`!#r7~i<_#xdJly#(?b}s zNHE|W(-uocI0^^x5{L!3Y4vU~gb9vmQc|BpB}{iig=HfgI2YpfB15w(qVN^14JIr$ zP&T%qKF<`)uuDZ}3tK6c40ISSR2>Sc0(RkKtfMdx850z(Cc0JDtQ(_|gJvao; z9E5=cHY`T5r9fpo-7}7m-a9pEM#?Rijd2hJO5BV4SfptA%6>h+2WgT{G>au;t9;50 z%y=)B7@0F_nKJi_`mlE+y_)W8FdNsvLW|{*DGSV;aHKo()R{V%tIQ3Sjd5V5C5giW zel|Kew=lheh<~P=w0sS7ep@gZ=Q#Qs@GO~Vt(Q+xY_iZYZc;yn5^kVmbX79N@*5l;?Ll^uk1IOiAHcf_t?#P&T^3ZG-2;>;XJUbqI?clHiDe?0Rt34mD6Vy1`WgUEZ%UTA-+G zVaqMV_IN4={=*XoO~yG62WXy>wq=hrE!qn!B3%+UaVAX3V*I+Wrj*HB+C&sSnF)dW(RZ1^=67_H^RR_#QH9W+_%G_}-qtq3cjq*v-9^(!-nboF_pdm#a z#BJl3Q@q8J@on5>4kO)x@-V?+3P=f*fjD~hjc^@wFSb|rly9y^B2L6Q)5Yw_QCvg> zY&w2biY>O63}5IjGq30L(`fF=ZR&dZ#55;SE+8BTx~c437^U1|$tXt=0*puIobupa z&tqXshK-l$^s<+8tc+VM8{@N#RgfCQ(^$akBCk7trdG}9MKhXR8MjzA#-WQrUkMKq z$Xpab78x^doN~1rCNxkozHyAel2*#My~@7OooF26Ybc`fZJ=y)1EWQqli?xUx0<>r zbV;!>Ks6XmRzcb5p0!!MrQ$jAYK$1cq>T$*@s;Q`8r(V64w#Ix+S$T&SV&v=wUOa| z#EKawOI4Z2+ZC3LX<(f3|5#+gd!g1)N$#AmpOtzAGlW|(8{^nGGkT3KSCe^EeI{{C z>65U*=UjuyIA0n(KoXtpX(m;pqz9R*L88_r-GbRjpH;hw|M0Z>f&XHVnsW_foEW{% z%vUwyM!Q=u8)-l070yTIr}*W2E+=W;FgmcIT!YCds}PN2Ig01u8Lys8dSoexs>OzD z4erJDN_W`SdLq@%Zh?SxgJxqL%bJYb$}?;wrmSVnGO1+W z&uGD9oTESx{gz1~k}q~7&08_)i0!>rZLZ@Q%*Oew-QF$41f!W_tB}f>`}n|=k->Zr za}POaHr8kDZh}H2%_5)WxSE7yVT~+#^~aGeN}!xuEE!|fTs2?Pjlg(`LZ>ig9H?yS zGNFVrZLw@j&l;^#Qo_7^gR`Mk7*D(cBb}?3TnRT&Homc?CP={icoJp+Dw7CI>QebO zP%^%kqCwVRti54X`M!?*^MalTOU9gr|_f6-mlYuO~uz-sk64dVvO zM)-mQ$(_SCW`{5tc4kR3T%%xyaSLXn9P9POLshoS6F3x`uEAuKF9iFv zDljC)q0CHjDRLV~8MjzA!e_NsS3zwxQ(>64=Gp2aZ5Ve1_>LYKe<* zDQB--S?)#LV%Z1>HX6b*!N?9JD};#w*eSO#zpL19wO9_AjB*s}OT#h&FUu74bX(4- zJg@Ypo3;(eNt|hbkAd|&aZ|t z5{7|K;grxCOvc%}iAg>)s>}@)DgAZ}^MKSZF>2j{dy&0TtbcRM#(1yGXd*_tI`z-KnI}63+)H+!8|KR_7+mGv+dn9Q)t7-`k%nOTRgAexyrv31e z&bew^EE(Y_$frCn8`X`+Wcc!=h%%90!D^529xE&x-%!Akw&JuFAr`(oN01#&!APze zOU4&(Nq(9u=Tz@x-?RdSFSStIN>*QbM#}-SF+NLJwX^t9%s*vGt!t*)M2yW+2TL`Y zgHU0~`06jML=TMLwyl6gwy+@uYoxv*x`ndwJZrKlrJ*}YO;eFVR~k5G-fGYnSKC|6UeS25FJ#E;Q{4dDt)##g0O z6#87uHhpuJ>4BQkQLm{D(+b;*>CYYt{Py9`Pj_E^`|gMD-aLG``{lbI-@f|8`_l=2 z|N80MFYZqN=hxr8{`m1Xzx?9vdGzncuRlD#fBNF?-~ash-Glsj_aFRoukOD7;lsZ^ zeDQq#KR$eTeEr?yzdgM9?++h7KE8YV#oZ^r?fXCe!v2#l^O2wbwRd;V!o#M><^!f_ zt6Wuji;NUpjbM%R8f-7=y^JWkcFsS_>l0-j&5%ztLwJ>N&&iZ|DH`A##x0nQa^NgV zVUL+qN0UG`lt)_s=+t&AyL|&Dqa4Kp(o{gr4>!1IyrC>^1uKcv6|quoz+{xef{-k! zTqt#Vjs=ly$7N(nf`)PnCZqg(l$F@0qfCjGH8s5EZKX^tlYuaUnSG>;TPzvjD4~p6 zQx4)jb<|q6XY=GjKZWvbploz~A4(nx$utntby5!Tc+Z+oi583GE!`SR#@D-(*j&nd zN43I*sf@XVk9#Mz*j`Mp>_h$P!@IXnum0}!*Z*>oZ+16|H_4cxnL(yS9gF)8_93ZUFA8E@`7xjKCga=G+EGHWU{J8!V`ld zd2QngxWio$TnK zw#jOT0$Ij2mW*)}A;6ev7^D`x_fOPyj;z(~JiFUs*%$}mfiONWpO*KVMUX|t999{Z zu3m$Uns#f|C+|Hg&3gjU9=01q7} zE@cf4RmvWkjJ5vS&vZ{p&8!~gpD0!&EKxig&}UQ0HgsDs8{61cvwC(K4zqccYDteB zQ;JN3)rNEpCL^+D|Y!7dOqn|sjy^(qls%ch`eUwO@VXE@-fIm zGT2o;EoJP0*(irHW&qc0yAO(prBKMc0XLh|V#)YMao{-y;Dtre+YMiy{FyY56);}P z21~|QwX%dl6O#imS1nNq8%P|pgUXey3umKyL7i#B_I(PJwm;c3b-YxeExw%79-Z*EwT z*xw`9jc=AHQqO3t8ncc38gwuDeZJ>NYjU^FK50q|^gEi!Z9}?2vyqN1F>@gv;z*IQB$#=UVVo`% za*HJ+tme2dCHP@?i#JF?7Fa~9-diji)6hs$2Bg&I^?}MlIJWPa5x!QmHI|KVXrg&P z#Ed4-Vxg}Kc{=Y-YM^9vqv8-z9*J~z{;8^)qswfYfyG-T4X}}Kg=HgrR%i{^%L&G1 zCeZWx0vVLP@Pf>JU(#a92s;e<*Sz*ce@_t-?8q*73=HK&p zv*nB0(hA9qVhXw{Vh>Hmxv{>oP=={2MuJ7SLWl8hJU-A%cT2WL_ab{;`+I{4M+&wh zp`3e#GOJN0r>Qop45j0y0{0T(3$1Y2q|L9s(91}W)1FfFmPmfKN^LneU^dQyU6N)Y z8Qh|hEJsxYDUY1o7uF7#jB#|=3S-{;(CX$1nWn&w=&e9j#x<6Wa46z|`5z-=PYSCd zV`&#!8AI$5Zn0#9h<<&0R5b(o~xI%sT^>odfPAy3hBNN9Jp>X;KevF-SOA z6HndjOGnGO0kd%q?;TnZnE&BjwoslILUGEErWw8XIZFFHy0Ixy6z(b|OI;n#QvrN24)XjA8bsJcVd0r%p1#c208Z(sf64^Jn$*=zIX+zYX;<0^8`ka%5Jy@ITc*4SQh``l1h z@-M7RoqfhLw~#SVmT(1S;~QKvLYMf*^Nc~3ab9Tyb5CXiCSx2$xx#p!8Jz6Kx!fjL zPc4R;x6JH9ZdhLMOILDgJQ)5h*=RrYh=J^`| zfzP=HlW~qpVaSYA_q;AnFs&E1R*R$8K~dV9;IN=5JPD zGS2D>KYLP;ow}uG$F-BBd(OoAO6`Ez$i~KtO^ldpf1u~W=fIph=U7G(Z?R;Iqfkgx zn)FNl?iwXt z{mZoAz<*>C;$-|R)mHHzD{wCXzBCfN;6L)lnuqk|YEf5;7=nr?LooDv7|srwjP!-z zh$vy-w_J^7BOE&yyz81I;`bQyw2?*7t1;3lW^7Y~CSx5H#KggndcGU? z12Q|Ed5CJqm9zt9<9wF1{_=VWF`Ssl-;{vtfu@Clnu(j-fpmjrV|^hy>ZypC-t9t~ zkZ-11<|=oKB_pf`O65zx_9A`2-brRi9z#CO0~FP1N+va!jqC;M#S%^)H9D6RN;@1` zFU1Ur@<& zW!!+t7^~hI@ph!11Dj2;WulWo|C%M+fP0a>c3^m8BTg}?0|SN`+N13VMq#^EUS=>% zz&)cax|bAR8XcYulNsQus>?d5g}k#eGqibh!a#Y0S=DX8Y^39hSDqG8Fx149;ml+O znKlsErW#Df`9eg@DqT7;OsU9nCWq&aha|$jurn`fSA1P#GK69q}0h){JtcBg=pr)(x7C z^;yH!R2kOHm}8)?Q$s_CdFVXSARUdzY~f_QpKmNBXLwU#VauTtH_5@~y|X#=D(ea&Yes$u8gGtsD)^bv1<(TVVIbb%tYv8Bs14Tk1KzH@_SqkG{b%aXXomvK*DguJyY z3b2uJgC-*#O`#BzP3@aOX6is$QOh1}=4pD#chT$`O~zW)*J$=>=)RwLmr|*0mT+WD z$*BhSB6~$w^2XB8A_U$lxPxNQMtUhb*OhFsy=3>fjwFnEx4f|Syy#>(o*Z398BhL{ z7zfP8Ik3Y}UMY-WTYSpwTb?wzp;lNJZ?R;ABe$7s6eUi4CYLZdEIi1d7}$W>D2FnZ z-84Z&j|raWnT@=u8cjwya+{yk8t>Lk6q2vZDX_P-@vnG7D@RcDrx>^gC-;01Pdn-)3E}l z!pP926OSjsX5^P;+kn}~p4D23sf01tB4U@a7?U6WK}dx`IJ!$G0kFUQ3T2T3Ro{b6x;F|}AS#uqwsXux7^r}4s#F!&P_Dsjl!L%XC{M%0lR8Jtr!hd-ub_#P0YY0a8RsT0 z60!`tnwY^@&T2Ww+)j+7XKz!1RK6{ijcR;~rAQ`gmJ2Pzn2z>kJx0w(HJFU^h58BC z(@IaFlh%>Tdgek7l6MW5jI-*kR!~=ZQB7cq4q(X%F3t?Uh{STin9M zHH+`qn<8eBAL5%<+SwQ1BsJh((tD}L9M~kO{4iwUXr?R}%9td!q!(kQ`YIo410|!& z6Ic0BJ6pncUKJr=O)eU?+&H+=?zlmT>?<%Cv~t0A2U0tI+d?6OC5VmN#O*MPK)j(#h2c- z&nH#6m6Hlqxk-pJcJ{sK#WbL0QQvW++%hDXT8kGSV&}RBPDWY}rJ;KiLMp`# z-x&eZyI-vOM#L2Vx9DDMujE?Z+)6S^c*~K}yRWR2K_&3_WmkiHiSBd#Nhq@ukYZS& zrTWS`7eZZES!*a6-Po;S1i|9D7u+iIQR)SH9qHM0z-)v=kBWB(`$#&Sf&s-8Z9|E#uG50E^wV&I2-HGom$!9x|+^}a*l;GbJ+b^{0^9m zu^QuY$F5A<^QYv{xxvsflM=8R-GIrM#(pE^t;0eCd#lnU=jfhe1f_4c8Za4UWu(F- z7;^V<;Sf?u;Ap$KR}bBb>^1$TTUv5MqsW1MY9{|=jL<@b2+?Zd${x)I+)H#X^q(S! zg0al3OlLxo9zR2wwyBj_Agbh+aswu#%yJj`QDV<0^hBAN>VrClg|ftKy!~SsyLoq_ zq+K`}?WjZoZDzBv6;Tz~(q@PcQ*n!Z-f*t4WQ4=E3sjpVqpfsp2-8`^aN~e+1tz1c z2U2xfdY|l&49k_iIMR}?=|ZI&bT76)`?d4ihd)0_(0>2>Z-4myPxt-ZS5F@vp1%I} z;mt|RH?U-F;8hz=f*LI=#*Pub3_y)s{~Fy(jGuc2Npw1lWWP0zv#fb;Pc&r43~X#u zgC=7gMR}Y%CIyf-_s28Ij_q+UF@lojimJhEoTHof#Cft4)vTap?hEs(+~7xU-Ud!a zTkn!jR$2H;Q?gg6hY%A%HV(>0#x{-T|q%fT6rK03hZq_1WiS-D48F^GNOSu7) zQ4Spq#4Jfy+tz3}vs9kB)%JD1CEcRQShv20(B(}H&SVjzrQ6Ztd6Yq^1>Nv%;k^i7 z+uiu;{fCFwx8Z3>CW43LJk=~hG9qL}BtHsS`PJB7!h4~UAqJJ7#wK zv|5?ge$HL$54}2bKQX1xSpk}=1D2b&15%i70S5GEW9TP z>sG%!G#P0XqhU)wg^F;)wO^KTakume*Baf6>$Tme;l{EybRf|CwjMR8DMFN}b>XV@ z71l%d65!Ev*y|!68+?ZK9Sr=Y%xdk7j$O6w* zs+NuzJ#;TIzR)nqrYQMoboWGiq4CFSN5&;)J&`P@aalKDHqwF5bmGjMELPzaUdB8P z(v~{~Nw)?}#`(g~59xN3=i)AB9?r`Xse)OH%s}}qn2qyUx3y6F>@A9%C*J0g$56dD zf@X{wb9jR}Y7Ll-G!NF~M~PX|^dNL>w=B{$q*)EX=)mCaZNO}#gBVvNjrJaJvYbm8 zFN%fJOxY^m!)kYpC8Mk+$_QAdvhuh~F(Y6iTrMjr`7YZQ&Bphv*Y06vUlc=3&7ht_ z8wH?8ko{U_+Kmd?L$lGoa97dI%Vp)9W_ZoyJLGAYBWw>%#yScg_|;*|969d|x=0g$ z#;!Kqin;=`aXu@!9#3`=v*gFmdGhlYS#hwgLAdd%Y;}H*eoO{N)x~j$~>U zBLQ3)^5=y5z8B3?qb<0X3||-`Ms*_0Eg9y1v{O#ZA;k+hvh|O~^YTSDn%lz3c%RL& zsru-7ofck>K)o<4yyb%8*-6iW8a?RB+l7JVE2<~)c6mlkY;jaL2z`exx zLW>+tq!P*p8Hetd6L@1!9fCuue#S;?TR0i-sETst%`9!#9{2R8^SIn?S>SKBa5C1i zB+2Q-Igw^b+NjdB28!^HwWNW^QG>}Ct5sEN%r4!Ter|OpELkR2ahes|sC5nQMfTdZ z_}1#XGHpxpFh)*RhBHl8{`N*O$Q8Jk3_sH#OPQ8IHj6i28df~yL~+gc*ywG8CLUn%oXj$D}xq9u&DW!}S)L=5kjWHIk zh?mF4E?3O$#2T7{ZMfFpUR(rGfWJQPvcHxnTQ&j1?@Lq(kcNhKc@y(m>9&RyrzA(;%cLl`=6+vQyc$xuRAeCZ^ z?Ips`zlYdGBK2A4oXSPSi&fIL%An}NFgJvUrmbKa{ zy^kPGK~{5aR=bA|y$>?4bXjh}Y?Q+cB=c_QK`}E04CRqw@l*hd-rMtBW622XZDWK> z0|qXILWXLG((;hX^)(sMfDR!yeZQ;w;)PBe!x7Erw|wMibDjIEj;!**fm znQ34xY(=GMkzxd~{xxOmp?k5tx>35l!idakp-WXIwGkuRSY}cYKhq@ftFvo@ zHUlqil^b*D$)c-T>nU}>WSlP~D5Qy#N{~85_P7$K^XAQTwQfi^XfoCp^5j(B4@^OD zS<72FIu10Dx1<{|8D~9|)=NBcTJ?S@5|-22vqgn@yk4O0!h7+(o>Bht@$EOam?dX^ zKSeFCuL3cG5zR$6YlH43#TVLSDNo9er@fp~G&EG-!^}Qox9|9*zBQbU_$jw$N*{V^ z8KuQU40GX>V~e;a)^HLPI5)5ZCgXhJEpk7i;YZ&rQ_>}#bs1MsHoj-w*1N{Yn2Cp! z;1x15=Jq=BuF)l2W62m_$VcI8P?&Y@BJ`FCwaoc68FYK`wrDoeXEE!UG-77T5N?!t zOj6{Gk>WfYNu+zK?V;IdpDmdF_LlZIuufK0c*B~gmjMD%69&U2DmWQ$Rbfk*@yn#- zR0k|$Y&Ic;=@C@*M$QeIjqe33CPvJkt|l?nI+^VO8_pG$jq!!MS^5=dzAwhP$Qd)n zPyxb+=*eb-CS!e}s>@?PikQ8I3WhaL-bh57H~1=OEL;s{<9ya_jqS~m9@mA{=B=PP zvIo-ZL{6#&%GpD+kq*ncGESjm<%3IlWW>Zs#kznS(hZu7v|45(V)k1wYgyxcqt@NP zxB<2?dUQGJ4Z0WID@Vt-RoG=(&rG??KcuXWr9%Ow^%b^-_Y&a?L*omt{bq*oQaDok zV-=UeE<0NyXSzX?vG%+xQXf6{PmyC`i?QXsH48sXkMqVVHE1%no>gKEB~w4t?i99| z9kQ~tj_Eg2vJSWx*DIT(+biob{(#p^p;hX+bllC>s54fng7=c*ORW+)a(?tMK3}KO z)3~x|Mm5^#E#24@y3O1KtG5l9jd2hSoVrsdW<&>Ocw~ekwWDISEN3bZ6`G86^r}Qi zue{|9$0Lxqw5wM)q$if#Z_s3<)vgw$KD{(xK3s`AR#L$k3B^?G0? zktzLI%AL$C#=LoIE#|9%laY=pgJQl0axPK#R+Po_`8EsY3qS;(h zD?yv;eBp~2xxHAh>j~Kb_u_hGKjQ{_H84y}ky0@g5poo1wP*Uptl&mt8+0!rzSPYK zj1$C`mDeJkpCP1aZRH88CaSiiYcv_@b27^K6Pl_Z6@}Fu1D~>|4oZv^(5BK~!O3_> zMp=Z-Q$CnGyb*TKYjob5l)G7l?SRQRHx~IsR(1k-WC59FisnZ-#|GVt?)8lFZy%qY zZu3~-Rt_%IHVdpTlTp?k5txsqDDgYT(eVK3)R5MXh#-GXw&S-W}PBWb7*;w!RAI2|69@xn2fTTp^{=GU%|o# zvnw`5y%FSb`VP&b!m?ChLQay}(wM&{@Fmk`;SEtrh6O3|ES#sQ9|9jtJbONa?$vPCMogc^7+zE{75ZY!Bg zuQ|o&&TOD7QWTBlxd=f)xt!FIaKODJ_`(Z_OpN@fZ?B5W#X663uqT*))rn?SPjN-9 zD=-=93-6I}3#lATTHGmumgBli(%Gp|qe|LCv$2kSjqb24%t8-FNJJ3mQI1h({r)Fe}ogFOUQV_qLu46}AH=BYojLcGt6hkVJ+{ns}IQZnu()Evvz7 zq|XZOUBc1|MX=`|Yw;^72o@z!L365WFdOHycDEUwQ-sTqQf3MiVnw^*#mjqY2nE`3 zuCQd3^`bR*70DWI9W_x~s$5m>BZSj;*n-)}UNG7`Qk2ar4rzo>lboz9bOh{x*+^e7 z*-X3{MsEdx5VqwlKrY6?6k;BYoCxy<^RZ zrhr6ezCwjFhqjlNGa@I4w1;M6eNt~_W=K;HW(TS1Rj{m?tH9a>cfvNT8#Ebf)lkcq zC!DmFsUQnq5i*OCkH$~YJIVp~Vte(-_|_U3P(3apMoxP}jYKb*jzYVNe^hI5FDbq- zI==7}o7w*)B+bUGqPfBun@rwLJug*V4^75ePotjHg-h3VqZGD6w&N5>E2UaA8{62~ zpv{vqx5+sd)<}_-{c&Ybv#;0@34R`0Y*Bxv-W?W<2n?NbfFHYzIun*}H)d zqI7$z6fIdgRY-ujkppZSbT7JBzk+V9RR!;!X;eoR{guO5#K=h{KYL^WNf6*S=w4!c z=^YeAfI_;XTIQ;5-_frznW=mBoHk%G#!-b(7>mEC*Q%8=d*MjaNA>&$O~&~w*qIb-#q-~78_J3XZNI+-BjGT3S`zJSTQ!> zUQ&GF?Q@|%IN%AAgYoYlI(!*s8&&ZuFd63y<-vh2q=RdW#m^uHCLyb*Tm|i+*;ogD zhJ-rOoPIP8RIyTkto~U0qidx+G#Tp)g)+ijS(V`Gx3q^c+ekeT6*XU^2D5RFYeq~u z;Y6Ek%|_BZ5F_isbl2i$D{YZ=izj1#p%05)q{Q=n9~Oo2k^eHuXypy<22IBLLaa}} zZ!d#wi$JZsX?CCaDC&nPYcUEnnvHdsWygO+(8kxcr12qH>S-Q2Z%8+2GSVtYP2E9v zV60CoV!5%%>M?b@U`o~j_u_hW2lIxS&k%!bWilNZMOiyfYUR)N64nd-$VM^K6T7+= z-ddptlTXf*Vx3+H|JUeZc4k*s##>AI;(+itkws;G%6I7c19>q8^384hh`%k z$71X_V*g+ib+ac*)>muBX+xW(BNd#C_k~D|_>%zvCdF%|&1efoVVg$IE$tdj#=7x> z#Eg*#A85ubhjv4kCFOLWnl^(i-v-``@D(ql-#xy0bBpuedJ2uqr1z31yfyBrPPwm| zT5K;FzR-0KZ=;@e00#7%v`A51N_9MxA7+zJQN?w@WR$~anaG$*^K2$=7RusRu)>PX z-g-GJXAezAIx4%qf;4$=M&7w5iZ-WJ=BpNPL%Kn;k&fmNVknI~aq%jx*c@4OP19Fkks34^Y43o}?DQr(RSsb}pu(2PvNWBVo@z81>BuGv>51&4dI}rPBW(lhU?>)BYols38Ry0% z3t76rr=SgjY0+)IitG{_ff zBNLPA@e0)d70%)>FmiTbTdL~(R(TsZ8Sls_Lyh^zQAEc|3NBdFnYtm}pvgFoK@nn6GwpX;tUp~J5 z<`z5SPt%@f(@$5#h|aPwht6WJhUtKN3Gsy{Ijj*d-;S10Uf&e=s8B{XsZ@{SXk3lW zIc?Bnq{A8kqE6rQBl42w%8>Wa11xCThB@m?=ct+JQ1g1u85X z<8wtswO1`NOK%qQs9pK?Ors7Dr8} zhwf!kKKI^`sN=}x;0;v}TRD?EqUIP}mo1!(_l1~+fSZ({V|ax2%I0u8`dEeSp~*-` zl?;A$giS?VrMYnuSOT-~99^&5E$aqOMq7Vxb>tb4$qFM=hqHv~mhV<7JNg$lgj;wo z!dJA+x4Th#qLatG=O}{2Y3JEJp{e@&Dny_`I0)}f1?#1=`7WtMkEUfCGT6zq+;A!ca znYir;Pz+NA?j^t%T4PNpd{S2Omtt$99yRj7BWsHSvNf8FZF@9@EfZ=NMayOrd;GmqSTAU^31Z3Nu7F%p&l+qzP`A+oY#?L%G6|G1g!DlPRWR%)~<;Kr2*~ z8VS;eH_JwsBKr;52HlJ9^{vxqC))TG|LN(&FMjy&uMZ!;xceXflP~!FAHRD2{rm48 zzI^@k@WtIhlCj_a@t;4ue*e37Z}@}r|NnRIet7%l;}@q7{{0_+@$mNP;lmeq|Na;7 z|8n=!>3{zl|NB3l|AD{%%M<@d@DK3!zk7WDcaLx1(B1KicW*x;pQrP``kRNh4<8=C ze#V~v^ITi;$=bbt{q*hmm%QWW_0!Xb$3OibL_T>XAHV+a_+EaMKR8JOnKPXD}^$#DP-hKaj{`iZ#PrCK^v3#&k|1tk(zt5+CVV2+LliQu;_vt@X0n+?J zpR&VgexXk~pXL|(bor+Fg+6)bX?~$k_g9)<=uI?Wf#W~od2e3~zm%~FrqeCqN9EsMy?hTAm1P&P|l9-^fALfI^J znQNBj3uUv^<>5e@FOl+CA}vgN7Ew!kb(T`IU~exYoZy1X#V@`cK%;xxZd zwpvGd-JRwOWvg|RPPzZp+}Z6!2m?|0ReS;yyzuXCHLfPQS)<0NH-xye+JsV4>L&X1 z4hsza;HAlTNn6U~lpbi|oWUSO`zUQfTna)5w5R<6?P+fw$e1Cct;_8Hb__zar@d+H zF$mGtWu{)kAVgc29nzTE5>!)$%(4by0-`asX>u?K(U{uoFEI$wnA-kI#vnvv>LVIc zn-2hG$V|(D35dqjrt`)iL}O}8C5AzW#?&VC!yrUsYISVi3OYDH5UEoGE+X3J4)wXf zVMN=kR@Z(UMzrnf(N>K@keQiaa3aESHc&`~<7~^3jJc024-h9J9A}%lnS&9Iv&}b& zgAwf`V`hm=F&N<_RT)lGmElBHny-%b4v7;DjX9z?a}CEwd$@NP_>>=w~~@p_P$SzT0s@1`;gVW#73JO?{r)3KA){tF1d}|$XcRQ z&vG3aX?ytX^YlmKJLh|ItE~f8Dq{Ls6zaZYw|md``7%1Swc3WeT(28RkAo+a&#z=7 z<#>4d{#;7eXe_)an#st=7FS`oYB!~|UoAN)rCNP&v@QA)&+*Q$6BH8#DO4KdpLGvU zW96kttv$ZDswgLW{@P%o^Qr2#|Bfwvej)DVHO*u2a}jmq8p;k$3Wn^rGE3&Ok%MH+n1`YUa8Fgq8tPw}#PmH+?% literal 64808 zcmcG%2Xqt1_rEPuP46XCLjs}K&}{9D=)L!93>YxQ2HW%iqMP1pfY5vIVC}4^q1Vs? zgkD0gAqmCrd{$a4-L>F*&inuE$s=p_(a!G9y>oXZ8OLJzvSj`8%u>{&BwY zRNU6p|JXzpd!)O69K+X+KZR*~@8eHt@_v?D^8D7zonm}b!P~JH*CLP4ue2N=0FN>B zvw8Z&`uOFPePC?T!0RJrY@gWDSZ>=xg5yqW@_v?j(kc3SizS_FvoDVrU-%kspI-h1 z#$x!Uas~R&AW3hN5AFs2qCB=R*~al_lt2CKZi(mQ{4!yk)6;vOUuJz9Z$DTzaenAO z3%otvC$c25$Uf~8iC?9A7?@_ddS-KD=>!-}~^!@%`Y# z8^>3`3-SZ` zbxgM5i%C553m)TtNv_BF71w=$d~_{F{8z{(wl5(`D89z|mGt3_^DE`U8|NqM6zSh} zd^hEK9A6oe_a6VUKD=>!Kl$*+@s;!8jpHkC@=5ja{Y$RL_{i%V8DE!w@Aega_+&CD z*uIjbp_Ljh7hpH>Z35 z4BOZZi@vAmZ(4L)AW=ZP)l<%%8_SN*LFZ;yY0pBxoj-x|92U&Z9T&%Y|X z&2xM2^REUUujO;^^RI65Nh~eo23_6zuK{n5?*R25_b=hnBYrjEsSkNXoNzAfSH^1;2(__mVkzjpqu;f;;;=icYv#^k-@ z+ZNs?AKVM(59+^BpKuT1-M`Bl^{KtdyY9a>$c-?*9pLTq!M)J=A1v2<$KQMYcZ7Fu ziyxT(`{W8^{)b?l9mciL`>#%NwWl}o&$$2UZ1Udu*9G1tAKVMgzfif}^Y}dPzc6>Z z5>M~Hx+UQ6%lud@*Qb_r*L{F|bS?Dy8YWkN?fNRmDM4>szj~Uyynf34u_u-BGN0_{8|G0m`{`;7`_x}6(@W%cleRyO4Q6}$we-y2I`QTpY{ZT); z-ZTFC{gE6$+#lii`|CbHKDrhfzX5Xf*Wx$Ohc}LYkjcBo5BERVKi;b()c*>(9`$R8 z4{wa$&py1d|Dh)DeSb4d_wvELVE&=L81-YgT<<-8E^pl5*iGL1{$>O`UgTb6|6bR} zk#fEF{Pn)RkAgQg)}MP{-$$FgtG@jvH$r_I18f1PYV`KffcYTY& zI(z&JXnh+`JgsjNOy0Y`O@z0}2lqnj+a$T(^Z00en@l{dZ&MQRp7m|2?gQkbYoYUF znp~Yw{u=o?-G?{wbB4)#*SDD_?_FPJ`S8a6XZ!HR{^yvycYT{{^4|NO=ffNO$NTt% z#>d$I0+aWyZ@=hXKDZZJ-xkXCp7E#kZISK++*{+d-p7yYSVG5V9RIIAym9pAXnn(eyvNVGzO6QS@A`)0@SOj&zO99~ z$p`m>_a~^Y#^*!puG!uKjZ%GknRKATjRCf$A8#|H;(^^4{sd*Zzk_u z-;SER_x_Lh@W%d+`|!s8Pnf)SeLJap`QTn?eLE%Bdyk)YeLHRP-u3Mayj?!H7h2!W z%Jts!*So%*gEuzTpL^H0^Cs`AZx7@~sBahG?ef9B(E9efT>rKDb`jp#Sbv__@>Z^p z@4M{iA9>{2Kdo<LmG15G(Y0Xycz%ETTCS$wuj2E!?6QB1{~LI_Yg;_h`TrK{oG`8hpFertU%iv7 zz0W_frGV_)nE!vn+g;n@5udMN{}beM>>qjL?Y-Z>{sV855AKED-~B7sd+$G)rKEfR z>81P6Q=FUEAW3 z<{wV(Yv=C=AHTVL?wx;$Ox`>H6T{o%JD~ed0&ny5-t#Z1sekYNqYlXbzAT8pXZ|No zz0r^nwaa|H7zmGqtqzP~|!*LM5V33&N>do$^?%O`0} zK9T9*$`0=|wni?wK7Tjf z-+ia=Ki=d1Vw>z6^(Tj1ox{|>>-!BH7semo(|InapZIO&ssz2|>2ulkVJ7nxZ@E6=ZKfF!iUX1a-DLvxzJ-pqp z=+k@re=u$DJ^lqu`%hxQ_+b2z{{>Cnd;b0?z4!Qd&)-7CCz7vziDQ?Pl>HY*|8|Lc z!TDuNEWg*6VE;u-`*&TxjQGg!LCF3Sd&Q@i$tTk1Z%x@h;#1tzzsq-a`w~8Ugxi<& z;Rm~YDIb2S+n4s?=em8F1bjU?Vk@PGD(k~L-To&Z{)F3?^WiVMJ-(~& z@Zl57!G$t@zs~5x*#0}WujFIX*YfD%fBz~#uCGD7@%{&&+sYxb)b!yOyL~MmeuLZB_Ti29S9KEbxV{_juj=~n z#`~*!3HYUQ`%CWq*Z1L#_g4)}-c|qbz6Ixx-_wx)eOVA69G~(2s*w+GyuWH}^4|BC zP2lZcx|jR%zQ1k?Z}art_jk=q{d?cvH8*+h`%C;T$k+DY@*DeaW$NF1|E*2l`~I>` z0^alfvaQK`U!U6PK7IfZAJ6;y_9pL||C8PGzXN>y=5qYK=YKG~({ud2=YL1Ne{b*k z`AP`spU(eI#MAlT+2p+ycP5pb%zkVj~J^%ZEWB&ubvHyXl{=N5)-y@R$eOc)H%fShF z&-p*ZFK@e$4K~iEuSa0T$6nppU;dk^`At)zcsGUqfOhp;``Wrd}B=8 zd*|0!cw77d(9dtinfmvRZ;Z*i_HP{j_;2ig!Z-Fm(bT{9{wJBd>;27pdH$*8X-zhH z@BEpfd;6CGpx2M7Chr>m^hsU!2h&XbyWW50b^GZ)d@;A5L42b|(UI2bUBaRxBC8LK z4h@eAiwI|y-oZ7(dWF`mCZ9A4iS90+=&x%O8QL|ZQ|<7m=#cQvp?F!n&~71}2gxT@ zBYO9V42_Bk?IIh^qe5$ib?e@^Ur4X8=s{KcMfMMsYnwzwheXTn^>&m++UU^8aASp~ zv;MNWp@X_chV%}#M2E?T{vo~kg<1w$2Fc&s8DI$uZ`v!OPpBoLU$pCqJdAFk;nDRY zx`bK=gvvcehj!5$Vc{+HCSK}(CeI`?w03ycuyA=u@@N`GL`8cvje~0#*(Eg6(np@O z*GU=LeeCgPTRA+ecl=qQUu@baq;t>EE>*&!TZDF&BP&-olcy6Ue>UjXyLNPFZ#=CQ z5*;Fc$X7KD8;k*JfwP6t&kj$T-~_QEIwUe${;b}wS7@aB7+hVK)mu`@^9l19UAax? zkY1tg*UEVIiU^5zx8k2$LZYK1!#eeg4z+ad6%rLC10B^lGOQ2wg^0U1`0`XwgD)YH z`v~dXr&nkb8A!Q7%gB&E`smAZis%>K1t(BdhDVO4JaQygv?YGHdWH3=5*FSiEWBIQ z2tA>&&#DQml@Sh&4D0NEag?Q|SKAUjs1FjgbHAwQh~CX)!x9!1f4qJAxKE;fNS{7( zUzYm)qB_fAk^7OskC40cI-;hb(b4i%QLc3NQponoUF1Xw>mS-Av}!T0E+#tr!h7`KMAeZ zyQ-zn#u||ky=#PqBGC22A|v&A;VL~}(o|1yvQD16JLXLyBBGl`hJ;6Tjfm_mdy%Go z1d={Jqmgvg`^#aCiqAE@ZRy%Cyfa?g0M#X;Qx7>ay zhS&=^Ybe0jV*R>x42+NQS7r`~i2b9&7zLPpjAGvrweL=<1qz`4^vRRTie}pa>#Uim z0P1D`taqZ`L6(lm6dm^qjQy`)SA?w|-aV+prg5==Zh!h@Jy!flo1i3rcC`ZPUp^0K z+5Kk*^`G^N15iIcCWbYCl{{$DoS#%c{et=PS;d>j1G9~+XW9#K>cOG`eXcqylK%FYhVk$efKj4 z3~R&-@tC{1C-3+mS^(-X9yfn(&a0)GCII!a&8uZ=&0D?I7@$7k;~k{G%-8XD>M~1N znBxuyv_Ir$T$5pJTiJUYP>=k{Trd&8G&->jP%qp3R-qAmWY9ew>JvWR!TQVS@%p=UH>Jh)Jt%BIo z2?qqA9`oV9nmO6wTTKL@9{Jd4Lu$5dni>nJmu>#;d1}`F@GdK$KB4hy>?0ph>#*EN zVq>G$eXrwMW3d?di18XSs5+~7a-NRa$0+T(G?O2+?$t4SfA(|cPHc-cwGQ(^ByLTkm0jS4$yj?Vc9kww6s7HM$Ik+zy7hOvL z>Sdcp&JSg)f|3b9eZu3N@O;8M7A&`Z;f?{#9;(2##(TUi^@cjmH2Bq# zI7zGu%-)}sD!bERA6_*GP>=Dxb$64adxk|pfO?F#|Lkp!AND7=0_ri|wfu?_WjsfZuj#t9&&xoqcvdgSl8`Qw#ancHzdJ@WV0-m2oCuNVi^%Qp9Wa9>f1r{#cp&wNQG zWxdd@(KT?R?xV&hb9ay@*s4{jJW+@CiI_i)s-@LW_X7viBc^+1R@7$Z>dgT4h{>SB z4Yh%>iVpP{(~*apYlGwJ2td7T^VsK|v|Zg&>QL|doWEXYb5}d1=H5HX256s{C!>GP zraU=1#RkkiMj7#MZ8l@eA{(F{V;1s#ENk^~k_}Lgc~Uv}11q1mxD8N`F)iRo#ZzsH z)S({pr2UOF{9pej8lYakFCXxM{g*9;6Ht$s+*){^ZOW3#38+V&Hp`$XPf!1;0qT*b zDNAKgYP7wi0qSL&r*AyRQS;3K4N&hpW(n6?9-u1Cl zd~S7!0qT9l#Mk{{T6YKGe|%!rz1f|B_9@RJfAMay#qw&o&+E5%Xu$W7v|#S9GXH z%m-(l%2ouu(VQL`H<_XtM<2^x-pgY3SJ&#kz-D&(hj8UFk_)eQ~ zFRK&KeIlkE#s_KpCJfM_9x-kBAJbkGNufi%Ui&sx)12FD=unTC4y#m8OWi6b2h<~` zg_{Oy9UEWbfO^DaLhWK&uCzl{Ks{pe+qL4_u8kQPpkB85>8yFR*1?%Mpx*bGCtUl| zxI5_2%ks=2yEH)i#P#Z0)*pG_)UPx^J?2@jcCT4^YgH$p9x4O->aq26~) z6TVkB=FyL}Co5}@7U6*QiI`(UsT)@tb*KVW%>M`bTqe`-| z_kYs>^|H9eoYl*$^Q9<`<7yL9SfZIuS7M;_l+x2w@7k86N>4kmlDGgAMJk2sBQp|BQ z)ByF!!xAO3i+PT#98ixu4E(;dqfv_dHbA{>^H;6bC>iHfwgKwD5)-|k2OAr>f2MH% z%r_^qwmI_w6&Nq^%)^aE(r5!tcjbV3jM>|h&qSNsmpPywb9+bKjiT6`T^vx4F^m3n zp&0t)0t3|JI8No*B6>cZt^w*Xrv3#ki#ijEYJhr->3nugG)mkr7EmwSd}`(!LU|zH zWJsv@Ii~KL(O_c(_fKO?-_Co^__ziNFka$0rs;?O!zxT@#{u;ivs2BA@SV30GC)1X ztl5!5ylm7C0jSsK{;^zqZ`^zhP>*ZWfTQVn=Ul&NfO?E+ot*yscIqS=pdMqozIRgI z@1;`!>Sde1ZffCoKmViw>c29k3Dyqd^T?4&QfV!V)M9}4iP|x=bqXzbeUt*IM{U>> zVQsv>c(j~q~s`|~p^Q;W|7 zc5^^IV%94ALG^XHk{nQvn2o*~t9IK{R0Gr_X75_06Aw3AoPc`N`{$*)iIHJ8C!k)o zxqadjG3MVIPC)%vVwPZS!FNnpLgJ3FHIF7Kz_lj+eKKP5aKvR+;!$G`%)TB=(l`y@ zT>pX&^%(O)j|=fB1?TEek1_pw`cHiNl8idkW6WlssmOoMaa#cDWt-RUnvKs-k=Y5T z|H_!?H(SBR2JW9mZKyJ;keK_oUB`HdQ5%rQLAgqcj(3jhn0<`WaavW;dd?#qv-f8i zleZ8>17cJ_J?izjHO)k5w)HBY9@n@uv28^Un?;9u9OurH4MgergA_nL#?-H3Jz+2P zS^?C{HlN2u$(S;G@? zVD|oO$w&(y{PLgzsK=N*^Z(4oMlDbQ^_bg3?!06DSF9C)dW=cs@%P!0YGnkVUbgwX zGj~|N;#LJv?|V!Ves64izc})TbIjT|tpK!7%)Jwtjx&*Ys0ye@p44h|h=pb^paJSJ zCLQIk7I{0Bf>pOpv4)qwb`@N5{LnV6XP%qnjaLV(n zWGz1(>V1z{!tZU3`_o>P|4={I8z%tm6LWJ*-KT2i;+q7Z9%H)TMS8J#(QF;+asPR` zUUu=z#{(*$9%DWUC;;_(p03QG_1lqy0qSvG z&2=`d*1S$J2B?>9Zds99n>%uX0;u;rCJE1N($RJ>r^j^`8qWpdMphzUu{L5Fe^TJ;wa@ zt-H!z`*amhk34?A?U-Uuu|xpsk;j|L?p2!4yRQQ3QI98f*{6&?b5)0W#Pq|S-;{r< zDhyDMm=1}%p-g$6K?T%f9yqpKQZ{yu5`cQy<|ikr%JR6i0#NTe<_Xs(6 z+5f44_KBGM+PNWDKcyFddc?%uwgEprdz}E(BPM@uugyE$(YJiohhQc(F^wFRIaV>a+x8)- z!{0>}Kt1w2+l41Vjl%sEKt1yOMqqyHi618^fO_P4#9Ev6BkQ36>T!(ewso{-i>#sm z>T!+j&~AeDQHHGwpdRz!$e^{>pZ#trfO^b>;n|N^KMy*m0P1C%9}m1^?R8pJ0QH_Z z@#S+fkDEPu|7^^IiPhG!_c_|@&^~cJXjy1GvqtaMp&s+#P@P!Tph-Cas7K7!wA#h; z46Y{t^%&C}*|)ID^Z!x-^|H-RwO-2xlpd!7>c4W%3BLC=-ZLB@TbT_Xxhx3KK5@=R z=GS1WdX&;Jdw*7SQDav9yV5G49%IsaL><;FY>NQYV@#ac0$JmAn*^X9dEBQ$S(ave zITcWkJl!~uu_--@>rjt8jE<|pnuPwL0P1C%ue#ij{m{9p0;vDWn11!WY1w2qMcjpL zRzUkiZ8$sVsyKaQm;$KBn02^$NxZ$%lmY7XJn}m)*2r23sK=PtS6vX(E~QWa^_Y8~ zN}m$vQXf?T^|HS3AhN@*F6rdI*= z7?X1;OKBJKjue1;jLF=HpR@-XO9?fQ9urL;w*yD~sM>P^|pMYZhV^%$UDw)sDw z3u}k%tr?*HD`S%2+%v{x!@Jbl=GgoU&^|FH)1IZ!%Ix}21=M3q=JrgbogMMm0jS5A zEbEa{o7~~L3aH1Jl=wZZ_E){*Dxe-?QtNXXZSB2zDxhAr`Okl()q0P9sRHW1GA0Sm z9pn3=3;AZUCz(P7pnc-HJS=1?lk*Dm%j7Y)iqsv>miQeJAc5_ff6{1HtndHnWgAG}M+q-nAM~(m7ZvZJ_%9tnkxsmbS)cSn`ao2wV1GGm#f)2*8K53xmM>F! zk-xzl2B^oFO?r}COz7C00qQYkLH{Kae;o7E0QIP6d;0w#UiYc30qQZPZ?;;+fW3d} zP>;_yQx~ct)}`;HLp{d)cJ7wq_kDI9>M;*;K5r*_7fP)|y=?P{Y8}P?!>b&Cde4~P z_ZOSWe-{)QApdPjcy#e9^51RY_4IzkxJS)Wb(zv~=$``6e&x6+Lz>rB{<-!_0O}F9 z&1L;AqR9<7Pn0dDXs7GAS4Ss2L*4rKnsK>QCyxL0Z z$RtMupdN7_mbFLFB}*X

;B4-|u&%-YI|2K|(#^-e7NCwds)WG(bJ#-tdQ!>hvCg z0#Gl>b-YCy=-&)vAisIkq0WE-ZL-oSAtyiqS=73sOSLi z>@eqt@q08kf1ajZeV&&A+CTE6^@TC&^(ScQPs|zt&DY(V{T} z)T6F+Xi!zHkbb5Ds7L;E>@mpq8(ZR{-i|n^)MfOP!TG zT8Dbi_~Lp{wR@I~pEl0zH=5#$33(P)7`Ea6tP~O2G z9DsVnHLmfw!00AZRX{!B`u;-CeSN0%RRQ&gYg}CR*baMYsepRah2i63Vjq>bssic} zcW34tjsofY1fU*qw?C`zSUNwu0MsMy9eXc!1RZW90QHFb%?6hoC2Iez0_ss0hUU2C zC|YK+0;oq`+*!TFvAJR>1Jt7~1nsEn$og&)1JomL5{EU3{qxfR2B?>9{<&sU(9Z5P z7@$7kyz#CGzOEO;kIuFZ|7}emp#36mM&+MlEwnYc0?a-}$#ZM9^@rw-6kzuLtjUHo z)(*2)tAKjsg}u@kYvEygRX{!RVoQ&3>#h3h0s-~Ni$X8PSZ_DY%K-Jri`ykmTFYFG zW`KI+#k49(l*aXz=}?cn2=D*i+Gxx=6;O}7V5zTJos(Jz0qT(#6Kniy{eIey3{a1} z$X+govb|k(2B=3~jICB$an^gUL%nSC=c@yibNOCa0rj4Ff$N2;HDN4>7TeQ=fm>QPtHvxDli-5D96 z9{KaC_%XHZ5LJhIukXVmnQrszI0qT(-=RRZ->#J|UUP{K^|H-#B`Pl}#(Y!( z^`7z1B4zVFedOP4NZ_I(9jy<>btTc8H$jX3`Ro9+f5iXun{z?A2Q+m6vyV|eJ1+=jcROVA`trjmCpkB85rv-b0ri^hi zK>b(p$NSCMvydQb~Q+CC!Ob!IJf8@`+HrbWJEywDZeT>pGPZ4FA?W~U3`?Jiq zizxS!78HPbuR!aER zcMMRE{McG_f-*RBPWkT?a+*ByBV)l4N`|gw1fbg^Keiw0qHH-fG8Rye{FuJLu9Qu- zgaPW29~;sxQl_O>8K55d(JAS6C9-D^2B?>9{`5wyvNx{14)vb-kyA>K`jX&9hUSQI zjj7hHwBSSX=+J#2M^tDhfb7av*KiqiUnnSv5dCazI`9TJ7QATm#h0Hh-$* z7A2O>(g5|IIe=?MgV4@B0~$nh38)q^AiQ|rPWd#C!&*N8Gp8Uatg}{m20Ii2JHZ7nGxKPB1_{#^BYZz33+uG&hXz9tZ4RseZmvLIB#g99v~hlYMH?heo^A z-d6zih|Qz%Gu4R)7wb?j+dNPDb!y1yBmz*M@Ywc?3@4ug(Xln=-Nodq)pS=zFhKjp zyt}Y_w)$U}Ckmh*^D2MgMe3i^syG1km{%j;%~J>VC~F1OW9&oL{i1G(x*rIrN4;&b zXP%n8tHuEJh|OSIV|B$p|1dy3VsmJ9F?FnM1_RV%-j%f_Ry!)Q9e{eouIAFxYM#5l z2tYmN-RI6NRCVf40#J|GF8nP-je5~r0O~RC#y**#KCXII0O~RCj$T-&E^fA50P1C% zPad>OEirJ80MvWt2I_IG(2y?Qs>jA>gL4;-VFQx>rvTb7=G^!mW7(y=c?2+fe^%T% zfE9XhK>+Fz_x|&`vpz*DXn=ae{rJNgY{7<18lWC=52{d^&CL8l0n{U|YYV+r z0QHD#``0a4;A)s8yBymM5zQs7G9Xd|ZNcm{vdl>JisDtRibPtS|@EBd!l~ zwPVkI=)wW@vdt@Bi)Iy@XX1c*&$yzV>T&%a>Z$QPUj5SBMU${%8lZh+&L7__M3N~L zG(bJ({LGyfM6-Gebg0Li|NQ2nu&jI;sN;SC#@s~_7PIn#DAS~!4&5HH-IL~_82>(2 zhkDHE6uSddM zo^)OOvTYUv)F&L9Z`WgN=W8*>PWmso;Q3m^d+r;2-o@@2oZ z!;3fU=lbJt!JY>!pZ~w!ZwA??{)HGlVY&YQdfyo9_z&d{~TpMXhF`~?ezeQpjN>QRgGW}Yun9BRb?^|%h*=r~)%=I_Y?^|%f-jE)i~+XZq! zJ!)0Qbc5vYyPr}4^|%i0$rveG_poq4J!;X;^A?eJ=5HKOkLyU{gYtWpgLgTg9<}OR zu_v*`vX!s_>SdcxU3yo^-#*#~sQ0WF-$|*@Tm6l@3~x8`Ws~&5MhEVn#yw=Mln0at zd@KXTOFUz|{^bQFvQ`QK%sxhG>)5Q^9&6PA^@#DaqaBpy`&Vj!dc-*M3;%s<_q5gk z^@wrlirHct?JB|m^@#E9nBvy#_m=5Uj~HjzV&9i}at;ot$MxtRYa=B~fz=F9j~v*< z)>#9tw$uRi7^lr~n`8T5EUE$OaW68w`5{NZ{dyXp9y#=Rav!yP<(?X#9yw&6yh)w3 zC#MFemubSdgR9q#i8s8Oz#BLBR}?TtFF9w^*{jX zksm1=4OP`$dA`)#;|d9Uh7bgaSCle zlXZDHf&=Q2A5lA2vm@u4b3i@vvFf44N#99*)%yTf4Me4 z1Jol&TK?q6yG^O!1k@u(&XzmDhIOgq1k__3J|1hr#-&K*1k@u3YA(sniVT>o0qT(h ze`ie0F0a@u0QIuX3kBC_>*pl30qQ+tjPDNh7}tv!5E`jpCz?h_hDLYp?%ImR*Qfz0 zXC-23Pgm3c?O%?+lKz(b_d3;EX~67blnZC3D=BP~1)v`B?Obk?(!2U14yZ?bHyq8y zo_9IR0riM)G_S$RRQiJi@$+xxOk8|!mGJ>uIg`%w0NTC4`BM|@wbOT$Vw{YwMX zqXxvTwy=P|0tKKR@&Ejj9~(V%S0JDs@t2j2Ronee0n{V@heK1ag*A%lP>=hFKTD^U zf6TRo6;LnRd_ul7Y~bOwI@EjS$CnxqpCA8o4M>!Kx|n(^P6Kow$dNaEyBMh4)qvT@ zC@=P%5-aQ7(SX_evvT!PXz5S9*P$LUw$;y}RSr-&pdK;apu~wHC+64y^@#Dw{WHa( z(hY2Ydc?R|_32{vSwAPB9x=ZB>57+xZh;foXOKXI)wt3Q5WwZ+Wj&eY~XN>V)ORoX=8#4jT`xM9L`|b^bjSbyD zjrrfA(-^jMe-@VtfC7Aj@|+y%U&yjIv3B0!~0Z=70K!`K;REu1-Kb z=Kp{*Nkxyrqn&_y%>N&4F`{zg_Zpxcxl!%fXt89`c^jY}x$*W)DK;(He>OlpawGK8 z7iZp9&T<^M z)_A@Tl5Cdz2lX{e>;{9DP{w- zZ`78XAEt{IP|#DmKvus7G#OosgOLf3#hPdgMm( zC7Jo8n`1OUJ#u5xmP9;Jh0IPsJz^iWc^O+666FNcBlcBJmSQ^&%yt6m5&O$!96@Uq z4|W3T5&I_TcB;$X6m$aW5!)Nq2=P<1iyEL_wt0&`rie1d$7q0h&)DXW()Br+?++P* zjSk#DQ@ele4+s$(Y7>C@hsAj!gNdwd)hA&=b5GSLDXn=az=Enz@5wpKjyPJJ>pw3<8HAe=SnM}9`QXrYq>aBb|MGVBfgE^Ocz4=o&)L;-^*twi||^X8K55V zog8Nu$*QN~fO^EY+_3&4Fs?ZR)FZxk_eF`Lw%H6&kNCFfS3-=P(3At}Wt$hwol$I@ z-Hrq5J>#28N*Z5!6%RH#aR0<-!dPCFR#^3UDQrMrAs>u6iaMOD&M4;pLkSx&`xxcZ zz*u(cbWatBmb0C|Pt{jMe6X*FRpT^(# zUU7HnW$Z&ne-3E>h@aB(0NZ%276;TLei=WWVfSnJaX>xdcW>qewrWsu4N#Bx9sOeu z`}5F64N#Bx&7HA;^=Q3P1JolvxBs5N`aUnILp{d7N|(88OPKuA8xrbqk97Cu2$rkH zuNt5p@%esKLzb-g3Jp*%+q^-kVywp0oB~kq8K3w$8Xuo;%~9ih*g9Jot!Q*D4(L8G zM+0UQ)dqYx!vXb(VU`+yiuw6=*#Py3VVMcd#kR43*Z}p2;fs75tzkLO+W__Yb#_Y+ zmV5d#8=xLB+*4@}8~o`R2h?K@zB;{wHQT>T1JonN@6S(S6O!b10_rgbXXdNI5@o9G z1k@u3Mzt8LSgl>1fOaG@Loq&4eNEh2b>f69L4N#9988|aYEbISB1Juhl zFPU?oxZi7|2B`PUk&IHh=CJuqda$vf`=?RAGZwueZnf{N0plg{^*cs6>HJ5e{q?er z+559*TR)3i!@tu2^@#m}$H}!44IMhvBldNovuoB`2X&}N?7O_pryXyQRsiY|`+*m7 zXzj8d;DCC>eqttnZFE3e8=xNNdGe@JT->tR2B=5u7Yr{ff)9?f0qPO^Ikz>{S!JpM zs7LIx@BKmC8J6D(s7LGvEE_8-y$f^#>Sddc$+$~wOPs<9sP~M0eEm-NO*oCe@g98t zrDURB@opNR{i8O_TU$W=k1doi)rJy#PapdR^iBknuxc~~|ZpdR^i=kYFaEJ^apfO_OlnGJc>86hid zfO_Ol(Vrt7lM~gn0qT)IFWVMludn5`0qT)Ik?nG_-$fQDpdR^iFl!xa{!uBMfO_Q5 z*as=CTM`!%fO_Ol>QB1@d%b9(0qSL&|1-Xd%37_K|HHG@ChwU)@wLPJCOp{a*!|OZ zf0p`wDEsqhLk^6W#McggW%o%t%N1*}0ke-$W-r*yGEQu51JomTem(z|=pAB+mrp&qe+ye$WR)~uue)FbxoYUbpNg03?_Jz{T7nV$zIzr+CbI8QY!KmUDV z1`SY;*xhRWoNbAFrUB{^yIlFtu@d+9Xn=az=G&92Y;5#84N&hHyD#6-HtinKub2G4 z#(MtpkK8cW*x3COze9rMzx)HVH|i57&{xO@&-fLz{Gy#YRAE0b`xqt7tQ%Un{@wQj z>Jh&ILsK~m%`Lben7#ZPBsU5=k9V`^P>&XLD@m>9NHemKKN}0%UV$_~8 zHb6b%*0Y{fOxXF71L_gC>7&w$Imx$jKt1C2=3uN^qF`bhpdNASaOB6>9H$;|Kt1BN zbIV`Ws^k7*fO^!m!~yrLO9rIX0QIPA*9NC{OmeQ)0QDHBWM`sO>+0SWQs|6&bL@0k~wr2LW>-c!<4 z^Ncz9Z0{acW_K$NXy3TsnNaLEHu#asf!W6>O*%YbMH=1b!0hG!Z+446A6n@g1Jon- zxALdp_jYV#fO^D!@8GmN&%SjGP>HRH`l*O%2%#u0#J{+*?e&#?x^-i1JolvKfFK1GDQC3 z1k@uw^{z4bZ+7iYKt1N>r-O3-_e-Jy>M=L9n4IiL=G7cfkND=l6~fXVi{pTLjMJxo zr?U^2&Tv3I;yQL{QADN|ee_tFK8X|MVKZ0qQX}_a-0UMW)&XpkB85i=7TWw)1oWsP{a#FTXcgBf@oV|3m&8pO^h^ zFUB%;%C1BAf%;Qqc4-#yF+#`eW0V6pF0{I_N{roGF^0rkl5%WXQb-?lF1 zfO_O_m3fQU(uR3CpdR_T?fx8ABivsD)MJb-55}BQcrd>Vd-;rOrO~-hN zNB$`VI-X}UujJD)d-++(*>h||o}xO`qc(NOe1+YzEQ$rxqc%NXb&g#t_qPV9N9?-y zn!_&4S>OcJBmc7{->wX49qk0vBeqR`4^Vb4xGVtms7-zuqLim08#$mJv7fOq2^(Gb z69?2|oSGi1%Ifsl$pQ7qjZb|;S({`1IiMc3snN-iY-F1098izksn%^i%hBf-4yc!H zo<4jZ%h)Un2h@A!#+Um^JvZXN$qF_$a{n|wBb&2on~413JqN~1JoDnjw&~&!JHvt5 z$0+p<_ZNj%PLlWH=D+=dyohQd|K8B$DH7uN6>_ zdEK<_IWg^@3L2mu@jaX9hGJk4uqt=P~4<0f= zy=?Ol{SroVch%J#u7n z_2#12lPx;bBS)S`gou%m&s9J@a$xP}#-hTYNeobr7&oX}S)5G1nE~n%ZW77#It^M=j-rd=Watg}vsdd$DJ_O)W>jh}R=$JjqAwq1N$)l7$a+2;S2-zE0X9Hjv2J;xsR z^zmcwJ$2~V8@030A5)Y(!SfiPePiC_EV^9zbZk2VW*?*MKOvNXm3J~=_Wo>ezgxn^|JufBQ{|tg)$^Y6M%Zmn|e)mDkUQ2--VM+)qw#fG!(Ebts7uqs0(J_(( z>QNU{mkAROinZc^dR#j%+-@sUxAWHk^@xA?Z(~J`S1&X`J>viA=|-`n&H)WjkN7%9 z?+~MFW#NEZR1D)FprP7bKY-286ELJ`q%76a5Hem~ZoBI=Y`#sKxQ%}?!|C?3q& zr~>LegxW!btW7Jz!$=A{mAU~}Fi z5`cQo@rnOEMBi`P=@=Q;k6hzsFy6bh70`VkhqLXU!G7cu1Tgy;WqZT%EN#wI8ZdkL z_cEUJV{@{6PyzKA<3_0lvcnIm3qZY|!+X24=o^VtKt0Cz?e%`_XwJzx)T74STHS|L zIA1^j>QO@)W$nr0k}wCLUbcC$nmt(G&m&Yoy=M&KzhgANDW_v^d`IP%dIEo6Crksh zZ;bt~g~syiDb{Kr0naMj>c&U$@eELpv28XiiqD?&kOAs3wh{9pc$33ZR6sq()>%K2 zmmU?P0P0a6vh%+D)sbZkP>->nT7MXC)&98xsF!Wt#(xk`R^g!l)O(I?{CyF5Q!6*3 zW1Gy~QEa!zT3k|v1KKxg>%a$hwNIsXFktpE?D&{_n%|i&Dxe;7xATk#TJ!5$1fU+Z zFS7juE$rDI0jQU4-lh9v?e<(h9qK*L9djF>HR8-mH0$24cc&7ijn5lHySTQbW8m-Z z@aT;ZV(zXjDxmwo7>o)XD_TFjq5|rXAIlqz6H|h#DS&!hKhpLcC#J70uLA0kA7fvR z6F2g#Qvmh2evJA&LR1cTpaAMIhUsz*7d`XtR{-_0&1W4PBy5d31On{mb)LLVA8+b&@sZ!0i25^>Jg&uj70`X)9M^t7jNklwD+AP{#$3NW zlJ7bG!3wCCZT_U=NPhe1Iu%g=jdLjbt#dHm2h1F`RBgIUQ2^Zs>iEDmi`5U`pH+a_ z$0!Y#&s6;vc4UBh+$WywW>>2%=*9r`n8&wAg{il#D-}RJ^5|68uIlOUIx|2$#<=r| zpVa-CmM}m)^5{jf3~G{9nG`@hYT=kSMO6Q}R|KFQdDgP}NcGC)(i)&1F|6HmhdLwX zv;fqj4(w>PSDh4bNdeU38a_MuD)ma@77S1?+k9-)LUr?nbqb)~XAaa3?-Dxj+qKsC zey3dBEZWrROBF!(fw^AnNM^0nyTL(#dW_+Q5gE0=Mr$gd9%FDkSr%>juQL@uy=-&) zxlG!P@Lmd_-t!#2YN6{Kzgi28^W%^2i0(1t6hQmOy~eQIH^la)r-A_W$gzms*Tuf9 z_f(#mBR{WcRA{9GP>(!T z_H7XJe}Ad~>SdcBF1l7sxSw7H)O(IWPAR|K7u65z(xq3ZX|e_z9k_oQ_eE3dR?yN7 zYr}x?5*$0g7(6>&MjM|oqX1?f!}3%vtKB`ZkOAt^M?}6-TE1Fy1)v`F&UQLbD?4D7 z0MuiQO0NvmKD}Gc0QJbDJT1#MmYsve*4+7NVdNTh}2Cev$Gy+gB+dOHvOxn7ac@;pt z=kX_$19YV#j4b~ zG(bJ>y*`}!UZjs`Xa&@x7R5cuCJxWc#Q^olfqm`26H6cM*P$M@NIOzmyj*izhkDuO zFY8wn8N_`npx!e_jNhq=&yn~_MDyRML;1B5TAb~a1JJ&4y>1a+RI_JjX$90{Y;$KQ zrp-v#O#td;n;*_rLi=voDg{vQdFXAQ3R?TMB=J~0BdgRC9 zrL)=6@No`6y=?P~!{@MLHSG$Z{_A5%tDt!djXIdWR81}W=EMTfePE1oC#kD-tbJMq zX1|V2TU1>;@b5GSpdRN~DZGaENAnj7pkB85-gDKpJX`KM0QH{d=ykoS7Zx4;Kisnz z=lFPLUTt&z)e4~dz&U=tlS{i&X_*43M;y-{4A27aj!*#gILFle@@n%}&QbyOvdu4z z&8Owd_KOOr_dG|hdkXhC#?NGP42`+GY;P9Lo+iBtX#dFL-JLRPiJBh`0@UODzOS8C z`>)1*1yC>ByyLRWTHL+FRzSVy@h21`I-7mfqqtWoxuvuG_wvBKphg3n!@{bmd7|8h zf&le6hk0F6^8aSvRsi*~%}*pr&41{V$O@?c);ZAGM9;x^f3W+?SzK=*-rf}dWt)A}{2#sKw*^O!vywdF;w z2tYmJysvIIE${4&3{a0T7@aLdt6cD&0;rd5o}qDwHlp-?2cX__48DA?=`jXhn~TOh z*Oiz6wbGjx3ZVVV7%QvxBvmI@KW7Eh2tu8Gg`^i)Sg zWY+-o$l;d$bJVkqxfM{4_%40kO+B3QF$2`&o-2TrRI`urV}N?Zze;FzwP{VO0Mz52 zt7cS)dh5;s9qMJ9cMJ(uPlnnUpx!e-Q0wR%`Btqn>cpfeK^i~QQw4M%h+*4Jfm*?h zqg6mX#&}ihN?M}D0~A0##_*4PftoY;c1 zkAi9*XGP{D(xG0q`HK<1u?D5~SpoIF#~|SkK54BqzCUh$aGW^2^8*8PAE*`OM)ebS z><<+{J!(bcqvj{%ZEsWB8i?)-n9AbMb1n zWujqF106aJ$U|-JN|C41AuFIBd9--aa#3x{Z52?DJc=B@lWjTto)`ETHMo%3ZVVt_z$)^r7caRsDOIe=Bw78(vC&mbpYx;k1xR-As23X zjK=%O-IZ@Ke*Uxq=ss}WZnWSgd(iHR3d~;q`^nr_S@DR?Dxe!-TE&0s3qU>U-LKQCYisJQ)1e-7Ib)?} z+MV+;I@HTHue`pc_EXLE0#NTcMqhsSFQE?x<%V>8jJY`O?Mf{;Sp@-T|2Y4t?N(`h ztISgY^|H+m4p^-Pg;aL{>OGGyff$mRXg)@4kL6{%5nqnYwZ{9}{WbrMV<0odd<;fC z`2PyIm*1G8IDq52La`AGk#we>LlyNlv@`XlXggFriWF6)7^PmV>U65wNScU^q(ZG( zh(F-YiG?*1iICWf)g*+42=imkrxknYbTq>(T`P< zuIHxXZ$>AY&&ioFN!N85$6j~F-#l~6XV3Nare5=;>uw&K(sen$ z^sAJ4Q2M1((sg}&-tWLU+udWd_xBpQvzdzWfk4vThkOU4pR$?6`-fGMu1k9o34P1V zcs{*K()HYQd?fKT^K|6HdP&#+TL!1LxMldaz3fK2UEeUBpK04?yNqnh-s`tRpV?>5 zd}jZ?^O=1X-Dmdydwgc!W9c*dT$9i2JtCjk_b&NNp5fG?KNop+R);ou4}uPD@|%$k zZF1evp-uW)I()0t;Tw7 zutQ*n!J5F1fE@)p1}61JhptD>8gk>>j)R>5I|@-*#*cq_1VC`V%z|MnR z084^h1nU611a=v$6YL7uRj_Md*THUpb%FJO-2&?cOM&%)*}jQgMAyH5J2OAjHUM@9 zY!GY+EDBcW)a94a$GHL4D|Bc*>lHeZ9xHUzJ=P8Ty9st1%pp4&w~r4 F`~f{)S{eWV diff --git a/xiaofang/Assets/test.meta b/xiaofang/Assets/test.meta new file mode 100644 index 00000000..c30cbc9f --- /dev/null +++ b/xiaofang/Assets/test.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: e63cb29d6ed87824a9e5898f79af7227 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/xiaofang/Assets/test/New Scene.unity b/xiaofang/Assets/test/New Scene.unity new file mode 100644 index 00000000..d40a78f8 --- /dev/null +++ b/xiaofang/Assets/test/New Scene.unity @@ -0,0 +1,302 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!29 &1 +OcclusionCullingSettings: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_OcclusionBakeSettings: + smallestOccluder: 5 + smallestHole: 0.25 + backfaceThreshold: 100 + m_SceneGUID: 00000000000000000000000000000000 + m_OcclusionCullingData: {fileID: 0} +--- !u!104 &2 +RenderSettings: + m_ObjectHideFlags: 0 + serializedVersion: 9 + m_Fog: 0 + m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} + m_FogMode: 3 + m_FogDensity: 0.01 + m_LinearFogStart: 0 + m_LinearFogEnd: 300 + m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1} + m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1} + m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1} + m_AmbientIntensity: 1 + m_AmbientMode: 0 + m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1} + m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 0} + m_HaloStrength: 0.5 + m_FlareStrength: 1 + m_FlareFadeSpeed: 3 + m_HaloTexture: {fileID: 0} + m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0} + m_DefaultReflectionMode: 0 + m_DefaultReflectionResolution: 128 + m_ReflectionBounces: 1 + m_ReflectionIntensity: 1 + m_CustomReflection: {fileID: 0} + m_Sun: {fileID: 0} + m_UseRadianceAmbientProbe: 0 +--- !u!157 &3 +LightmapSettings: + m_ObjectHideFlags: 0 + serializedVersion: 12 + m_GIWorkflowMode: 1 + m_GISettings: + serializedVersion: 2 + m_BounceScale: 1 + m_IndirectOutputScale: 1 + m_AlbedoBoost: 1 + m_EnvironmentLightingMode: 0 + m_EnableBakedLightmaps: 1 + m_EnableRealtimeLightmaps: 0 + m_LightmapEditorSettings: + serializedVersion: 12 + m_Resolution: 2 + m_BakeResolution: 40 + m_AtlasSize: 1024 + m_AO: 0 + m_AOMaxDistance: 1 + m_CompAOExponent: 1 + m_CompAOExponentDirect: 0 + m_ExtractAmbientOcclusion: 0 + m_Padding: 2 + m_LightmapParameters: {fileID: 0} + m_LightmapsBakeMode: 1 + m_TextureCompression: 1 + m_FinalGather: 0 + m_FinalGatherFiltering: 1 + m_FinalGatherRayCount: 256 + m_ReflectionCompression: 2 + m_MixedBakeMode: 2 + m_BakeBackend: 1 + m_PVRSampling: 1 + m_PVRDirectSampleCount: 32 + m_PVRSampleCount: 512 + m_PVRBounces: 2 + m_PVREnvironmentSampleCount: 256 + m_PVREnvironmentReferencePointCount: 2048 + m_PVRFilteringMode: 1 + m_PVRDenoiserTypeDirect: 1 + m_PVRDenoiserTypeIndirect: 1 + m_PVRDenoiserTypeAO: 1 + m_PVRFilterTypeDirect: 0 + m_PVRFilterTypeIndirect: 0 + m_PVRFilterTypeAO: 0 + m_PVREnvironmentMIS: 1 + m_PVRCulling: 1 + m_PVRFilteringGaussRadiusDirect: 1 + m_PVRFilteringGaussRadiusIndirect: 5 + m_PVRFilteringGaussRadiusAO: 2 + m_PVRFilteringAtrousPositionSigmaDirect: 0.5 + m_PVRFilteringAtrousPositionSigmaIndirect: 2 + m_PVRFilteringAtrousPositionSigmaAO: 1 + m_ExportTrainingData: 0 + m_TrainingDataDestination: TrainingData + m_LightProbeSampleCountMultiplier: 4 + m_LightingDataAsset: {fileID: 0} + m_LightingSettings: {fileID: 0} +--- !u!196 &4 +NavMeshSettings: + serializedVersion: 2 + m_ObjectHideFlags: 0 + m_BuildSettings: + serializedVersion: 2 + agentTypeID: 0 + agentRadius: 0.5 + agentHeight: 2 + agentSlope: 45 + agentClimb: 0.4 + ledgeDropHeight: 0 + maxJumpAcrossDistance: 0 + minRegionArea: 2 + manualCellSize: 0 + cellSize: 0.16666667 + manualTileSize: 0 + tileSize: 256 + accuratePlacement: 0 + maxJobWorkers: 0 + preserveTilesOutsideBounds: 0 + debug: + m_Flags: 0 + m_NavMeshData: {fileID: 0} +--- !u!1 &146148410 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 146148413} + - component: {fileID: 146148412} + - component: {fileID: 146148411} + m_Layer: 0 + m_Name: Main Camera + m_TagString: MainCamera + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!81 &146148411 +AudioListener: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 146148410} + m_Enabled: 1 +--- !u!20 &146148412 +Camera: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 146148410} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 1 + m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0} + m_projectionMatrixMode: 1 + m_GateFitMode: 2 + m_FOVAxisMode: 0 + m_SensorSize: {x: 36, y: 24} + m_LensShift: {x: 0, y: 0} + m_FocalLength: 50 + m_NormalizedViewPortRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + near clip plane: 0.3 + far clip plane: 1000 + field of view: 60 + orthographic: 0 + orthographic size: 5 + m_Depth: -1 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingPath: -1 + m_TargetTexture: {fileID: 0} + m_TargetDisplay: 0 + m_TargetEye: 3 + m_HDR: 1 + m_AllowMSAA: 1 + m_AllowDynamicResolution: 0 + m_ForceIntoRT: 0 + m_OcclusionCulling: 1 + m_StereoConvergence: 10 + m_StereoSeparation: 0.022 +--- !u!4 &146148413 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 146148410} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 1, z: -10} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1944265828 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1944265830} + - component: {fileID: 1944265829} + m_Layer: 0 + m_Name: Directional Light + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!108 &1944265829 +Light: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1944265828} + m_Enabled: 1 + serializedVersion: 10 + m_Type: 1 + m_Shape: 0 + m_Color: {r: 1, g: 0.95686275, b: 0.8392157, a: 1} + m_Intensity: 1 + m_Range: 10 + m_SpotAngle: 30 + m_InnerSpotAngle: 21.80208 + m_CookieSize: 10 + m_Shadows: + m_Type: 2 + m_Resolution: -1 + m_CustomResolution: -1 + m_Strength: 1 + m_Bias: 0.05 + m_NormalBias: 0.4 + m_NearPlane: 0.2 + m_CullingMatrixOverride: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_UseCullingMatrixOverride: 0 + m_Cookie: {fileID: 0} + m_DrawHalo: 0 + m_Flare: {fileID: 0} + m_RenderMode: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingLayerMask: 1 + m_Lightmapping: 4 + m_LightShadowCasterMode: 0 + m_AreaSize: {x: 1, y: 1} + m_BounceIntensity: 1 + m_ColorTemperature: 6570 + m_UseColorTemperature: 0 + m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} + m_UseBoundingSphereOverride: 0 + m_UseViewFrustumForShadowCasterCull: 1 + m_ShadowRadius: 0 + m_ShadowAngle: 0 +--- !u!4 &1944265830 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1944265828} + m_LocalRotation: {x: 0.40821788, y: -0.23456968, z: 0.10938163, w: 0.8754261} + m_LocalPosition: {x: 0, y: 3, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0} diff --git a/xiaofang/Assets/test/New Scene.unity.meta b/xiaofang/Assets/test/New Scene.unity.meta new file mode 100644 index 00000000..56eed0dd --- /dev/null +++ b/xiaofang/Assets/test/New Scene.unity.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 9c24e5330faefc14ea63d7a2da74eab1 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/xiaofang/Assets/test/Ws.cs b/xiaofang/Assets/test/Ws.cs new file mode 100644 index 00000000..3da1cd10 --- /dev/null +++ b/xiaofang/Assets/test/Ws.cs @@ -0,0 +1,726 @@ +// +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: ws.proto +// +#pragma warning disable 1591, 0612, 3021, 8981 +#region Designer generated code + +using pb = global::Google.Protobuf; +using pbc = global::Google.Protobuf.Collections; +using pbr = global::Google.Protobuf.Reflection; +using scg = global::System.Collections.Generic; +///

Holder for reflection information generated from ws.proto +public static partial class WsReflection { + + #region Descriptor + /// File descriptor for ws.proto + public static pbr::FileDescriptor Descriptor { + get { return descriptor; } + } + private static pbr::FileDescriptor descriptor; + + static WsReflection() { + byte[] descriptorData = global::System.Convert.FromBase64String( + string.Concat( + "Cgh3cy5wcm90byJNCglXU01lc3NhZ2USDgoGbW9kdWxlGAEgASgJEhMKC3Nl", + "cnZpY2VOYW1lGAIgASgJEgwKBGRhdGEYAyABKAwSDQoFcmVxSWQYBCABKAUi", + "WQoKV1NSZXNwb25zZRITCgttZXNzYWdlVHlwZRgBIAEoCRIMCgRkYXRhGAIg", + "ASgMEg0KBXJlcUlkGAMgASgFEgwKBGNvZGUYBCABKAUSCwoDemlwGAUgASgI", + "QgdaBS4vO3BiYgZwcm90bzM=")); + descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, + new pbr::FileDescriptor[] { }, + new pbr::GeneratedClrTypeInfo(null, null, new pbr::GeneratedClrTypeInfo[] { + new pbr::GeneratedClrTypeInfo(typeof(global::WSMessage), global::WSMessage.Parser, new[]{ "Module", "ServiceName", "Data", "ReqId" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::WSResponse), global::WSResponse.Parser, new[]{ "MessageType", "Data", "ReqId", "Code", "Zip" }, null, null, null, null) + })); + } + #endregion + +} +#region Messages +[global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] +public sealed partial class WSMessage : pb::IMessage +#if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + , pb::IBufferMessage +#endif +{ + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new WSMessage()); + private pb::UnknownFieldSet _unknownFields; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pbr::MessageDescriptor Descriptor { + get { return global::WsReflection.Descriptor.MessageTypes[0]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public WSMessage() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public WSMessage(WSMessage other) : this() { + module_ = other.module_; + serviceName_ = other.serviceName_; + data_ = other.data_; + reqId_ = other.reqId_; + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public WSMessage Clone() { + return new WSMessage(this); + } + + /// Field number for the "module" field. + public const int ModuleFieldNumber = 1; + private string module_ = ""; + /// + ///模块名称 + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string Module { + get { return module_; } + set { + module_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + /// Field number for the "serviceName" field. + public const int ServiceNameFieldNumber = 2; + private string serviceName_ = ""; + /// + ///服务名称 + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string ServiceName { + get { return serviceName_; } + set { + serviceName_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + /// Field number for the "data" field. + public const int DataFieldNumber = 3; + private pb::ByteString data_ = pb::ByteString.Empty; + /// + ///请求数据 + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public pb::ByteString Data { + get { return data_; } + set { + data_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + /// Field number for the "reqId" field. + public const int ReqIdFieldNumber = 4; + private int reqId_; + /// + ///请求id + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int ReqId { + get { return reqId_; } + set { + reqId_ = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override bool Equals(object other) { + return Equals(other as WSMessage); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool Equals(WSMessage other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if (Module != other.Module) return false; + if (ServiceName != other.ServiceName) return false; + if (Data != other.Data) return false; + if (ReqId != other.ReqId) return false; + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override int GetHashCode() { + int hash = 1; + if (Module.Length != 0) hash ^= Module.GetHashCode(); + if (ServiceName.Length != 0) hash ^= ServiceName.GetHashCode(); + if (Data.Length != 0) hash ^= Data.GetHashCode(); + if (ReqId != 0) hash ^= ReqId.GetHashCode(); + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void WriteTo(pb::CodedOutputStream output) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + output.WriteRawMessage(this); + #else + if (Module.Length != 0) { + output.WriteRawTag(10); + output.WriteString(Module); + } + if (ServiceName.Length != 0) { + output.WriteRawTag(18); + output.WriteString(ServiceName); + } + if (Data.Length != 0) { + output.WriteRawTag(26); + output.WriteBytes(Data); + } + if (ReqId != 0) { + output.WriteRawTag(32); + output.WriteInt32(ReqId); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { + if (Module.Length != 0) { + output.WriteRawTag(10); + output.WriteString(Module); + } + if (ServiceName.Length != 0) { + output.WriteRawTag(18); + output.WriteString(ServiceName); + } + if (Data.Length != 0) { + output.WriteRawTag(26); + output.WriteBytes(Data); + } + if (ReqId != 0) { + output.WriteRawTag(32); + output.WriteInt32(ReqId); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(ref output); + } + } + #endif + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int CalculateSize() { + int size = 0; + if (Module.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(Module); + } + if (ServiceName.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(ServiceName); + } + if (Data.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeBytesSize(Data); + } + if (ReqId != 0) { + size += 1 + pb::CodedOutputStream.ComputeInt32Size(ReqId); + } + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(WSMessage other) { + if (other == null) { + return; + } + if (other.Module.Length != 0) { + Module = other.Module; + } + if (other.ServiceName.Length != 0) { + ServiceName = other.ServiceName; + } + if (other.Data.Length != 0) { + Data = other.Data; + } + if (other.ReqId != 0) { + ReqId = other.ReqId; + } + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(pb::CodedInputStream input) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + input.ReadRawMessage(this); + #else + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + case 10: { + Module = input.ReadString(); + break; + } + case 18: { + ServiceName = input.ReadString(); + break; + } + case 26: { + Data = input.ReadBytes(); + break; + } + case 32: { + ReqId = input.ReadInt32(); + break; + } + } + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + break; + case 10: { + Module = input.ReadString(); + break; + } + case 18: { + ServiceName = input.ReadString(); + break; + } + case 26: { + Data = input.ReadBytes(); + break; + } + case 32: { + ReqId = input.ReadInt32(); + break; + } + } + } + } + #endif + +} + +[global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] +public sealed partial class WSResponse : pb::IMessage +#if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + , pb::IBufferMessage +#endif +{ + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new WSResponse()); + private pb::UnknownFieldSet _unknownFields; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pbr::MessageDescriptor Descriptor { + get { return global::WsReflection.Descriptor.MessageTypes[1]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public WSResponse() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public WSResponse(WSResponse other) : this() { + messageType_ = other.messageType_; + data_ = other.data_; + reqId_ = other.reqId_; + code_ = other.code_; + zip_ = other.zip_; + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public WSResponse Clone() { + return new WSResponse(this); + } + + /// Field number for the "messageType" field. + public const int MessageTypeFieldNumber = 1; + private string messageType_ = ""; + /// + ///响应消息 + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string MessageType { + get { return messageType_; } + set { + messageType_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + /// Field number for the "data" field. + public const int DataFieldNumber = 2; + private pb::ByteString data_ = pb::ByteString.Empty; + /// + ///响应数据 + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public pb::ByteString Data { + get { return data_; } + set { + data_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + /// Field number for the "reqId" field. + public const int ReqIdFieldNumber = 3; + private int reqId_; + /// + ///请求id + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int ReqId { + get { return reqId_; } + set { + reqId_ = value; + } + } + + /// Field number for the "code" field. + public const int CodeFieldNumber = 4; + private int code_; + /// + ///响应状态码 + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int Code { + get { return code_; } + set { + code_ = value; + } + } + + /// Field number for the "zip" field. + public const int ZipFieldNumber = 5; + private bool zip_; + /// + ///是否压缩 + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool Zip { + get { return zip_; } + set { + zip_ = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override bool Equals(object other) { + return Equals(other as WSResponse); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool Equals(WSResponse other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if (MessageType != other.MessageType) return false; + if (Data != other.Data) return false; + if (ReqId != other.ReqId) return false; + if (Code != other.Code) return false; + if (Zip != other.Zip) return false; + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override int GetHashCode() { + int hash = 1; + if (MessageType.Length != 0) hash ^= MessageType.GetHashCode(); + if (Data.Length != 0) hash ^= Data.GetHashCode(); + if (ReqId != 0) hash ^= ReqId.GetHashCode(); + if (Code != 0) hash ^= Code.GetHashCode(); + if (Zip != false) hash ^= Zip.GetHashCode(); + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void WriteTo(pb::CodedOutputStream output) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + output.WriteRawMessage(this); + #else + if (MessageType.Length != 0) { + output.WriteRawTag(10); + output.WriteString(MessageType); + } + if (Data.Length != 0) { + output.WriteRawTag(18); + output.WriteBytes(Data); + } + if (ReqId != 0) { + output.WriteRawTag(24); + output.WriteInt32(ReqId); + } + if (Code != 0) { + output.WriteRawTag(32); + output.WriteInt32(Code); + } + if (Zip != false) { + output.WriteRawTag(40); + output.WriteBool(Zip); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { + if (MessageType.Length != 0) { + output.WriteRawTag(10); + output.WriteString(MessageType); + } + if (Data.Length != 0) { + output.WriteRawTag(18); + output.WriteBytes(Data); + } + if (ReqId != 0) { + output.WriteRawTag(24); + output.WriteInt32(ReqId); + } + if (Code != 0) { + output.WriteRawTag(32); + output.WriteInt32(Code); + } + if (Zip != false) { + output.WriteRawTag(40); + output.WriteBool(Zip); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(ref output); + } + } + #endif + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int CalculateSize() { + int size = 0; + if (MessageType.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(MessageType); + } + if (Data.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeBytesSize(Data); + } + if (ReqId != 0) { + size += 1 + pb::CodedOutputStream.ComputeInt32Size(ReqId); + } + if (Code != 0) { + size += 1 + pb::CodedOutputStream.ComputeInt32Size(Code); + } + if (Zip != false) { + size += 1 + 1; + } + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(WSResponse other) { + if (other == null) { + return; + } + if (other.MessageType.Length != 0) { + MessageType = other.MessageType; + } + if (other.Data.Length != 0) { + Data = other.Data; + } + if (other.ReqId != 0) { + ReqId = other.ReqId; + } + if (other.Code != 0) { + Code = other.Code; + } + if (other.Zip != false) { + Zip = other.Zip; + } + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(pb::CodedInputStream input) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + input.ReadRawMessage(this); + #else + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + case 10: { + MessageType = input.ReadString(); + break; + } + case 18: { + Data = input.ReadBytes(); + break; + } + case 24: { + ReqId = input.ReadInt32(); + break; + } + case 32: { + Code = input.ReadInt32(); + break; + } + case 40: { + Zip = input.ReadBool(); + break; + } + } + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + break; + case 10: { + MessageType = input.ReadString(); + break; + } + case 18: { + Data = input.ReadBytes(); + break; + } + case 24: { + ReqId = input.ReadInt32(); + break; + } + case 32: { + Code = input.ReadInt32(); + break; + } + case 40: { + Zip = input.ReadBool(); + break; + } + } + } + } + #endif + +} + +#endregion + + +#endregion Designer generated code diff --git a/xiaofang/Assets/test/Ws.cs.meta b/xiaofang/Assets/test/Ws.cs.meta new file mode 100644 index 00000000..dd9d6b70 --- /dev/null +++ b/xiaofang/Assets/test/Ws.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: b1a0e968aa808f743ae45f5525efa824 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: