From f9524d8a45ae5c156c7cca3f4e263d12135c6876 Mon Sep 17 00:00:00 2001 From: leancloud-bot Date: Thu, 21 Apr 2022 17:53:25 +0800 Subject: [PATCH] 0.10.9 --- Plugins.meta | 8 + Plugins/LC.Google.Protobuf.dll | Bin 0 -> 358912 bytes Plugins/LC.Google.Protobuf.dll.meta | 33 + Plugins/LC.Google.Protobuf.pdb | Bin 0 -> 142288 bytes Plugins/LC.Google.Protobuf.pdb.meta | 7 + Plugins/LC.Google.Protobuf.xml | 9125 +++++++++++++++++++++++++++ Plugins/LC.Google.Protobuf.xml.meta | 7 + Plugins/LiveQuery.deps.json | 111 + Plugins/LiveQuery.deps.json.meta | 7 + Plugins/LiveQuery.dll | Bin 0 -> 22016 bytes Plugins/LiveQuery.dll.meta | 33 + Plugins/LiveQuery.pdb | Bin 0 -> 12328 bytes Plugins/LiveQuery.pdb.meta | 7 + Plugins/Realtime.dll | Bin 0 -> 299008 bytes Plugins/Realtime.dll.meta | 33 + Plugins/Realtime.pdb | Bin 0 -> 105448 bytes Plugins/Realtime.pdb.meta | 7 + Plugins/link.xml | 10 + Plugins/link.xml.meta | 7 + package.json | 16 + package.json.meta | 7 + 21 files changed, 9418 insertions(+) create mode 100644 Plugins.meta create mode 100644 Plugins/LC.Google.Protobuf.dll create mode 100644 Plugins/LC.Google.Protobuf.dll.meta create mode 100644 Plugins/LC.Google.Protobuf.pdb create mode 100644 Plugins/LC.Google.Protobuf.pdb.meta create mode 100644 Plugins/LC.Google.Protobuf.xml create mode 100644 Plugins/LC.Google.Protobuf.xml.meta create mode 100644 Plugins/LiveQuery.deps.json create mode 100644 Plugins/LiveQuery.deps.json.meta create mode 100644 Plugins/LiveQuery.dll create mode 100644 Plugins/LiveQuery.dll.meta create mode 100644 Plugins/LiveQuery.pdb create mode 100644 Plugins/LiveQuery.pdb.meta create mode 100644 Plugins/Realtime.dll create mode 100644 Plugins/Realtime.dll.meta create mode 100644 Plugins/Realtime.pdb create mode 100644 Plugins/Realtime.pdb.meta create mode 100644 Plugins/link.xml create mode 100644 Plugins/link.xml.meta create mode 100644 package.json create mode 100644 package.json.meta diff --git a/Plugins.meta b/Plugins.meta new file mode 100644 index 0000000..6fcc1be --- /dev/null +++ b/Plugins.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: b847676f2882d45dc88c8aadb00914f2 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Plugins/LC.Google.Protobuf.dll b/Plugins/LC.Google.Protobuf.dll new file mode 100644 index 0000000000000000000000000000000000000000..7ef5653b4a1ce007058e08506527928aa1763eb0 GIT binary patch literal 358912 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%0Aiv|a|Salb43 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 Svys+L7bi~Y^W@K_u|M^*L0dGlwC^hc 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 literal 0 HcmV?d00001 diff --git a/Plugins/LC.Google.Protobuf.dll.meta b/Plugins/LC.Google.Protobuf.dll.meta new file mode 100644 index 0000000..d17e1df --- /dev/null +++ b/Plugins/LC.Google.Protobuf.dll.meta @@ -0,0 +1,33 @@ +fileFormatVersion: 2 +guid: 5a6e5b823abd24f44bc34a177fe5b546 +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/Plugins/LC.Google.Protobuf.pdb b/Plugins/LC.Google.Protobuf.pdb new file mode 100644 index 0000000000000000000000000000000000000000..4bdc626b65dad91582211ca2e5a14212d1faaf34 GIT binary patch literal 142288 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 + + + LC.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. + + + + + Unsafe operations that can cause IO Failure and/or other catastrophic side-effects. + + + + + Constructs a new ByteString from the given byte array. The array is + *not* copied, and must not be modified after this constructor is called. + + + + + Internal use only. Ensure that the provided array is not mutated and belongs to this instance. + + + + + Constructs a new ByteString from the given byte array. The array 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. + + + + + 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. + + + + + Creates a new by encoding the specified text with + the given encoding. + + + + + Creates a new by encoding the specified text in UTF-8. + + + + + Retuns 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. + + + + Used internally by CodedOutputStream to avoid creating a copy for the write + + + + + Copies the entire byte array to the destination array provided at the offset specified. + + + + + Writes the entire byte array to the provided stream + + + + + 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 index of the buffer at which we need to refill from the stream (if there is one). + + + + + The position within the current buffer (i.e. the next byte to read) + + + + + 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 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. + + + + + The total number of bytes read before the current buffer. The + total bytes read up to the current position can be computed as + totalBytesRetired + bufferPos. + + + + + The absolute position of the end of the current message. + + + + + 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 an embedded group unknown 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. + + + + + Same code as ReadRawVarint32, but read each byte individually, checking for + buffer overflow. + + + + + 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. + + + + + 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 64 bits to be varint encoded, thus always taking + 10 bytes on the wire.) + + + + + 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 64 bits to be varint encoded, thus always taking + 10 bytes on the wire.) + + + + + 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. + + + + + Called when buffer is empty to read more bytes from the + input. If is true, RefillBuffer() gurantees that + either there will be at least one byte in the buffer when it returns + or it will throw an exception. If is false, + RefillBuffer() returns false if no more bytes were available. + + + + + + + Read one byte from the input. + + + the end of the stream or the current limit was reached + + + + + 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 + + + + Abstraction of skipping to cope with streams which can't really skip. + + + + + 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 + + + + + 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 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. + + + + + 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.) + + + + + 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 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. + + + + 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 + + + + 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. + + + + 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 tag used in the enclosing message to indicate map entries. + + + + + A mutable message class, used for parsing and serializing. This + delegates the work to a codec, but implements the interface + for interop with and . + This is nested inside Codec as it's tightly coupled to the associated codec, + and it's simpler if it has direct access to all its fields. + + + + + 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.) + + + + + Read-only wrapper around another dictionary. + + + + + 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. + + + + 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 a by , + 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. + + + + 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 Count -or- when Count is less than 0. + + + + + 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 + + + + 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. + + + + + 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 + + + + + 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. + + + + + Reads a value of the codec type from the given . + + The input stream to read from. + The value read from the stream. + + + + Calculates the size required to write the given value, with a tag, + if the value is not 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 + + + + + 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. + The formatted message. + + + + Formats the specified message as JSON. + + The message to format. + The TextWriter to write the formatted message to. + The formatted message. + + + + 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 + + + + 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. + + + + 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 whose values are the default for the field type (e.g. 0 for integers) + should be formatted (true) or omitted (false). + + + + + The type registry used to format messages. + + + + + Whether to format enums as ints. Defaults to false. + + + + + 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. + + + + 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. + + + + 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". + + + + + 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. + + + + + 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. + + + + + Returns the next character in the stream, or null if we have reached the end. + + + + + + Creates a new exception appropriate for the current state of the reader. + + + + + 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 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. + + + + 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 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. + + + + 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 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. + + + + + 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 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" and "proto3". + + + + Gets whether the "syntax" field is set + + + Clears the value of the "syntax" 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. + + + + + 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. + TODO(kenton): Base-64 encode? + + + + 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 be 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 in proto3. However, Proto3 + implementations should still be able to parse the group wire format and + treat group fields as unknown fields. + + + + + Length-delimited aggregate. + + + + + New in version 2. + + + + + Uses ZigZag encoding. + + + + + Uses ZigZag encoding. + + + + + 0 is reserved for errors + + + + + 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. + + + + If set, all the classes from the .proto file are wrapped in a single + outer class with the given name. This applies to both Proto1 + (equivalent to the old "--one_java_file" option) and Proto2 (where + a .proto always translates to a single class, but you may want to + explicitly choose the class name). + + + + 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 set true, 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 outer class + named by java_outer_classname. However, the outer 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. + + + + If set true, then the Java2 code generator will generate code that + throws an exception whenever an attempt is made to assign a non-UTF-8 + byte sequence to a string field. + Message reflection will do the same. + However, an extension field still accepts non-UTF-8 byte sequences. + This option has no effect on when used with the lite runtime. + + + + 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 "php_generic_services" field. + + + Gets whether the "php_generic_services" field is set + + + Clears the value of the "php_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 "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 "uninterpreted_option" field. + + + + The parser stores options it doesn't recognize here. See above. + + + + Field number for the "ctype" field. + + + + 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 not yet implemented in the open source + release -- sorry, we'll try to include it in a future version! + + + + 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. + + + + 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 implementations may choose not to check required fields within + a lazy sub-message. That is, calling IsInitialized() on the outer message + may return true even if the inner message has missing required fields. + This is necessary because otherwise the inner message would have to be + parsed in order to perform the check, defeating the purpose of lazy + parsing. An implementation which chooses not to check required fields + must be consistent about it. That is, for any particular sub-message, the + implementation must either *always* check its required fields, or *never* + check its required fields, regardless of whether or not the message has + been parsed. + + + + Gets whether the "lazy" field is set + + + Clears the value of the "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 "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. + + + + + Use the default type. + + + + + Use JavaScript strings. + + + + + Use JavaScript numbers. + + + + 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 "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 "uninterpreted_option" field. + + + + The parser stores options it doesn't recognize here. See above. + + + + 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 "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], ["qux", false] } represents + "foo.(bar.baz).qux". + + + + 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 + + + + 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. 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 qux. + // + // Another line attached to qux. + optional double qux = 4; + + // Detached comment for corge. This is not leading or trailing comments + // to qux 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 offset. 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 + + + + Base class for nearly all descriptors, providing common functionality. + + + + + 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 table. If an enum value + with the same type and number already exists, this method does nothing. + (This is allowed; the first value defined with the number takes precedence.) + + + + + 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. + + + + + 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. + + + + + 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 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 accending field order + + + + + 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. + + + + + 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. + + + + + An extension identifier for this field, or null if this field isn't an extension. + + + + + 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 + + + + + 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. + + + + + 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 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. + + + + + 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. + + + + + 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 + + + + + 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. + + + + + 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. + + + + + 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. + + + + + 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 CodedOutputStream 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 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 . + + + + + 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 coded input stream containing 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 + + + + 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 . + + + + 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); + } + + 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 := ptypes.MarshalAny(foo) + ... + foo := &pb.Foo{} + if err := ptypes.UnmarshalAny(any, 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. + + 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 + + + + 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. + + + + 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); + } + + The JSON representation for `Empty` is empty JSON object `{}`. + + + + 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 that + 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. + + + + Field number for the "number_value" field. + + + + Represents a double value. + + + + Field number for the "string_value" field. + + + + Represents a string value. + + + + Field number for the "bool_value" field. + + + + Represents a boolean 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 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://www.joda.org/joda-time/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime%2D%2D + ) 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`. + + + + + 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. + + + + + 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. + + + + + 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. + + + + diff --git a/Plugins/LC.Google.Protobuf.xml.meta b/Plugins/LC.Google.Protobuf.xml.meta new file mode 100644 index 0000000..b870c7f --- /dev/null +++ b/Plugins/LC.Google.Protobuf.xml.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 9aca7646ae97f441fa1849eca0b99f5a +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Plugins/LiveQuery.deps.json b/Plugins/LiveQuery.deps.json new file mode 100644 index 0000000..b49ba21 --- /dev/null +++ b/Plugins/LiveQuery.deps.json @@ -0,0 +1,111 @@ +{ + "runtimeTarget": { + "name": ".NETStandard,Version=v2.0/", + "signature": "" + }, + "compilationOptions": {}, + "targets": { + ".NETStandard,Version=v2.0": {}, + ".NETStandard,Version=v2.0/": { + "LiveQuery/1.0.0": { + "dependencies": { + "NETStandard.Library": "2.0.3", + "Realtime": "1.0.0" + }, + "runtime": { + "LiveQuery.dll": {} + } + }, + "Microsoft.NETCore.Platforms/1.1.0": {}, + "NETStandard.Library/2.0.3": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0" + } + }, + "Common/1.0.0": { + "dependencies": { + "LC.Newtonsoft.Json": "11.0.1-beta2" + }, + "runtime": { + "Common.dll": {} + } + }, + "LC.Google.Protobuf/3.12.4": { + "dependencies": { + "NETStandard.Library": "2.0.3" + }, + "runtime": { + "LC.Google.Protobuf.dll": {} + } + }, + "LC.Newtonsoft.Json/11.0.1-beta2": { + "runtime": { + "LC.Newtonsoft.Json.dll": {} + } + }, + "Realtime/1.0.0": { + "dependencies": { + "LC.Google.Protobuf": "3.12.4", + "Storage": "1.0.0" + }, + "runtime": { + "Realtime.dll": {} + } + }, + "Storage/1.0.0": { + "dependencies": { + "Common": "1.0.0" + }, + "runtime": { + "Storage.dll": {} + } + } + } + }, + "libraries": { + "LiveQuery/1.0.0": { + "type": "project", + "serviceable": false, + "sha512": "" + }, + "Microsoft.NETCore.Platforms/1.1.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-kz0PEW2lhqygehI/d6XsPCQzD7ff7gUJaVGPVETX611eadGsA3A877GdSlU0LRVMCTH/+P3o2iDTak+S08V2+A==", + "path": "microsoft.netcore.platforms/1.1.0", + "hashPath": "microsoft.netcore.platforms.1.1.0.nupkg.sha512" + }, + "NETStandard.Library/2.0.3": { + "type": "package", + "serviceable": true, + "sha512": "sha512-st47PosZSHrjECdjeIzZQbzivYBJFv6P2nv4cj2ypdI204DO+vZ7l5raGMiX4eXMJ53RfOIg+/s4DHVZ54Nu2A==", + "path": "netstandard.library/2.0.3", + "hashPath": "netstandard.library.2.0.3.nupkg.sha512" + }, + "Common/1.0.0": { + "type": "project", + "serviceable": false, + "sha512": "" + }, + "LC.Google.Protobuf/3.12.4": { + "type": "project", + "serviceable": false, + "sha512": "" + }, + "LC.Newtonsoft.Json/11.0.1-beta2": { + "type": "project", + "serviceable": false, + "sha512": "" + }, + "Realtime/1.0.0": { + "type": "project", + "serviceable": false, + "sha512": "" + }, + "Storage/1.0.0": { + "type": "project", + "serviceable": false, + "sha512": "" + } + } +} \ No newline at end of file diff --git a/Plugins/LiveQuery.deps.json.meta b/Plugins/LiveQuery.deps.json.meta new file mode 100644 index 0000000..b8364c0 --- /dev/null +++ b/Plugins/LiveQuery.deps.json.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: d44ac86a1875546c4aef7017940aea6e +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Plugins/LiveQuery.dll b/Plugins/LiveQuery.dll new file mode 100644 index 0000000000000000000000000000000000000000..12a2616dc9b5b1934d7aad315a5dd456552dc4a0 GIT binary patch literal 22016 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≈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 literal 0 HcmV?d00001 diff --git a/Plugins/Realtime.dll.meta b/Plugins/Realtime.dll.meta new file mode 100644 index 0000000..fafbe70 --- /dev/null +++ b/Plugins/Realtime.dll.meta @@ -0,0 +1,33 @@ +fileFormatVersion: 2 +guid: 97f979683f2f548698db0f3c23f9ed70 +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/Plugins/Realtime.pdb b/Plugins/Realtime.pdb new file mode 100644 index 0000000000000000000000000000000000000000..047fca6fd54fc42eb3d915fe712e046d3f5fa1e0 GIT binary patch literal 105448 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¯zi#LFc+HJKyt);i==|Uf5zhdRLcE3* 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 Rx(ie={XLEWqQ9Wu{|CEIpr8N% literal 0 HcmV?d00001 diff --git a/Plugins/Realtime.pdb.meta b/Plugins/Realtime.pdb.meta new file mode 100644 index 0000000..e889f92 --- /dev/null +++ b/Plugins/Realtime.pdb.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: ec345c2ff01624063b31085c13a41436 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Plugins/link.xml b/Plugins/link.xml new file mode 100644 index 0000000..a083f9d --- /dev/null +++ b/Plugins/link.xml @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/Plugins/link.xml.meta b/Plugins/link.xml.meta new file mode 100644 index 0000000..48c5542 --- /dev/null +++ b/Plugins/link.xml.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: d4b306e9849c14f4a89caa15876745cf +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/package.json b/package.json new file mode 100644 index 0000000..8864bfd --- /dev/null +++ b/package.json @@ -0,0 +1,16 @@ +{ + "name": "com.leancloud.realtime", + "version": "0.10.9", + "displayName": "LeanCloud Realtime", + "description": "This is leancloud realtime package", + "unity": "2019.1", + "dependencies": { + "com.leancloud.storage": "https://github.com/leancloud/csharp-sdk-upm.git#storage-0.10.9" + }, + "keywords": ["LeanCloud", "Storage"], + "author": { + "name": "LeanCloud", + "email": "support@leancloud.rocks", + "url": "https://leancloud.cn/" + } +} diff --git a/package.json.meta b/package.json.meta new file mode 100644 index 0000000..41e2c42 --- /dev/null +++ b/package.json.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 6e496b27c48b24bba932382cd5fb440a +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant:

@_`wk7JDZVgP%%USnCREX^m_qD>8&ziL7g z7Y_~@Ir6V11w3s3riGVqA9<;MCffZfb9SB0iX(Yhclq2c&+eDGRxMf+)_M61CiCFA ziipBMdjk)XZ@E4pqeu`QkLJ`<2bSg@5#F8YpPPM&hbUm+SgbOdxSqSh=@@qLP1+t& zdFHy`RU_B=377K`Iz<_L%5#9L96)9|JKMEWzI>(KlWrwFUQOo#1~bKQJECOtP3Q3z zVDI!@8IB27IkV42E*cv4b9HlY0jE%|Ry7^piQcdELw>e-U6ZnMxH?)7c;H$lU&ID7b!AEw|GU9UE1P!l`Zn~W|+t_e?#-9sqIPN_5 zuFP`gZZ5v_>CaYQtGb=B{XkN|%CkR|aR9h7ft9}H6Xf`c*RY$d4u!!9hH|J5`3?rq5X@`GN#HY#jFS#mk-($x~a*^ZV+%*jt( zu&TOBF(F_5oG$Pe4=ls_0!Ck@!j=zG z87gVDyoHqD>!OQB-}tlx+xK;>i}Rp~?q+9{n^3KcPIXRN%G(pO48x}t7*d^pgAMb{~*8Ays>!}ZzEuZ+O2lutyf92bqD<75+r1|A(plTbLFkquYYqbD7-h|+e;U;S%;T< z`^>ZH_OyjDxy>gDK{W(*z4PKPkMv#sA2y%5dy#C=#0s#T{ifwFn9n$c=lXpodQrYM zd(F)Iseauic4?uoIW(1Bb>T2iX6bEC$~QSb9mp)3leRHK~5&tT;Sl=e?ZUFVg3$V#=ppT=~yZhG@vvN#H4C zE8qX*)-UzgCpX2luXH6`S2V8Cay6~eke1)!bO!wLZ2QIt-=saYySEe$Jl3fdNN*}P z>Pq!=`Dl|=rY_aNazDD2l!EEob}8f`^39!M9z8N9`u(F6xqGp*%H_eSQ?A@Uw&dx|ZvSXPt08FMEGc`Q ze_+d|y{Q{#*3N%*#A?VtN*NLpo*;)S162uJsN#!e%iOxh$)dd{-dJaKID6r-JHP+7 zzAC(>EHFZ=P?ghU9Pe|ueKpKh-ICy>Sy#7DcJI}*)i|=A65v_yXIOMTQ(CE}^{o$; z1YEiN`r@)_Pf};*7j1MI_uYJA?PxgQ^8Df_GNQ`88?8?l=YBT({Y-G=a zTOT!h9Ot@)Af3D2d@rB-SN7r!7heBX^mI!rMTNAXj12nEoVr0j9ql-)`_ZgvL-%R^ z9ejptj7{n+pcbd!M;!Y2`Ve~2xwna1h8@t)d>lx=b9iXhY|c=kbNFnV(ffxTOWTum zuXl<64d2#=vZ(%W1Az=W)%>j4J!rc!t2GiXVaYa3)Md@EezCdx=$vV9 z&e%Tc_wi8z($iW4Tq(f^E$I~EU|-%ok-bV9kh3QJ*YqFKpLueKLA1J(DXc7SJkS#j zXNQ$tp0j9v#)`$yoHoiPkga@qdUJM*S(?6aQ}4A<96-B@A;dmRn8 z*192K-|Y;|$XZ>Ybb09d*F}!GX(449Vf$V_rQPT4I~JuK?3MjY`P@i63^VdRjb3nL zW>}_jTCq1yzN~5%dcX5BIfP?w%OR-Qsf0Aq_^%yB>lZoYuCR)zn0WVEAkUcQdzNKQ zA!cR_ra?M1a%l2WRC^*`8>&7J2P|P%Od!RTp++ zU+ud&vy_yjBvNOQMQS@vI37W=%Qbyc7^K{lyBEjCui_on-MMPsjKqt8V>Ux;d>O^+gJ3)49%BoEP(oy$1MyMeX0xO-vJr{}f?T1gBb!4)Q3!-+SwqB%LWDx8vG%At zC3Zn>A{>V>2zd$}ZIFn9fCx_^#2&D@PHp7cs`bTuft1(@Q8^SuF@Qjb3QNp$0+aI1 zJ0z~iM+lVyVTH2|qRf-c`y^f{NF;XV6&;15z~)8Y@QN&=&Vi_|LNSD72`fCsh#F+R zEb&LtBC!ZbDTtczp>Q~tu%eqS5`>y>OFAMaq1XyZpjm?9BIt=m5;=%WR;WFN0^$E) zL(IPdYdgXU0!1WQpdtz}22`2|`6CXCP5~h}|$(N7>q;D07Ejy|Y1T_*z7()k%uMO%#4Yff6%0&DXZ;H;X|CQ(W zPYUwkKfa7U@Sj*MVi) zD1k^tA!kYqE>D>tB8W2Ka2+S}QAs=GfnC87J0=vXJ)j&yYuu4XUx^(UE{;OrKM*E1 z0NJx4Km)9VLQ|YjD26zm5IY4=~;paX{rp%O?q@+rW(BRpYpi$uaP5+(At$1Q`1sb<_ufM+|T zpgbI53*0uyz7jeL7_;%*ky8+iwk-nwaju#?(SR zSP9bYe8Cp?D4@H8OdNj|asnQ=aV7wVQGpsOO6VZ*zyk)7vta=7@&G}SP3=eq#v(}F znsvx=D2ap)$Eu*WK!+9badCpq$i`s)z~g!d%WRU^8(;;HLdWB%O%Nbt1vsOKo=#xJ zVAe2@CgtCz*altTp)2m zZa6d*dcCKx*?e<`^#~zQP8y6|o(;~!?huakID+`_fmlB)Or>gd$D(nJF77!WuIE@K^FY96NYTH+!v;h~ zH&cS69mBW|vqJ9XS)j$0f)Rn{*kC7XhjY+@yq;nwO(BRYgA^Osh;}odfc}O)Bx?pZ zDCu3vENla$EJ*R@dA{&sd)32y)(N~DV*0>xFvbe`ieU$h#;)YZE?)!iCJOcN2aK@V z2%$5f_c>RBrLrRm6q-Qu02EpZYg<NO0f51z#2ST@m=6=Q&k%Z_n_4|L^<$`DxXu=Tx0Kb?Vf9 zr#ay08%uGiRBFTjUwf@odIT~5ty1{E4@SYB-v8M2(kCZBv)LmP_J3xx!%jbAc)_`8 zrQ2Sfnq_J9ZgJsuDNV2%ew0O<9A2mpN^5CLGW2Sfmv=K&D_=6gT{ zfPN2%0IdW0TBQedO*ajQGzyA;-m}V;wdSd=G6Tv zCvd%T)Rw@%%F)CGPE?Md&i0IlVX;aERokLy`1A>-amh4>- zqfAF)FJ3FuS%Xf- zVv}Jon?e~(6=bY~3=AjAK<`zu?VOCIisNjV;balFMA-p~<7|J$)ohL85o0GPL0L>C@SI9*el)xd zT*>oItYy)01|@oEhwRm@9X< z;y63Pl|R(V8=DHS?M#ia;}nxMNF9z+nJ7C(ahx5kxSFj~JYwtwwNn;T$+m1x=o74O z)Jw8XRGBC{NpYNQP+ZN{D;_a+g4!vIDU-EBv=QU7EpBW_$sx7W)f1PtMEj?qp62G9 zBsxotWne9i&;i4@vf~UdH!z)4%C$9?+&CK*G|*d>EjefOZ9Aca`J;rT#^f|G%TyZZ zvr1)PDp~+$rEw3$fkwAhmb~7AulyG}&e24{Tu}2_2T6){?A5$#uxp z*aiH>jY1;51o=8AG%)fii>H>AY;UYWs+j3&W{N^4CMS){1QpNij6)_SCo2=jP+a-| z^o3h>pbfV{m4f&s6EML9^-QCZ$>}Oza155e#na38GM*B(CuwWpw5VIxB$s`XvQLX9 zC+CmJE-l+kdS6G|1;HYseLfM8zPkrR z0NBF=B9=PaLM&H>|1F>T)&z8re2U$Htr~U6A!q4`{#X zdMPl6QFUceIxwMhZXsU-^;f(fv3lERb(PZ{^NhshC6Y1472h+@-Jb56=O(V)v!}Y8 z^5{i{M7l4s2S1#A!4c@!sYCC8_Z4I>UR6jWdxhGz9t$s8(zfO7ff?zM5Zc_E`Sw9D zbznc2k?JqrrI08H+iEQQKM0#-cA45P)yEC2#alW#Y-)N8Tj%_DTDy`RZ8Aw&W8M$m zPoo2EQYedy{*6oMpc0M`9D|R8A8XRUGQ-ioq65sbCXXrY7?SPkPB-dT{1x__BwJ34 z(o>+rfCvC^Is-&tKAljS4W00R%>VC&?BoFGRe^p7B4#D%9V;P%`nQyU{l}L< zH(41G}~Q#rSXc%60nDOzQE|Eu)fL%qpFj5nEVb`UWIE67B*1zwIGOZr{>fwvEM%vi23&x15!H*;@DtTX>jnp$N3_ zQ8IUlW+#u)Y;p1|)2M%9X#?svfBiZztjU+dMcrLT!dc!ezBkKrnWup*EO=#s1>U3JxfR0Ndp+vwv-a8=!5rS*FDxt&n2n$}^)n$_OXe%7>T(&S-`n2K3qdjHEb+d1BBB94zXo&{h@G`nV0 zto?88jSim@$ut==xeT^a*48-A+2m-WMO(L()}uYL^+s}*w5$BUlt{^8cw?nfPQL`@ zqsF&k=Y1x$=4p5mj`ZLyGJ~pv*5$eVK(h+rE zeS|)ytlXVU!%9+_J;mx&U!@oWTf7#*Bj=}%!@J(az%N_n)3qDG_ z&{581%$r~l0M7G(2mq-EMC=u5mzn$v_Ry{Zr*k23@^3&CIqVCF*elwY0Z68!hlbbF zY(OxL7ZDV~WNLbd0C0f^L;$$Z10n#x7p#Z~02g~e1p219_WuRija&OK@g+o{4_nLp zeOwu?Z?loFi$1t<1jS=N;&J&f8^;9$-SB}@m-;G10NCgO5x=p+JtneOQJEWUlp77h z!7CYU=SUi@kU{rHJ3^Ov&;|P$On;T^9PO{7tf9D?ovnDp;ADpFx0p&!W>=uScGo%I zWMF7jved~Kb~4U083rdaO$JkiyH4zjOZ^2I7djaiD~_{^6j!qg6pt7?=`dMLjghs$ zWSv5N@D`za+)QztjVP{Wmnt4HcG79Gm`Y9yZKGbB6=YqmGEsJ=;yAlPaWxxNJYwu* zmdRqOAd9wMSZL#$R3^%16$qF7AE6#+UEu*<86xL>_)|H*-eV8*;^HlST^q8D3ht=%wQ+#wWy%ittt~` zw>cSaHyH*e-6n&nf?kxdWkJR}os4%m8Mm7ZgA?qWs0UL88SF3YJ82*F{hdz6dlbjn zU5cyO9g0Vcoy;*=OcnZzvXX)Xgh_RDilf~2+Sz8xmJ)kmC z_94Y__Cdwf?0&@~#!mW77E@znVeJTQ{HV%A*~b;f*~b)DvyUhqF*c7=v=>ujWDS@s zjonYGOq6{}ahyG*xSBnvc*NKVW(>+=s$hHi)#8GzM^z@uKBG9!9#h_>{*vL7p+nEgaC-lLv3 zVq*4!h-&tI#Umyl!Cb`JnBs*XTEKPG)|F*epM3M@DivkFa8iC|QVix(6QwXUrmwd* z8E}S5_TNs%ubhlunhb*z%s!OCl)Y~(jnZFZW7)WfYH{tJ7?n!PAumq<#+|i0goLx{ z3s{3=ZD+#iFlyH}C;6pV?GZ}(``u{Ly{BOln*25pZtih(QkB@N!v!+HJQ-`r5u?+^Ux0thHQu;b7g`BwMnPxe;|A^D$m~)D9 zu6PVR9jB)dnQmow?3f~R&Fbu!F5@ij>F7+b)2Ymw6?M!?-U7Xn-y;}++|J}jJ{cvy z0~saHBW%1IL7bjVu`^68F0#n)m|+)LcPaxuUO2aNW^0C-mf=0ha04@Rv}WkI_YBy) zaW^v1Py65#2O-{pKCyUGtOE&d)Z)enbgm3+hJ^@QunJB#0NOeyB(OpS(PfAlt4NoU zQAA6=V{b#47FyqiW|anav$r8WO1$Rk_2UC`S=bA_covP)FG1Sy)gY4^s>5058s^(2O14HaZfm@exe95>Z%HG2OB&U+q){8vxI&Y> z27J7jylzbH>&K+uIwpO?nDmWf(l?DszimwV<}vA8ln&axy)}7jYx1_%YtEZ4Bxms$Nuhy8ka_z=Hmn>!Sa?-vKJz~4Qd$rF}Rb}xq*7W=IX=;5ZW8QYIPc% zEU`M7N=`<0J3sA;`D163@h-}URW{1n6vx>_Co57sVr)K-Q-7wCJ1A=~eV%%+27Rd; zQ~A(>PuWNk0au4t86W}x+{yqEg<%7KF@}h}5=@@B%RL;XNbX|2VOoL^_>$!n0RYZq zfCvEaCIdtOfIk@^0suV901>!$)gVmXgSs-fS6l7PqN9yWM9GOzjIT?K> z!{B78$zW=X40uggM>caZ7CIRVOoqV;c4X9psWCEkHyQV_O^ck2EuD-lOoqYyNQ*L< zO73s5@g4;|wstaVP6j>+;@Q?SZ^3~!=k@s7_x1(y_`!jk$hN^?2Z?H$8W6gJY)f)FE0$TY0)~V_Wt3eh!(|-9T+KNV;7RH#tA6YSk0WlNue|S zbS>h2%$BD^e73!_<#NSwwu9ofY)8ctvmwRRY?ldK%XU{hG22sd zHCv^4#Io~49m-~^ARC&O_A}Y%(-vz~Cd&3#9B2C}Zp#i(JTW^^G0r|~jhL7nWJEbT zSVT43SMi8R;zxe$$0@F6M=Kt&Y{^b0lPQz=6Z_V!XW3+U9-d6fTVnUiuiyGR z1zk~qdY4T?rYnWW$2b?lZNuDiqUyr;UW)O(mtuVHrFg{H{N|MHVye(C%7PCBS*NK? zl%1hC&Q4cc%}!N3V(bJXl(Lu_BMbZbAnP2JiL!GQ$5}%$?nf1m7(0Oml*N?E3PXy0 zISl;{HktkOp-g3?>@vl;OH|yJU9EUxHmVptbh!}|vn!1#XIB}~o;5{Ovk}E3CNf!N zdN5^sn_%lhto{wG|2mb4vbQRZv+EUCv$rT7F?NF0g>7Q0uxFtU9cr>ZMp-whOqAWC zIL_XtxGlR`aW%V9@rY$hu-Z^2Q^_Y#+}2piJj`V3?(Q~~iL!Spj~6(z_8!G;*?SdNvpW@!ShfVK5oIz}kV!u~!enah zx=&@I?0&^@_5sD!?EQ*IjGbUrqAaGy_}P&KSszlFDEo-wIQy{TYW6|JBgW>JFOwd^I?^Vvd0w1*&~YE zvPTtHvrj1=v26T;hccNOBlGBj%*RzG%08<&&Yn=*mOZJsntev`h-Kr)FqFyE7@5Zu zWInAjQTAoUarQ;UZP}L;SFtSG& zKUdtA{X+4?>_x@Z?5B!HEIT(Ql+9E@Hf^xpWb4fLYn6$z-zbi=mlRjCUnw3jHorrm zET#%)Kgv4MWIae5{9a|E?2n4$><@~o+3ysO7(2lXPgzXyZMtwC!vq=T{=cY9l>JR{ zoc&dCHT$#T5o0Hq*(r;uLO*l-oMf`FH>_m;R+%V!MRA z)&>k&uCy&auRQ!I$mgFNmD?H*gPbz3Z+qhr5L1USfXj;}HFo446%#D!I%!O1r1u7G zAK^_jnV3Y%)5;ClwLH1;C`7b39z(d~qd%#%FD|#+=g?*MJ@i(k!$@rdDh_Mr_IJ65>g?^)~(+aYtsZ5m3 zP#kB|6<4#Vibssi4-Y7dsWGy!fe!xEsWMSEOL3gdR$R?G6pt7?!3slJOpTFsMnP7$ z%0yX@;y9b5xSDk-9x--;PN6KO#>m3HHt021WpH*>9B1 z3$hlfOq6Y|IL@|ET+KF9JYwtwPC;2rjgfU$K^FdeL;k(BV*DMBV*DMB;t^x>iwnwP zYK*M23$m7|Oq2~Oj6M~t0dC7~>)#>hISAPeUz>9tI8oNceTnr)|e#MlW| z5Xxd|jI2gM){x3X8BU3i8D}`UA+BaSDjqR*f)#_Zm>MJN+=48e?xfeQisNjR;%c_D z;t^vfSTQJzsWGy!h=hLJU1e~FQXFUadlu=nTJeanlM_r9Q)6VM1zG#3OqA`bIL_86 zu4a2H9x-;Z-efT~Mi%zZL9YW;Cdv*}9A|44SF`;Uj~F|_M8-BUHAWT=aY5E0DidXg zDvq^+`%HVvaIL?kzT+NP9JYwtwGb&{<6=cPwuVT)* z5VB%@IE3$?_{3y?Xn@H8pXBR`K!4cMjyI%FWBOcq6Uvm+?P5GsxTmA8$@XqC-Lenw zgDGn`sn|Ja)gY))`(tVw11pX~}0KxTa>Y}dn z3}|upqVDwPihI)I+L)e`;=vMeZ+h@V#(nA66wgiJm`Kk{pHw_QUD3{T|K#*RBP!{V zNkXQi_ZcxY-E6XuY3aL+n4VTELT02l7%?-QJVi)HdZiJa=_^LeN-vr!*6j38MpV-` zOcTj1hh5-ZO>FO`kGiURv)EGCzIDi2ih&P9Y1@ z`;FKv-F%jih3OqeY@T+{7P3WplM##3DODj`rdJ!WRr;C{NqR|_SX-xmF`|~9-7RDw z{cj@{rziFZS(5(Hh{5#mIYPEcpEY9Jbl+Yf+ohj3VrjZ_pO9tg!$xeMZZ}uR^7Mm7 z?2s;+CuGO;E+dB0IrD|ANN+Y`Wjd{2NIiX%5j&+576{on-Dt!v>EDdlHEnDr)~fW^ zM(mcJv{1Y)c_)(hnQ4 zU%J&+LiSJJYs3L*Un1nd^zBBhO=oN^CgBMwgEnvg@%%!otNe;9FCdftFoho>(Y zaYTB`Vj)MS&l|BWJ!*-Nqtb60addjXppawIFBx%cy4yBFj!Qpn#PR9!ZH1hWe$DJo`IWfJ*hz;qyr9w_hZ!_ZLv}2i&Q_{B>acVkodm*Q#ml<(-`Y$8SNQak;b!PfI zBi@jnwu6wf(w`b}c6!W?Le5FQZA2qoJ0#@X^eaZ3m+rnoNSZ!w#BjRfN+IW`A2;HH zbf7Ne!t`DvE=v1%5^`~RyAhY9vvwA8X?nd88`Jh(gp8z@8?;3p->4R4bznb*djD92OJ$D!WCelwDeGTaq zdkDXl^n*sfne>u9g};ULeMVnLdb7QRUr+j7M!%JGb#LJ}kiNm_8%a;zM>v;;^h%@O zM*0<_Zzg@wzRGh8=|36$cG7QHBm7pJ8t0r+ zy7vLX-%a`{qwgSHKTtSk|5Eyp(RY#FX07n|kiOsO_mbZHAmMkDzQgEyNOvDB{C%Wv zGWuT9Qw|aSe$rPPeIM!9jQ#-WOAb|@`$_+Wbn*liEq!Frb$uPnPw(~JT7)(&;-4}- z2_{yeOgQeSTd#ot~$-C(RVk zNv~Dho8HBEHvSEN*42wu(xfNffS?{P=z}WIojyLMK+mRuP~g`n(CZ64>k7Q6xF`LW z;yG#e;jJ~!*|azaXv6zQw->NvOvc_#OG3tOWbCi_oI5fn8o8_Dp7a34bJD{V_oink z?n@3Qi*isz^ID#qgdD2akK`Zf)QDi36pQ+$;svfGL5aaGMpza~+=>30?P zr9W4kSNSKU=cnyQP-RrvZ$xEW-E%i>6Y72=>Yn4P-by99(`^*@q$?N~l%BU~+feYm zMT71=Cgc1~+l7puC}uovOve7no0f*0PZxE$NIG<@!a$w#q-iHDW0Fcs2CQUaimOHNvlRoNjEcMYC2%V zv~-0L)6;{Ez~B8DF*7~Ih>rAnBRbRjjhK~=HCX?YP1}doU=v)P>l_{iCWAo>xa}>{W zcAKBtpn!drh|yn3ml-i7-P?$%=>bMeOOG*PdV01IGu#;IpXmojhj-b|)O@&q);O2# zpSEd-(3+31HBX1kvBai!-t>-MH!Q@StxuHw1r zi;Cx^e^5L>eOWPjVd7EFOJ^7{CG9g}s%v{c&IRVu(^DG@{WH?7EYHleZbV1A)`-sZ zBqL^}7Z@=+z1fIr`j8P_>9>vOPXA^^Pug*`)R>d@8PS_AGNLct(TKU}S|jGArx`In zz08RI^zBA0NbfRYv-G1zEKEOb#OCSKB#PFZxoJhPF1}GO&-2DL_v?1e?Qw>fdPOySoR{J|QVWoHL>hGXwSfFim zb~}g4ZE&-MyS1xm%~_jv3X*0{EUXK@$u>c_Rj^oc_NJXf$$?_Yt>kyz&To3mk%}d& zn|28$_bQh3b(&lCq#9wxl3km24JD5$mb^pl>vq$5kF~#8vU}62P;$6f@`J9VO$j}= z1Q$#8Y}zf9d@D-kvyfNUW}kf3e##l!HVA!g@|){64)fd`IN#5Fll@#+NuO0o%tAjW zQPg72rqw}lmQIbWl;YlWYsDDBis#zk zEK2U%v`3KqDlIb2kCXjWq&q!IaZh@h;yEe)$`Mucx^dIz2L9aiO5yX;cPXClr-;dZ zim3S6Y>J=FrrPi>sxx=fojpbsp(}#OiOPwVtV?J5i`Q-w`E(+@j!o+mKdQNB&_DZX;UI}C4 zYR#!dVZA|^m`+%4tFV`yu+{h-Hxyp9q`YNw2BoZt;&gBH8$VGPkiBa7Q&r}fjg~Ep zW*dfbw4cg#jxR?Z%Q5!lgzXT;7wACuRT>%n$?rKXQqSTG_9anQEsmB&-8KA)D>B3l zhJ!%y=f+AiwDjXjGqm(mN;6Epgx*}NLQe~1n1kwZ*Y97ZyGaKg@}WmZH$EVH82J}> z;M+3RJ_X;He+Ai21mn}5K{bkuCq0Au6d9i(1pvBp=O9Q-}5q14Qy(u;XTI8>wH zYtqte^&V#{r{%18e&fHuj!oIdGoYQGv*Z4mo=1HhPpX2~<9Srs@uV$y3q4O-e_b-A zGk7)6lkVb~=2K1axbZC2<==SlvScsVw9DIcX1Uw+Og16Ux^-Sv;nXq5rKWJ|m*Y}V zxVri|FGuPLS8scKj8VVA?D!oj+A=PUI$Os2I|KFlRD7$*UQa%SAa1C`iAlM~gh?}E zQtSy~(u$ar`kXLnL`({O5g4Y07z4uj-Z!C(%{kPCms=OZRs$E6`)4knQl39p12MR4 zU`DyWXK-b?f8pTn<^I~>{$5D(Enj|M4^;APq@?r!hM1+O?m*&GRCJ&hsqZi+RUDvl zN>RDE@m(+$RaTC?_S$PUCa~GizveM`UwO5BQ#)QNzK2Zwo9)UdC-1INPKsTloXxsM zISr+UV)7W}RAQ7Shu-FF0Qk7`!>C9zeYcGF^q-58ZzGLaxd-_(2B7g&(v~p* zT}5QGH7U;4-=P3ZN6f70sGE$|X^cEhM~wY+Bn;&!Smk=hmm`nm82fU8GsS ze_u#rwaj7P12=9k%%`8^M*v+XhPycMZN-|wog1-*~#0}|7OhSJQ48w(rI@@Z@$#bYD_G&if zhH&LJIETL?xX|af;l-@^pkW>PprLd>XqG%td!l))M#(K4B|qRO`5{LM9p6R*{nDsj zPvJfJj0t zMM`KcU{C%JbHP=?x1>>FPeH{RKZYplti{EtKwAAoJm~~pub(EQn|P)fcnds_8aAF+ zIqJkIgmGcta1QkG`vz&Gd4jqmFQ6Rv4f37E!qqjnnJ`?c2v_fT+|+0*_pq$0o=1|uB8U>I5;tU+XO&mlATML){WkOd zU3sZq+>oJuDN5SY2NWmv>1Y;d4b?(ZGk zr`*3_@MJH-rZbivI2Kj>4CYGMoPh&hry?g#P zXK)vBXY)ACiMMf1d=Ytue~Dm}6JOUTr;e^sjp*Ly)@)Z{E}Y}%Lj0X@J{P_%O7M5T zoc)#{f5rfG4Ux@Oq&QnmVxiUeIZLFqwl5~5bx%MZ*LKE!Z5PIwLJv1HDCMgylS2hi z++bK(yIHH#A|K~?sR(QLROHu?WkEk=rM5;U%a0qGUyKqJ!^jB>vx?i|%Q74}s@pHV zT+^1idb##WfX0F}4r{Cm)Bjbo_y5nC%c~IkRAr_>WB8D&QD|<+H1~*BpZ2Zry~^Nh zpV$12+42RGvb=vRd9HSA^LRPOJLw$%P3QO(or9iW%cMH3w>ikV3a-)XU84u`(A)NB zsazxd*o~52svU3K7DY1#pqG(m0D1?~3_!0S%>eXHq#1zTl{5p;t4T8ey(eh~p!Xro z0Q7#O8Gt^JGy~AvATsYHMeppR-tbN;Bkx>FMyq#{NAG0py;B$#MK;LRU^b!FT+Wb- zq8RI4gVjE+!Is^x!Ax-tW=tj6aw#!Hpj8R-s03rLgfORst<1DntyyR2mB7kO`B<67 zbV}qavy{Nf?3JLIrNl0j(y9b`RD!WrLKu{1m#Exsd{JpKeTe}gPPVxy1V2$>3^smR zXYBWV$*yGZ;)zxWa(4IGX@-LCGKLl-PEszrCfDNK6P8E)ixOF;xHQQ^c4m})zzdg8 zw3EAFl8L|z8%3GQ%E?gRg^eN&)_4ila<&35Tt3NWR!$ZJZ>is4%5uh&-M}02JlfC6 zle?Dw>?p4MfW zE%EEJd6saREWh)T)r4yVh5WLZaGHug%wczG@+{#ROd-E4C0yev;Ifi%nkSbd3)!C8 zETTL#1%Elj>XJ2t(+ol9F%IST7-kFX7WL0I9I^&C95TjyNQoQrA!0JbLSeE3F&SY? zVX^=*8K5RittY0&4+>MuiK*dBg{jrV)aV_Asl~+T3&~1h8cD>|@Lhzd)x^~3)xa># zs?!zPCQ0i(`@S9HMtk+YqS?5_TfUHYd{en$I);~gClBn*9s3)&V?UpleA&R_a{thB zT>UK_ybM(RY7`vkDfh3cUn>!7>ik%(+<#F0?TCHdw&`NEIu$@Y-R{w(10zW3j*!M2 zILGs7#)0)n{Q(`C(0~JncpgosyG2Q%(R8<{oHUp27Pa%Ip>$31M@pfIwChuSG>+f( zt$giOf46ux^ya_j3EBkS!A;3ET~x`=LaxHT^24So?p_W? zF6`+J20vo}`Y_TAKp#n(0qCPiGXQ-YX$GLzlV$+=B+?8(pGukm=rc$&08L#Qe+yd0 z8yjRY05c`c0Q5nKY@nY=g@7*P2H$AU7vDd*XP8E zi(Q|=Vb`Z5c72TDGjcclxq)R{pxq>Wt=2rJMec$iS6nZ5L95*7$LP6A^60O%=6Nmh zRt0(DdU>l_Ca$^ypv9-t;iA@k>$&3!BGv0vQ&-V+As_9prkY z85S~~ERdmPI$ddomOe{qhL%28X@*M6wr)WG9Ru2~5-(6DhF0hjr5Rcw4rVvF-8NP2 zor5)HquZw*fy~@)PNpOlsiebl{-Mc9o^uwv(X{@sXjYfUCe%_XR!H2 z#yOrrI}{nIXV4(|6(z1AG{t=t7U8z|BA<;W$+JbtM$e#axYc#9vYPm`ccrObfA1QX zuuSM*l*n4xzlCcRS`$d}4 zm6H|0+t%}FO~;cV!3%p=8r1P*OYp+pl{R&ks)dmR9!QwVC`Z-_mM- zj}=<~Y)>nzaDOPH91byYLlz+>gB&GH)*vQh94AbcASOecC`?u$CL^38Oco#}1DqjD zttY0&pDj!+Cq^Gh&O=}$&do&sf(7D++Rse%jpRZVlpTo4441N?a|YXM=t7#du=|0y zv_1Sn`&_&YVRM=+AK=Bb_PGt-Om7@G7?0WYD_|(RXVcTJsl-rVzkK=HczM-Y3JZ0}2LhVCKk_P#Xz(Ax?C?LKt50ouvZ z=mWz(Kg~UG3R2?H&;v*M6iqy^uTRmq19had1EyJdRbCi;|At|;DOLuWG~X1{m|;`= z4Q`5gzcLK9_^-KMd*b(SPy8~Z4F3ng=vuVRHoDx#8O4nmw!GY68Nf{v0B&{=ahrmO z8;q_|ZVdX@B(G2wXNRs)F6mvPT8Mj_!$=f&#&iA7_)X9?T(kZ;O0Gp3+s%uRKVty; zQql}SXQUZ`J|B^7Nl9@_`eq7Sjh_rhTD!Un$!Oixk;h#fW525thH|V#c*pYJKOw4*a;mu&`UWQ6R$tc#A-W zIVdwZV`+(}FR&iYv3&b~E3#{SXANO#ew#;GML=)$DC_X3YS0qNei*kzvc5B1yIgHp z62khZT5T;;o#2J_QFR+nHG>!KcBFxLRzH>!R^NIrvca{J?-gpNCSI8`tO2T3IIGL= zOH`w98Pw+=)7pHZ=2?7Q=s*6psA}XCrwXr!^thqgh^exhgsCQCs_5;&Fz=`_3hlfv zANO@|9vs+@NBsGm`nKW$e_LP3CM)LG8CvISR-S)qz-l#Jh{p>3bg|@vwO=+*)C6%4 zCkR|DRrvSAl~Imhn*}(ijN&jcN{-*#Yyv0_^Lc)l-;FxLF#krByboy%;meWVeNI5K z@q0Y-Wu(Bn43Q0QQXJm*nh=%JLq2oj&N{w8f4TDj*{v^X_W_C<4D*+C33lR(d)~sE znrhIPVA0^`)I)wwVw|6UF|uMs=T>oh#a3ZBDdXUz?9ZjSkD37aoOJ#v46pa-)|y*= zZl9vhnFPEE%d&VA{w*w;d;qP85{fiqG$s&mx|pH0+_DO21y`K(MngEBIfM8U<(%Za(brv4r=6jcU5IP2z!M9rvQRjH$ zRmh()0R1M?3_xFr$lQe#-Q`mhfa5hY+l2wM)|zi*$g{c_>zy#k;e~-^_ZJ3C@xp+y zTx~l}*^g87r&>;fj{u4r4DDn^Eu2>7Wt<0>p|3{Vy!#lk>a4^vJj(nCX5&W{EGai5 zG0x3k36(5-M?nE@d#Lr)HXW6~)F-6~FEZ@Ua5hdSXRcH(S=}6b6q9;lR*P?I{Acb73%4n6{4m<-y%##5jM}`Q}jHH>P~^I_A{* z(iCsrK%gCpyLvFmhLbYubMCLI;QnfeJ5+Lx-5>JpOzGNSHQ4#gHN@(eggSU+Q)}EP zX>EWXC6w!Zisv#jjx#*ZJ!T(g^vRHmX`eRYkfP4X*Ac)Kq^$Xrh7{A<55^_#U$oXA z9@cu?-Q$a0U(ALVOANq$*gLT`P3Hql((IzxnpS}d`5Ae@4n z!&4EAa@_S-Y+KJx>F-S1sQRfmHI1@Ux<=*Fz0F&YXc?guKSF-aB9eoVW>8*c?aV*vVg(hNYqn=}K^cadfQ`fkz;K;KK60q75qW&rwwq#1yw zDmLb&RJ@T286ef-jh|$02FU#|X$GJlBh3Kx_;Td29AjTj7|OBVRPMdw z%aO-&jD0y_uF-Z8&)%*z-^b858W-_w4=&=xbdAn0;?-ze#QR3mNuB4m(C@ff(A{Wsx|-xXNT9WT@+gO~mm|y>!5$Fkpta_w z7g;gxLcEJ-pU@v?vS@2u_%oPFVhcAYphwkTA4}14AwP z45hTTh&;B4v2T$ul;a>$xhKb$Bah`6`*OlIm{Yq43y!^7^K%UOU?I)$VBypk7Y_jj zhlc=^?JyBY)tK9(dr8 z9$ub3aB#k;HNVy(4-Xtpp159K{=gx5c;Jw{bFA45Mlsv!&4klVt@(9^XF5}f8Kf!$ z%)#PTjPu5UKJR7t9Mj2$H*=!W@k|7dXV~`QznXwQ5cm5QOi=n)+_xkzU>=Jb4DGGr z7fLhCZ!?l#31nCRe=Cq-0sNyth9>T>N;52E`lmpKIjCXjmWO-;#WCuZhyW(9syM^E zIQ}Mv?O)uj9-o~Z8M4py+1Zmt^DgiVc4?8Zg=esD z3k(fFX~|CZ6=>r?RD?ryz;+*DaX-5{vT+$D>g~cAlb!CKht%K2YdZD2UDK)8i`R7O zedDR`!3)n=@&V(?1HcQ-j}1FIG$VtyfZydu3|FfDBz`@Cx~4#*2jB8Eixl7TzK8k4&Rx!ubBDP~I1|!a%vlVI%w1GkGk%aNR}oGh z2~T=9jR>cIp;Ne8m?t>g_-3Z>wn*ZD3J>YXTRsxRo4q=f9JTm zTsZqV;MUc`*}ut8{SBnLILsc!Gw>5(E$5xL<_(^3)yY4FmE(qbn3y{FMPZsKh^cdb zElfR2Odb0>Vd_<4oDh;f2~+P9Q|JCon0l6&I`&_{Y(a4AxShufYq&j3Y64&>b?9r7 zq~0W^&WvG&xS;`0OdZ)SOua}$??LQNnJF8w~xeZ(*(1eFM|(zTqs) z|GaM)ItoO&|B&T)SxuJjz=zh^<@t4dq6)OL&gbYM>=Tgat;3Rt7uF;A0dm);ARhXl zz?I9Z_{gx1iwAI4)@PA(lQ^sE-2&It7b!lZz6>${Jo)0~+m-v*FYhe(ud8n>-un6q z^6)X^ne|md()wPCFRt%T&TeJRe9L>vnj!0Zk}0UZ5BZywHS^W?70yXc<;t4R>T7{w zBP*-ebqdL$BMG~gTDtKNs|27Y6Z-Jb@&Z5y9@?S+(0hm2U=-1%CtY`lHu5s)w?lt| zG9IAQ4!uC2xODL%X9&9*poR5I=qC$>>AU`IT3<%easAu00DA4v<%J@2+5Byq&Z@U* zX-hZN+q9ZX2hHE6>6&_*)+;uh5^vMaQglbY4UBU{ELifv;@iN=cfR7@rk{dZ{MW>P zWCwo>{!v~+&EO@}OkP6Wg8slmGw(C(wTX8UM)8)xDBc@%jq>4&JZ^W5eo7&ayN2?}Y7`HlU86ioTAGJJD8w@zA|AyM>G;&!{034j_h3`} zJ=jv%21iKy2=wR37OtmtmwTR>04JsGkr6jN-$Is*0qF0NW&j$S^0tft=pU120Qv>e z3_w%7U1h1Fc;he0WB}$j5!n?IDPAEhr)oI+vo^azVqLZ7cNp>_L5%fI8!5soB+Krv zkeK2X5@Vj7siMx#-zU&|b|#N!XU6{QEX*lkS2}E1t@$H{UI|?3P(H47#B@sJS2|Jx zS2|t^+Cxe_PbsZRkVhpLdnJV75KFVM5j2^~zeu39Jb5h7*q0Z^Gw=2ovB?3nEBcjp z^_=+lujS0kALfts^Za%=eXQz(E?0fp`RMww4%((ts zlC1H0sHR8dqdKinTVE2cn&`B`v&zS1O@rFLu@8lLF~&yJl$(UU*2L z_O6^12QQpe)Bu$;OE-T;y>zay79evtpr|F5nd)Lk3orFnS=999kgh^9kQgjbsrlfOW+nz~BW|E5gGLy5U&0*TU z(6Tnh;t~%i+P~ZY0uLq2XW}h#8-5~zA7SVj+>O6?vXFngTpPs4VoL{4@bYZorzov@ zS}@rlt$JDm*%YmM;;|80^~9t4T=i(>*vzc=7pkrdRNX(etUOsifucF#V5rG|%~Q4R zeS+&=2iLt$u6tZcx<)w%+p@!Xv}=^pp`|&c_1A1+qdOX^iK@5x-vCKWTR8pBJoCinb4Lo0JDuW1JLcH8Gx>kW&nB`X$GKYl4byU7HI~cyGSzt zJ%=;{&~r&M0L{jmA~Hj~aUq!uz+6O{0q9>rV_Q5)aq&Eg_QX;_b7-k}iHz2zf;=u2 zjQvs}4CQD#mHYkpa^$fbV_!}f%F)a!_owmY$YVLizML?uuk1owm3=3g0deHCN9 z>tgjB7kSI>7kQ?*$TQ}Sfw3*t?A==P9}K-PEY{>>u@=(_%NJ`2!(v?&X73nuk6QEJ zMPYcyaKglN!t!?v3Bx;vgkc4zLwODDJ%eslYnB*#4e_4ggo^2e=Iw!zHn-ZSX%_+>YSd`FOGc+YU^i;H`I zgTs4jfoGc07fMj*oic%49o1@K0J3{BiEN;9uN;6bii<4WTw6*8C1LvghhI1TpYWvQf@q6v$M31s- z0(y!^**5__gD77$*g1tqhvaO}U@sM)JI?bAc2~~8eou?PKSNyTv$4bSY*BJ489Z{Z z=Yk$hkFx6mdIeEx$G$5Hd85zHP7K-K>{0e&K;P<7c4I)_MwFu2k44e9dImeRXpwi4 zLB-j#P7YeForZ7qUA{2;v?%o+&tT^ko}kpl+Mjd#;iZOy5%z1`r|*sHJN}Cj^*GKZ z;d^WKyd8kl@8E^Qk^0|w>V5FS_tx?P}Tmf^3w;6ek@#Qz*x4g~Jhg`jKAMjh=X6Q=J zpzS)H$fuXt(bpUdCsz8G|4^Ae z^#RNy{=6!$(&154ygxkJOd_1Fl%H4SO~UC$IWA8UP8SNV5H^{(7Y})jXg6h;m-ut6 z{KRFIUq~DsBCke1AzTxEP*?uo%BugBNArBhqrMlesXpN9cRiG7why@ayRAHj9}%i= zm4_XgH&1;koE_P;t3J*Q&qu5jufGbQ*VJNxYYVQuDlUA@LLsXFag z$cP)71Bj`^)(cZ_5mRTKEKEH`OdWN)FpYI$9OKDZ!qi*DIJT2>5!gKMR%bictIwE; zV>-D&1=V-N)OD8#Q@;^Yw`IcAXT&&mlgovv?}(}Et`??#Bc^VkgeI zZSFn^bGPm=4gyi`->`g`Z!q`^wobmLRO;{yz@2q`L|+>EmJ+@7iAdlF9_n}-Mx5w% zW$0ls^$4?Vy-S>x^?nxff9sYAJi5M};tlncWR9|!y{Mqplut3IyBw)<44hc*zqGy! z%V^rG?yQWNxI=832k5m!v<3jZQ_y9H@aJg+^u$4b9pa0Y2k5Lr_*u=8^H`f_ zc#$*obRiqvb*T9CLSG#!{#hU$)jz$cDtc+l(+gcRe|n*F>gh#oqg(0{N=50A`O^zs zQI}AEgjNZikbf4)9Yt)@2DQ!qERYVUFMf4rMb`_LQ1|fZMf>+Jqiy`xJWY2{5AhCa z7Vn^D^A3vFNOrHpTMeUlPhk{q9`N+R8-%V=9{syUd1milX_r!5&bvl=;I`~MG#kZZ zFn-uKqQ;Iw8>Fnb|e;lArpGXwTaA4e|S^d#VC3_#Xoh z{-rHr0D2{92B3E)%>eW&(hNZFPMQH|>Sb3^(lFk*FPRL$+@CZ9&|4w0t0+>uiuwfG zhg%tHZC5s_nVAYSoUc7Mgg6t8#~^Ui=x)me85fpFG683SEr;2EBI z{287!%h4<w`_bl@>q_sFDJ}3+ODE#_*!!ZhQ86bieh_k z6(y!?bbb}3M&l~VH=6w=C00;MYop1d5{$hP!kiLzg~eX3HFsj@mB1C2Q$kFqM1F-O zC2)l$C7dw3x}uxZn!6T-;p)l>6VnOHudXBvS631Sv(mfNqSchr+9LAUBF4T&!sbVE zNB(AqI4(HCpYeHije#yCM8adH3Q3beQtuA&IjJ?O;JXFme1`jAI`7<+w$@%~{4 z%+Sft=;@ljcwfPPE%y(f1Uqgpw1e^^N;52+%ReKKVFCQCK!yeI3j!IMxGyWsu#oA$ z1TwTto0Mi~>2E2`FfSzQx*?w*^S`g046Wpkm1bBd$uaNd08HWhP5h{|HEfZ&H@r_F zyAG_hLh(`VF*0~Ar8&a+_6d*D9s&KFM`@6Nevv58!n6oat-pZ+{CSP9`s_4K$o_So zowg}v|AuGKNJYkX$e@a}mXm}1mS#qObpD|)Ogk0Z_q;DmgLx%1S?b(OyLpjg&&@|U zUy2f0ukfZwBf7Ui*$=0|aBP+x?X)K=f)|d>vZnE5OYp**qHJnBSroi*Y^G)12~b7_ zFFY^GxK>W41#ifoOle|QPSyo4{EP>!?07OTcx!w)8Co*UC7XNFOm-BPrI9&&3Q3DQ zW60Rxh2yr2Zh~lOzJ1D5Ti!nT>5M;1%F;Su(Z=CalgP}%HEhEHOC}bsksENCSGWdm zz-3zDv}t|_lUapp9Ebcesc_md&o6TdryX-#rW8&a`a`GlRx_hN%*l|-N(<&ql@Wz& zjC)na_^dzJVXouZZgQCSc(#)jdCHIxAAk*Uj9v3Fd5tHGb5+cjJtIt(A|^vUCrnl%CL?_tmsmQd{1Ihu}+jY`PNJ_}SWZi1~{l3*AqF zB>E{3ey(;GIXL;O;V*^^)$de+RrU8NUQ>U7Z2V%#A^L?7ex}BqBMxfyClPz)?BGJZ z{8>SJaCXd4@vOjJ@n;2X|JfxiX9f0$&I&rluqX1f0{bBU2@zU9KP%AgIx9#lEzYw7 zr_k8EGMp8p8LgfFCIIam&I%8Q-_^ScE#$xE={hSs!m~n^X9b)tE2CRNcGoEPnzn)G ze$goI0FC0F4%>O|%?#lF3IO*>h`7TsoV%3%Lu`-Fxu|QD`wio1$I#n606@z=f4bl2 zzXbKMr5NspTG=7UR@mq7W=+5z;&;e}ZS-33GX|iUx6umVBzv{38TaipQ77L2@*N&R!_*(?FRyaLPVjm>( zj!iN(cT!lGmdEHiX72PpV1KvE#yca7m{WG`V!I%K#!1S0Qxf0 z3_xE&ngQsmNizU_4QU3T-$I%J=(mz)0Qx4<3_#yPngQtBNHYNaPSOlO-$9xIXxhB7 zFjzm{NXwh0)Cc%eW&rMwfk`%?Ksh6Y(jP#SF#!ER(hNYe&rFDV4}Z570QDjMw3)!> zp(pY8%>Xh6DE=rSS0%~DWL8NEyieymlExzi-s3rsr140B_hil^X*^Qk9f`;$R#Kc; zBe)PJR(cC3R=SZ*tn`^$^Eif_SjAZH+)NI|iPf_EiIpi%tc<-dyC|U3)tc*z!f;W* ze7GnO(+SHj3M32{1roM8lEdm4dlIFz9%JdpJjOEi$5>$~N559NQ^%JhkL4Kqa>7uK zV?gE37+;P&mSgP82}3!K7nM6}d^z%1jr-j%?lXvLP9z5ZHyBq zE-oYt4&TNoi3sUzB%D!QEOh@A`jo3Fb5n%TrV&G=0xT3%?V>(aB!B9#WxaY z^$hZ8amL=_!n_{#tqLcnTC>S8vSnMXF!#^YJ55JSdOtTCk!99u-*luSPAs;3FppQ^Gyu-VM}0!Rwx6i3!Ly_ixB&; zg(N?05u`6v_|XjK;#%{~EwafBvX#NhRx!>A{Afmk?8BB;*;vJ-H|O?R^ZHiVUvUYnAo0E1F*BN>u2%e$cue&8vJY(`0#tbre=RFNXkTc7p9YwU;qtznX z=g~Puw4W$1>*?IQWcPo|v$~)WFECh5{qEw%Qp=ik6J%gj7$k^L6_5@MXaz8StCC5pqV68_vPy%`= zQC7>5Qq=uO&)|?LGLG>Kj-6Z|Tw3UiXO}BT>40Y`TZ5z$hfS#bBrl5NCKrW|E-EsiJ0(@+90ytHUY z*^7w=6nHg%2c>~!JPj-G!b^*Wm+>^Xz+36dX^M`+3XP{R*b^@pMK^_S9627Hy)_iUzoy9NuylNlNbqkg@;N$Pdo(b?=NCdjz6Pn) zuOSNl-9^5JtMN5h!T&&!&w=aOtuYJ!$BKN8U&q(b1^7YN7aem;EIl@c z`}35ZU8@G(>}5MzbLgK8-rp^ELeKM?Ez7!GEC0*F<1^O#|RR zR^)3+Fuo=PSAUSN$-(%V8gSvu*kAZ^KA4R)HQe`dO|==}pIAG1->W&neY2@Kz|k7> zx(DW9_s?)qqVX=A13kwz)`fGB=eWkXa1QVs*BBSh!JWU|X?zRkz|L`vZQ&f$Ij(Un zoC7+?HKv7gFz5AZJPYSQ4)@!M#3jAChXkI$C2>AC+=I=K5$% z3g!8@v=I~_4k8;v_>w~Ircoq;+GK{OSssn>UkJwU zuxOv@mC;ejaBVdMuF<0W+HD40qeQqioB?lLIQ{bl$HyTUAN*%;7aSn&0A+8e8XtVS zm`DSZ5yTCR6JnEzRfK805Yup(E=*&En1)KHFpU#p8YW%BG)9PNi1Z56_#md?F<+R* z1~Cndg~Bv0h-p}CDNJL6n1)16n8pJ!4TnKt8VkfU6qX9pI3T8Bu!As-0b&{gD}~Ab ziE-UZb`hp=K#XfuvRatN12GMUy@Y8j5YtdtBTVCfn1;cD!ZZemX$Tx5O#V+y?tg?Z z`986ukW7w7V4FmD&Z^~WjO`ZHv*!Q!kr!T9@JC**PM=t{k$F2eB6*n{@C`JR~Y>KwE1gddVP_=fd zb{=cc@W6i^1axCIRkIO-yj)*G-eKkCkck@%U0#hE%kpN6ZAp&u&IQ|~~6pB3~H{G!06%wDU{5oc+AAvqrsXJs9a=E%OPzK!C2 z>O*ASAm-_;Y8}fSR9`Cgx_X`LbH(0J-&Nr0^?e8)Bk)pYPwRV&b7}n`a_lqfQM93c zFmd~795mTAuYMeJ;XxJY?;+P}{q?+dOUrk$Pqml#*(crg-Bs#t%EEVkrJ)x=m9_Dz zuMvxTEUOl09I!rzkfk3X&LRfY@ycBqx=&e{v5p6Gu(*G!<2?o>HK||1T$d{sK36C$ zA1W{S4P$&+{sQ7UUN?}HP#rH2rGcZ$3;xUm%as?fNFBG=`XYTH=1rDcjds?r7N1ZZ zcf|UMpc)f*313O_A(5*|ehs8|8hg&AzYKkou%4*gsRi{_hTyB=lX6bKLmw&toO_4f zWx#ikJK@ATgd1!Y5ztA1>U*Gz!082m^X(9O4>|Pd1}EF0y$S$l+M(qIfYa>I76pKF z?9eO&R4pgip~wKeM=vFS@4JH@I}muG0B~L%de#685d5bZ2|Q5%IHL~XCwGFToKA<{ zU68@Kbm%PwfD`G^r3OfkLkOHv0FEHA&Hz=*`EzJ*0>zE`VoX*;{JVyh-MV^+p8h)1 zD1M?yGw9FRi}>=5TB`z1pF_ViKnCaBIRpw)bbna zg>0?gR^Xdn{fm;TkP$EDpF@_60qCbmGXVW%(hNXj)@sWbfc`pZ2B4oK%>Xp3vJVAR zDSl{*Oa@>+g~*=eN#TWI_-d+&mj%|QmxV8o(fYDL9$yw1`y6@GmMFCwPQd@t4m|X8ssvFRoi1K!p z`tpJl<5C}>zujl2;vxI(K07t%wW(dkWB)7v$9PxaJAGm5?h8wE>LtRVg)2;b|AiYB z{lkC1j52VI7XIE^t+8t=wFSKJ;keplJhceCaGlAPx$7x43cPTgsm573H4VJ*;W(S< zuC3HNP3%(qeX1IW%;64G4V55kCaz;R)ctjg+V*j@%vXvwm-44!>m}jxs(`Ci z!r7es@UIpLmxG1;YK<;*T;G`Xc0P|1>91n)E?;a+7x}|7^yYc_Uh5j2m*a-|ho=`c z;2LNZH`Fi0r2KWlq&YDuexopHO-xGPB1{?+qurBtATXzLqe3UQhV*78seK1CIYUcz z`<_s9tkd~%#1~^+3_SpXzhl+G?+WYuA*((3Lskb2^zn~E@gF~2IJg$n;JSf|e$NU& zvpIOS7j9cs%FVwRW{dM5c4S-gFNWF5{EK0>Pd{;`JrG;Q?-vU`#hp$5#V}hHb`JZ# z#+`%BOUEMSzvdgXcX*0>2mI+~Wf+^Y$|#paTO+xY7{$c_t28Hh12|E4jdH&2Uuw%O zo!WSsH+!4k1JJUxcKD_B0Vu|$bt$UL+G4D1Nfnywn_75~{zb`$kPA!R4wCB1JHjU%>eYDNizWbH_{A1|C2NW&@Yo_0QyzZ z3_wqS?imBnY)4~RXi>cJ`^aN!H7TyuA7;C;!mtHeVSYqL>k302R~W{Ag%O73j#jWW zm+h`KpJ&MBPK@==N-_$UJIl_m6u9Ox#Wj~PKe=OUYbOm?YyOO(7lyTye0+%^rW2O0 zof3w%vnb3yNu%X!%@>Qp@JX5zCZ-dXf08C)_#~|;%sxqD*VUT8Dhk6VX-=4!PFVg) znuOt#Gzo*P+2gYHOO(=TYw~Do#@^P#P>$ZAa=#y6jy#rQ?8^y5IeL=H{b_tT@>q_s zFDGn+>mK`CJ~|+N1B@X*F;k21>6~k}xcJ1(;IO4q5}(d7=BIN?+oyAMV*CtPi@XIv zp15A#f>wF>bgo67eFDdUfL{V@k+&+y6W7aI)hZ94z)2pyzG1vz6hmE~c5yt_ny)bA zmpy?Qq$F9~G$zgT+{Fu97VkGtufbk9r@V6x1Fup|Nr*O?@2f`L&M5fxBGkVRAoAcBBi zm|^ekA>b~c;*NqWuPCCTs3h2?3w0i2D-)hL?29rSW_d{bcjo9x+o*Y_9Z(@wr|T9$a!XNes z1mD&C7p{06gmH*R!X5(Q3V)cPh&YdeaK-nB7>(#Fdmw}>{9y(p;yf0@703G?lh7BB zh;W5#?2!pLkBe}ROGo$~pMdk|2v;2MGfMGL*8?P6alFq!+qxuYKJ!QzZUa-mJqm`~#uRXm zKs*FC$DIdOXFn3FeMD$($2{h4Oq-j|4;vFLQQiY5_ZBC0$~aBvr>!yAXXG#ZKD#-J zyKjcRPc=7ka}$`E`9Z_XNnmE=9fp~Uz|6#t8)gmyGXw83%-jQJ=G|kMIS0&)`@CW1 z8Za~MONNwAKtA?3#z|6RB8fLBmLpHPT8fNYRLngEP3^NyjnTbCVEEtSvs2`0i zMjChheWG^}uU`(1zeQO%V|kn7MdR;LJT}4VN8hDc zI{sdRv++9s>n8&C@LQPt+Q4Uk9HO%m>UrGwJ7k8UZCnL=ryUj6jWHiMg9 z{WO4)?RoW+VJ$xs!+@3xIfk%Y`HbQ7Le5J!2CiJlF=SfE#iIiTYiuYE zR}lEs8m?j?ceY>sw9oM>QOn=dSzgE8!#Zvs<(0PM|5N@?xQ{>;}Ab>cr6~42O~S2v&AzsN^7xnql>3z z5mkR1c3!T*W>@t=QKzL)x!zl23h%C2d73cGB1`<|) z|1yv;c$ok7GhujcsGUYmSQhf|#zD4+$$slA)sMB&zx<1e+smT|g#-4F1f>fF^glrH z=jcOq?{W*ZX#|}qcPZ=HED-pR^eWZkKG_RH;%0bZVejRJLf+j&`3;31=AH&0#{Cqo z*q3yF1J1n_uJFU?b@Zp)Vc`ltjE+Y?#eEj8xMu0TyUx&axg~VGa7#Q7yhQy?eu;bR zx!J>7%=hlC;U3un?w%S>7fV0Gy^Qm{d*wVH;8b=RFU!fDxk+Q}zc9DESIl+p)SuN- zBX^I0xkG<9%)J5T&ivaj_XHSx%4!-+-O^!ffw@C{dXlP|F%H92X`4b{UZ$QfPmW#4 z=is#cH@Heu*t}JH@?m@ZEU;$8RR{5P`zNPb!gNIiV~ zY4o)GfEax&xA^E?F*CH;;zJKKUjCbUzUPI{F)xfWFFb~M0plF(JN7T6uxOeNuuQ{i zF)0CTv#@w-M1UT1K0lfBA+=wabI(anif!wfADq+Y-Bq|tp!9a636x$!nm}ot`s>T? zA-zaZu-l}t+Y4w!){26*R@;K;wN~J;R>a9#877lSOy*-SnL9y>`E+dLQ;*FY7FxeRrLeSg*BHoR&$^cxbPjT6SGpO_S&H1BAvkoxkYS-8yr#XjodT>b7R{Y=9YlD zp(TPz3@c;jn@>DTj~g}Gux&XEv$BJH?p3?!Ln*6vOND|dA-~OqO$m+LT-br7+0tCl zU@{jg-!=OEsTbHld=Ueo3k8Fd`hw)(TGT!0KZ+)^fWicTg?{nWP6G58gayeUtWXPu zK|mf#d$39<>H0F2?Gh-RktR@jj5LALt4I?ly|bcV4@hATcBKueA_c9AyMX9bMR2Gh zaZ*LYWDjUO*aMo=r}zl52S%)kopWEX2O)d12Rva9i1EjWgFi-pN2gX2rpn}xftNpK zWUQ?8$6T5GF;|9>cq~R@Kj?#ZM;0B` z+6cEEY=qmc+6ej(ZG@W_uJD2AM!jX;SMS^O7I=`Flo1FR8}BvKyib@3ZsM@2ef?N!}$D`6gn?Tx9usKg(n3;my34M5);9;|x+n5j)eoT-z% zrg_@^w@#TwQ3thEMfIWfzq4P+%LkAV>OWZZv;EggOVT{rDDCDJqmA6Hpige(DPmP< zAdW$}Q%&`e|4*R*vExCGJS)@OXxJOWj(A=^I?l`U!o0j!Di(B(5@UO)Vb9AnJf_Rg z71sHMHQch&qgzhXqQF12fN-7vh1`jgZ(kQblo+393vD}q)M)Qq;G z(^x85D7xB0PiT`ry|6rG;he@z8{(^7r*3f@9cCuOw4aLC< z_kqksGP#-4$P}pvGHVk6RZ>Z}fxWj4c&a{QDA&AV0!(}`0VKWA`v9B3w9Snji%Oug z_r?zG7IW`AM%PcBV}<_)3V$dHe;5jn3XiNsL6WjFI>7{3&=*fVL4Y0yeI#l5xoQGA z@P!-GQuWc#hww)GNh;nYQ2H>^1WF%Hnn3BNktR_3iHd?+lR~X8pc$z(l?1h>iqWY< z2~le!*2G3!KWZJaC$;7YwI)WLY1!)h6ac;I3=VZBPU>u!%F#=gJ7Q)zaFioX`)`R#pEJ5Kg} zk|I9pdkF}1o@SEHXD>`p+DTBiVoSi#%(Mj9p3~JPfA!2QR_p)`$L&M6DYY-QB;9s! z)!lN{B)A8`B+x7-fjGM3=;$$OFWCdP8utU;j1}H2ObQ=}Gu&KE@M+|ghJZGXGgZkB zxD`|!qOyw>G;+5F%#BSMW@3Q3q00o5xVrZaga6I5*XYQE?ZBZuc7P?i%LF?>((bp9 ze`wq8w;cmoEtlxDSD1izkA8bUQHYSTh%cTxQh*)< zuqYXTSE+$wnx9a%UR&^y$g_HOl`=}VpRO!j0;P{7O`!DgqzROMHfaK-*N`Sq`V`Ux zNeJ9sfV^(;b+oe^sy7tJV)UC5q{ z9ZwiLVk{?d*jRv>qf;jmrpmOj0A3plM#jp@jRjYxjRjXGiWmb^bTYN{asnI_5hsca zi=7Df`WU&kbcEZTmiSk~bJE41hsS^yiJ8?R-^mYOqoghw~Fif3CI9%?` zo^q$ktF_?p%YNjk{IVa9iHYGVAyPFu^#a1we_bVv{Wmi9zr0H5{_85C`@cio63Nv% z!^2fQ#Bp@$+|XLW6xAB5&cy;fBdx1?u2=LS$ENQB>gnYRIQT-G_+l8-(}9@myAgJL zl6sB1Yy9=>DZfs5{cMiHa_Y(6WFTP$c#VOCVJ5rY&xGOmZGI-K6uQ|!!jS3RekQDB zdY^%W<;5oaO{)!*r7!m@f>fM^Gbb+XKynK7C&aSG8dP`V0r9- zxh-7r4H$FX9SA&^7X-_TO-cByPYxG;kU4E12Nsw2zRYFAt+C1X$;@HHVQsM|8ALVu zQ|6}gSaFN8=A_}UuqT1KxC17UKwT4;#fFXC;4ThOh zz|5$d3^SL2nMv<7%p3w{2EE5Ha|f82bDLr23^3#=yInz0+i2s$y3_n2liBl87c_5x znKhrFU=$p)Cpe(?b)v2wA->>)uI8oC=91m^+MBytBWzAxtd;5b3zbih;sg6j;|KOf z;|KP4D?YIQByMKy8$YoBxOl_sNe}&jeT#K)bxEdMR`zchnRLs_0EVUKmK9@?Zdutu zWfm?dVuln>qjth^{)X4$wFNMqm%w;X z0e}}2em@JpW_T^WN&37#7Dt(JEJ9|x28*XI5}?Pe-zK^B|Eu21cbJqc40flKExPs4 za9|)o&cc_KOD=O;_%4CcI=qK7{iwsiNslGw3%|(i1IJRAx{!z;h)vZfdSf{S1{hrn=-kN}bb1 za4OcEP#kpAKs>0TN>;}1Y}zbiPB>Wo3~S@q&rsvjRiie(L!GvrR94v3X?>k$JCh8s zCl>n|Sa7szZRGAJHpf+dUG-`RD_r#c7td+`>rnO4>)zh)>$^xW1SHw*g3*yD$EdCH zq={CN!mZ@{`sZ53?nA|nRnAF$Qebc`BCl83UkRyav5^gTr5hHs#Z#B*sYfFgCyn@_ zN{rqZ_p@KFY%%$oGWmLvVJi%IyWG--2;L6^8ts<|-z89*8p3+ibv4>ofFuy|Rip`& zrv8x8Ej8M-5&&*bU!fNue$1U@`0zR@m42b3pmC(oxCfv^%LMx2Wx|U=^ez*?u}mON z%LK!usdSg}bk*fA2hdv{9Oa2qdBao=vRv+!Gs}Ua9C0dVnA(MUECoapL!duM>jdkU zgJAVvAup_7_)rOdRejHXBD}u(ps?ccLsJ}*a;@-7=Oiq1X1_I%umrkmaiEIg?q?jV z0+{{D#R)549%W?WNEPdiYt(OamUFqEDZAZndYz0$7>MMAXTMH)=x+i2U4qi#vZO^S z*eY2B%Tss?Ty z^!q0oiR}L9AWs{L!Yb4M563YG=M)|XOt1;~sVWJbk8&RTMfaUd?)tBkNxqCi%_EK6 z-G0yo&F^4}C>Vq$O1EnY{ndFSd@nxE^k)iJgg$+osUq>733z5tyir>x8ZN~5lt9YK zTpZqu-j4&3CvsQmXx@t+4ev!C%RR_7;l1dycrW^5O){=J%orrY7gyq$DNGnUH?koN zqCL2iM66v&7%+BJdV=(^gM;OX!shJqJJ6X%7%+o0FU=raUtF=w^?Y&Vk(KwR(|Os{ zd7h|#$V8>zryHEqVtH^aGf{BXFwp5}2Hgoz%x*|wNSBO;b6Qj)y+VyP=!o`BMAh5# z+omb)zalW&%0r^;#7XUXm5Ir>m&x~*$@iDZ+nw}p#@sFpX2z0)E% zrZ?g=y&0zI45}#)#V&s%fZp=pC{LWq8>aFw1_v6}1_v7Uj85H5hy!iJn#g+d4hK49 zPYyIsIMBp&2Clj@?*h=<8E|xlICaJ_bq3}$N5gYsSWOIvQzye_G<+VN`Y2)Qq&A~z zUz^cJ#!i--(e9)+qf;jt9(VFiYU%AHI66t3I%$}QV<=tju9@Y)QI0s3GYmiD@l12O zFy2AN_0@F$_4pZm!Z&ilile|FM^P_*f&u3wtmI@kquiG{w{%XzuzNYr&xDnd@IER+ zQPKkum7xSODp4UyAVU8s5Rrgk{6ojs_BzKr2dAm%_KhR!mz0V@TbhGsy}6xh0GSIshi5o=9w}VZ_>iM_y(@oCS36*t=ShUvV=|DT2vII zYwETVV9A>LUMwQiRF8;lHmOj*rIXN867Ez^2t zE*fqnEvtZqfrFunD1(8A1qe0tle$pWBa#lkmD%_ZtJleTqR<`6J5Xo+Fw4lpxkC)$q!Wd?=K zQqTE8PhTb8T!_EgQG(wh-3O;tyPkvNFBi+$E`5#T#pBm29$UkQL;X?ACE57x#_Tcv z2{2F44~~WxS?@IX&~X_|RdD3ET;$rAZtAb$h1lcAzhm&4@dp5J-CT0U_|FWP7}o&= zZ?Rhbg9}V@_5FaOhs$`a=FQkRXhG!hVOM{&l8q5t{Z41AmUO>51RqQ z!>*VJ`^WmGp$9DpxIu>px1bRO+@SH`AvA)3^99B7wIznEyyU=Om0PV0Q`-62_k!ZL zOkp#BQ|H^iegOYk-%uT#d=~!oo5Y&nKjWz-{~B8wp!i=)b_`xMMss*Au2jI`4lQ|H zz+nfM92(M?z_jOz^;>d$x5eHS3=4j$l|HH1?chAw@aS-ZlaJG!q=?u ztFNyI+UnUJLdhe&M`gPNN`H|1jzg;i&c1a2M%MwR2*LR?rT~fmRy2O#p^_p?B zOG>!kmN=66-ue(@my~e7D{&xPCrtsPdo_mB&#huVy7I)(0Fj(=I8nF?hQ$HZ&b5qW#&rQYZ zjMW{M0PY=L-C^meFMMtaJ2N`9zNbEYZYtJiY^tyP+?1===can<3!j_9R*g>G-&3DH zHx=tMHq}>tZp!uPb5pKQpPM3Hx>hFGpPRzujZXc9kWWGt$f8zfkiZm};&W4mgwIWp zWRZ-K^v1Rm0$>>pa6$mgp#e?^@Y@7%LI4b(b2uRY*3JMY1i-`@;Di9!H3OUw0Apr= z69Qnt3~)jK%$5O82!O3JzzG2`PzE?509MHWCj`J08Q_Ef*dGI&5CEfNfD-~>X$)|J z6}e8hbg>pY!`ygGoEv-A<9i9KpAb+OmazNynJ_#**3X3H>NPviK*9>}U;_z5$wT~1 zSjqGh0|`T>r}>#MJRj|6!tneIKNE)MXZx8jJfGxe!t&rCJHFD?q)-B_Lr1s2k=25>|jZ>lTo(0zA(^!V2&L0|_g@iwq>J z0NVx=sb0o1qAA0mZ}_iu4vx?3|&9Zvn;F z8H)TCP%NII2yg+#>=}v#7f@`Up@?t+#Q++L3>Q$WprHtH0mT#=iWC=6?4hBEaRJ3B z8j2hjP@FNK7Uu}9UeaToud@aJ)iX+BgzsU%2~dJTb(w8kn>p1A}-tk35TdhoTXg2 z;))*99ygyX=fWM4$|3I&XGs^XxUGl8hdP6>FPipaTNeCq=E&U5?}yzY78gI3Wfcf` zD}eCtui~u?0dG|h{-agA)gs`n6vE$K#alrF-s&N|b~4NMtttU;MG;;bKPBEu6Yy3U z;lE$STYUoF$|L*(RlF4`;H^f&|Eh|&N(H*e01wbDCx=wo`%tsW*A!_mbOZgn&qJxqI@^~|bhI67Fu zt%io9f8{QwRnTyBugq`tGaS7u^IP={N9Rho)y{DAt=y@!${CKXm2j(@;pkaWPf#`g zq89p99*tYY3`eg@xK+z=^r?hfr3^=pO1M?YaP+5yTZIfqZ%VjT$8hwegj;0{M^8$) zRmE`hql8;U3`Z|YxK+b&^r3`XB@9OoO1M?QaOA&)TLlb9?n}5u-*Du;gj?hdN6t&Q zMcr`ZyM$ZB4M(m^c<litGvYIJ)gWC=S7tpIbnXe z^IDsgmzca?ChwHgZ z@1@R5n6Dt|6*@e_B9QlXWb#GMi)m=>>kxh0_(!cn-tq3eSEQvN0>3t!OCqq0T+z zo<8pVvK7rGtM@vBW0vijJB(lFbC<2hZ+5(R{5Hj_C;gD|OKCffzb`zDe*}!~*Qop+ z<99k$l+aK)Kfd{H^hT#v2O8hV`3qJd7x4F1>~1N(E^!!`Tz# zxOy+Zjr;)_{S14)dglrNW4?NR0DPMqSn}2N3IH>{THg(&4xcz-!&mF)3W@_Q4EXAM zD><;BAD*g`Y|T}zNe4fUVTjkfYDxkd8G&zd-cTtW}0hV>$0W(F=u9MHEqO9 zD~~O-^X%a~Gt9H{*fKlMmd-Q7EGv&Kvh(~(g0&HItUR{F&Vx8_#0)EsEwJ<4=sYvb zukv7jbLW|Io*8CWd9b@753h7>#M~+m_BQ0vx0RJ=hM83!>}<$0&v|B;SLLx~b$=d| ztZ&4uDvvFy^RTknh&fdrTTO7Y@&kXaaJhq(V;Wyf5*i2=xxpamD zHex81!8XzvbYpOabyNl$MluxVnT>y?-)Pf!SNu06n)^01f6960vpLT^f%D9}rEbG( zIaC>0`vryJWRVk%kh<6SuNTkX@-w^s!)t#)c*a^b*%h%jKD_oP3P<-1M~=FSHAkj= zbiaCE_DT($o@etsRUheYsf50}qAqmjlFY6mL-tyQqv3wkn0oyp?Ul`|Wh+EkSHsaa zuU7ABvQxaUs|iwZCxEl(%f5u~BRpE=UL4A8M>(f$N( zYg^HFg6evO>Z&j3ZV%zxm|OZ_q8@T}PP=0;G=GPZ%k}L~(r2hA`I!pzqKW!&7LQNV zq^I=rm0tPl^;^!XZ5Y0%R@*k;SF&=SWMYf0B@4B^Yuh}vwxyb^ZM$1vZHbJW-Uk`V zc2(t#;lBI@)S2Z9S8Q8vBPtW8N$i^0^~#W)Ex0AHnLkm_`>a(pO|N2R*W1WZb6!0^ zhr)-&=X^p>%bWJ#SF8x}vi#9*-&gCcn0p8fjyE+D%%^Me$x z?60?B^H{U#CE0wj7nTk+=e6<+RpW~Op;j}0f(TpR$}SRMeQmUMphh|UjfiLbw**+C z&d3;P*kxO;Q@9-Ym{nU7Ge^|_|JoHBOS*AIMHX+c%+yAMqbDyG7Y6HL$-7;1;yUNqN7P=yk%9B%ZRJ_soOma=DkRqp zq`}d*1|~NoSoqmp!NM@CWH}1ZvOoI%YQ9|4{a}*#OO#gT$m*x61Q$uoCz zOT0H3i&h;F=vg^X&*}5Xs$BzMWY3)gWXTSz7RA)cRa?f?9vik8-mt~!@aTyCUGH(K zSI%vr^Y4s&ewX7$_ZG*x^X+(6SLRZD-?FcJs}l>mH#_cxa@l!dAb1J`k;d{>l{P-$ zBK7VEV-@cYRRnN$eyD<{Vl4Y?D_^ZTCfAB(V)JrI_vC+N?w2+5e-bq&FBK;LH|f57 zgQEO00h+mf1fgQzuB!Co!?7QCIBs-5;&@^ALykKEom~+6!&A|pV7s+_S@7-SE>rK` z8SD61s3U+g-CAS5ozDb|6V-6P3GdzmlpG`qQ6dqoGdvb`j=^|pQjxi8mL(#&6?cDb$lQpGDDQy*S7*riy# zzdJ_M$rR4hq!5moYPRWfJ&HuL)! zC|Be1Lw(s*!mMA=3+~VKgGUTtqV=*@*S3jcMzf9VwE@5FZvC~7h}Jil*409ZR{f4P zv_3V^xg=Ns3Uzzlatc%w5>+UqNTl$*#hNz?GF_J| z5t*+q$SlGAnSQ4w$Y~tY?&SrYG~USGSkn1X(fLNxxt~y?^8iJn^N2L22kLpj@W_Zh zQKwYBeUQRU5=tE+^zlTU{S`v!R3sFr2qmfzN|8k9_Ekb%mn#vWR~Lkq;Qs8*fsQnu zQ&$vp(smNDzXpc2py@rH$8 zN)k*Voy@;g)yy4O(La!_RsNNI3+AlfaUi=?X$E{20_^Ht?a-`>T$kV(a{bnK7kr>M z6}fKIzAZjnZ9W_-l=$!zMdHJ=>+L5iwL*R&ai#_I*vi=xA1V0}5r@Kt8xk9|50ThF zeX!wh;?7|TVZ#ey!)f{kpPpd@@rH$8No=5y*zh*9!Q}5UkZGMcmfs{$!2{RrI>m#x z3lns^1ovm}5VWG(Z@#(U0bOZi+FJyVJ-$yoc(Zx%RH4L!rzr~a&SRrV){OS?k-eb+1sR^)?7uWul5zrc|`bt!%a!SeY=_FP}T$X{eRWO_-s9 z{1$b0Ab*#_{8owM`dTt`?tz<@TD)8MFin-<>^)GL=BV>uT3f!e(yCuo3td6j*i;0)bh#Uf8Y& zy`Ull;#lI&(zXQ4pM0;n)qR!_0o~fre6pyY z)b8|PrWN;CEH;p7={%;@nle0v3?CqamcV24XAR9-F(M+?>S1_y<)=0+}yjEuQI?$3wSL;Kq?z4$I&rmq8RnH`KW9uY;5CZWP;}-65o8DXsljH1~^V!}?#U zbew1DcO&}v~p~N%T=@d=!lZvx4XMc}euu5NSEclV*M?7jxh(;?s5J)ALoC_>?OWpAK&E z7ECkWM?ow5AxSN~n)#}kz!za6NYJ)#W@zmxbv5mj=J zDk&UVSL5n_oCz3DnfDA6^kNOT?7 z%6=_kR?b?d9!iT$xGI$>zVcT1xjHR ziSwsR*5%86s`TZik8#YXrFAp^yqM`5po*ggP`yU_BBIXu3K?nbnvAV~R=o{WBTckn zp}G__fFc^{FRGF`{VQ6n{%o--Pfm<0bWIxba;;s0qc)UdUh!$^Ko1{&CO+I~K3pu6 z_|R1(K0LqP?kEKxh{NnKd*VBr;{zGVID{pEbUxT#WD@f_%xNg@e_u#8S1wAOi{n^(9t?0om zcNBU+R~p&Z!KWRTL+kBJ1a(u5T!-BhweIgM8yfhvRvE;v7b+6J+V#or%e-`7q{n*u zGKH{?II-^6n`0drb8W0lXI+>ZX$sc8n7DJPLRhD*uCaA*RKMzN5O9yU!ad3*?$z6L zZJ-NXfs+BUq4@)*@^6a9{96jN4N6ASk4NKmlsm8>5a;$2o9)rez(#H-J^cPJYD=RJ zL*FB>;b*fZTT=TU%il|c5;#8(L>!3u_H3lh(bQsPj^V zXq^oC*g9DrF${zhkEp^gN~s>CZBBoFs#;hvKk%x*l)AAU`}3298qUA1eDm=(WF(r3 zwB~L4gyG`kd%GKMUkodCwFJ-5)w{o1$R*vb=<2MRrh>?;R|q9uU7<+4I;2={S9z25 zC2=Zv6AUti#hWXMI+rViH`-$xTi>a-fr>Fi6~<7cmoY2<4_t7AZmEY0C3xEWea$Te z59nTn2Yt0?Xx!gsd3mK!;=yYai3exMsl}$(+piWt7W==2y4BlP8C0J-K=z}{L&%kX zNCW1*Q8?ti(I7okEe^ewsPig?a7ep%W9!zr2@qluQDxSmlk%Xd3`1N>03Cq1=lwTe#W2?E9)_xqM2<&mI(E zAz3T~UAKwRApAg?gNZD`{n>qjV&|%Un(dWd9b$(MfP!uB7TD zl+YPESJ{82>59BnX}ek|(e@Ta8>j8^P0&U`(RK|{=gkVCP5Wu44X9`%s?bJ}MB8wc zHrM4!s#rDUwY4Le^+5= z=+aCd;6_0=;sfk0eF#3l|0sj__I5?$n|y#@;RC!wkM;IV3SlAf!(t&B*$mpa4?t6} z@Mhx9+Z4h=ZN-hPd#A>+-Ua~|i7Q;BT;gKAP1gpx&=u0{g2WZu2i^wwhUTxQdj%AA z_QET0mlgza-J`^Kdj&JFGx-0Te-?fL^i=$UMonw4+D*18?-WWrezzj=SpNCDl!CFu z4~wy6%(b}|7&~n?qg|sO(6R!w5%MV(a&jADqfDSFG2u?4&PNo&1nv5m z2|&dJq6!lz(#r%_;?h+nl+eJ0U>fme7Y|338?r)RN)gvdimr^T)N7q657kBPk*i86Af1Q6!x6nZoRliDDmmD ziXwc zb8zerl|3h#ZDc-f~R3tI~nff)qZ)``c<$g|52M+m; zYAyCfXKRBi1e>#dwQ_uvouO~7-?}-x>+GSv6*_kJfzZ%z4vYUn%AXNNHrhA}4F+zM7UTwVTbeFAF7}-K$7E zd)h`M{i{ON+h0?dzXrbjTGb#Izfm0Jf=a}5?q7c5xzp-2Z71M||Ec|Jb3yP?c z2USTS7p}(TB^SRFCQw^~`?KE*T9J#3UsljavyJQz0pCmGH-r+6-%_**8ow=6z5N}9 zxo#nBltwBMjo&5ed{ZGbYTv;$0u_x!6&firokmyV@;x+`;LXuUvlSX!HN8$>lkcW; z!|w?t8h@ZjG@h~%%YL6w_4Yc4>mB~k;g1w@%dMIJQOsjx|D-sMEY*tY`-wW=R|wTw zJ)3HvqMB&K!k?#+rHCrg8A&;^uEym>^LF1-b zA&y%Kjwio~#?C8>aiiIub6;&j)ZS$peeqsHmCM4ewNWSnH{ zJx)M1PDGV)qDb#Jxe}MIj#CMpK2Fa*vlu6utc+8GJ4um-2Za(1zgHA!Xl{ZAGKz*j z5Osd15E^8AO#@KTKvbcDBE2-Y5|^&hP(n9D15NhOAUUhO+vD&@p+v)<6>VI9-ULnm zi1PK%QoblC`T7e{=T8ceFWDhm1)!2Iq74gwnXCduBwznlC53dk8kd)J{il$w65O9{ z5VT_ND}DgYHnRT)Ja$3)%RZ89;a`OkU4K_3x(;ZybswNFoT-%uveQ(CG9u|8M4i7W zge0-bBmoskL=}~xNK~1EBv<3|BI)e~NhP?rDpQ=NJ@0}-XK1(QuFS2XN&lkhpF)YI ze=8DAk8O=)kJsQV*MT%+v=JLX0TJ{cqRzh*LXh-tZ2gIP4M@)-h^RskMIu4VR`xAl zFg7c@R0Rs+T&3&ku?8i0#yyaUwFPZ-p~oKJQoYx-Z4gSd)n+AK(uJ9go_Uf{G;N`b z_0E6Y+j=Hh_8ztDu8sd(J%HCpz@6 zF{-O+(b1Bg|n3*P*{TdvpIrR>_){;r1eHNH{dxx`fT9vN1LCCZ35N}xcyF@GHRMR}wG;uX6P!$=R_!z1Ag3YZ@E>N^=U~-|N ze3*1LLUNIU?v^S&xs6hsB-PtIF31+^S(|;~aU|cCj9Uq_=t}Lw`(7naH!d4ly0tEJ zWZMaUW467*dPHB2aRB8z(%`_nflP1k(%_<^!GZ4lvcZ9RCQ%$)$KGkZ4MG=P zI>Z|m{;8+Ifox~0?5_{?cekbj^CVv;V7(0>U#?`n3&HeZ+@@%Jqr>C?&x_X|ux>06O57V(B;9DJ%>Me<)>myW z0h^Vqu6J)9u8nnhgkgea%0S>ZtJ z1vD`#7FzAbl!($9YHxP8QSMl~)b4}SKIqy(pmxL?7XBp(i)(LYD^$}Qy=pZgtlp!^ z^|Excf2pR*+8Oyydhe@$;tvwpTyJnUTf-x~%GI1Z(4X^xh(Py1u6O5}`AWKm;;f=; z`&o`d*IM1hW!I!Qx2tRGC-h1o{gT!YZ&>)Zo_@8mU8%2+T>;*5&T_RI+G}MKutM)e zaizl-2HlPstDA!5F>whF9%6O;bxu%wi~eN~()cqlJ-*_Lg%=-X|F;!Nw^+w{8L27y2jR~YZMo00M2JMUm^yXVr)55X8)Ipo}K&s9C+qnFw^ z(`WGJw}x7IQ?jIJP*HKl@4<6-&7z*cE5XUV?>SdJRAX~o@A$#xp7Fz6N!T=gONG+- z?WjoO_xRTEVhi$|(BuA6f|s$m0>Rc0&SWCffNvdyAXAjDTF}rZEXEB^k$TvMIcedDp5q0*ebQ<#_G~#d<({v zxfW5iyBH8WlM>vY>01V+?{(J2h3`evjciY_vIAPr?4q%i$cm;+DA6>kDC(ZP!p-R( z1<<`Q;?5%#qI=qI99#EI%RdNokGP_HluNqT8eTHzA#7ctb>Z$oXtmj0p;}_A(mGvP zA6u`N{ehx##1&z2lS$=z6iqyBF}1l`6EW1PNJ^XM)L}h4PA=v}(s{zLW5Z zrz?dLPj^+MvjVJwOxh7*dHDQKS1-o)MX}Xn*Ic0&QKo_Nzc3*LQ#@;C7C`wwlx4x( zm}yTkom+W`Nj2KcpHJ{8jlK`Q_fjJIlysC++ueyfs}yo-`*Frnhvl+mAUL%p-mvf= zX%eBFPHi8pn&uAdtKB&XjHiv3TJom&zF!wGTdfQek36Y%_JYZS{r$z9Y34GJ@04s3rOA>n%mNmKa*4_1wQ_^ctDI zPLp)}G~s1yB#(OvC3)OSk>v5i8d-lXYFSlAo}-y#nO^5pp8O)Eb&C6FrO#U^F5~;J zSfCfw^Y4qK?6GPif0pu$?G`i5C6lHhGPQE;h%~eP$aFQCW=~u$PKLv-dV4hubd+Po z&_LxWzf@V{v+ht-usr4GmDsgCSf28$N~{h+q)(}4oxQ-hJMX+;mfW8MW}; zn=oN1N9odWb3Zy4I5vzFD~o-IJC9O0PdE2<>O8hihyIdx5Zv4+u2?$CsV1gHf6PlN z;o;L;0-sl}^S7!C1>_zeHx`hp6kK0GnRa~F-(7N7bi2R2nN@<*&8({bCtt0$kN&q& zr=$N5F+KOPwC`Ngv?2N2S18Hneu^ZYpHmrs7HiJrRr<7*gz_;$jQrs6vg|>DyrpkY%bu1H`2JiU zGD$<$R~fR(%*2qEZ{bVH z+j{$8)wW6Vag!K7wo}Yhn2&kA=HoVH3R$d)((C+=UXXP#W-0WVhOOoK?aICBL6*+; z4Dv?xGTaV_i|FMOh&u-=L@z%T2N@_zNn9CZ3Pq({p0vpoxdLfZ>6(_{FvwM1((zeM zm-ni=L7kg0<73mlLm=gI?~K_*QJ>N zhXc^DcmX&PfX-vZzQa>d5}~MWg^<$#7uDT^0^p)LEd}sY$~G23uMS^<96=>_D6JP) zLCz73M6PqxW^22!KY(!>$oU*%oKLF8iG^}yK7nI6>qilH4poS=emC>U6%rM_5-JeR zI&npGDW{q|pG>NyT&Ifa6r9`8923hYA1|AkeOeV|_b|8z>k$XXHw)bAf-ov>R2K~X z%2v2<-p#XBHvKPEC*%A<=X=g-zapGGLCM9_g_2wxr$}pj z&h@i^Od-dTzEkNrt!+GGv&(W;!NY-EA0vv}OL(?k!v)o+a(v`x5O!dk5xxG% zdK)MXGI3=UM=Z@f*&*Vk-VD`)znQ96EA%DB=8En5 zbNvRDKJX+aXoR)q#(;L8qkLmS_5S>sLS|S|gY>qf5dHau6v3P(KnFl@ze0{v09;?m zaT)-uYbtUr0L*6s;CPlcG(bZbt!aF~U9CDqycv|NX{t-VIvebC0;~m~eYjXMl5mIs z;ni=(_LX5phPwmr7~4~cJ0~e*Y~{0!twSO8x~f17FLCAVZ_25rSF5JE1IzegyIy4- zYK|P2|3*oPAl%6xB<-(atQ?IXZRBdc;B{0o$P12avHWIJGR4ay%{vL_*Y7c#&iy2f zU0QXy<9cURwS;~rFKaOy0W+{O=V4tNtLX|*ZK=qNHVN{3WDNYLEMw0VN;395MY2h{ z0(iPo{9L17IEh^h4`VLXJAgC>NW^mQR2$LP);>@U}8h>S3@hdi4X6iRg}Q;ulr~EGLXCT zHX*D4;b^GrBI3{KkRflPIPzaW-VFo=C?MAWK?4fN%|P%bhWgIiN}c!1_1ngAUM9H5 zd8Yxbr4Ccq#FL$19XKx+Ge)zE9`wL zz(exN%~rEB$&0@oRDuf|bl{`ZQOU-x`q$^%YP{3DNa^&qr4kr|N&H#yHvr7#PPj`RF>2K2OlCw#cR=Y5B($ z@NKnKljHKJ*6OR#<*VO2#!RCmE>T9lz1CNIs_NH{%uwUJQ?vmzIGM@(Eo)Bvqj#(7 z5do_HRJXf!iqMmLpvwdu-Jy}|c-HX`#VOt+pH-6|T9bn(AETq5Ne(Yjr1|nL)vNu? zGbQWw$djX2oa{WI@QVOER{-xd%H4Uf0N#vTIW#b#)q*~&04P5| z>Q%`{3jrF1gFTC=KAZf5)aS5XK*wV5l}UA48TSlx5jkFjE)y zq8|(TX-0#|zN9MDD>^&b61SHP3};8HD`A6bHfyHy)cdFfZ0PQzGwHOm%5y})|HzmZ zC>eHkIpePE>@sBaA-!Ts-03Qur!(#^qs-h%&?}|_amGzt+1aI>YGP+sD_VDUNXL;h zvv0v`LA=?yM-_4gdG#?pvsWK6*^93 z*Lw0v3g$OgUuTS^?AVCW8CY|^?oWqWhg9ptZ0S#Sl=w3|Z%(FF^5BY{hi1>4lk%LZ zJZEJ`!@s%n=JFZ8!TcE2GBkUBbL@bMq^($9d6;+xT8Tkeu~lq(TX$+KZtze3SM256 zA9OfUq|H68iwB3;bNrFe`jMxgQ4jbb_2>}wDE~>sTLFINhftSJeue%;M5BN!TazcL z+A+*x@myxO;5xE*DA`;+2Xt@1Bw@*OhwCw-h($%CwCY8-)XTDdb{Bxwl)a#lu39TA5#8 zMclbUA@l3K67cnUeF!L%D{)1-DWu8O3vqvM`;ls&y;(1iT&1hhg!LH~n|`UV1gFbp zX-)aYn~L=j9jM$j>#MP*)UsCg{?$T>e)*fwe@UYMHF^&84+H~NZ@*Tc>Go@6$;yZ3 z&9qHaTEuyMJ#ptMg*dNYg*W=SVxV}g#1-C9C~l$#{XAd1v8T9|G-8mAr?07oIqSFg zOAkJKaYJrE?%XpZy@6vTxIa5y&{4@k;@KCzQ}B$AHL_=h49tVN5P*Fbp zlC+9VoQCDd)m)edxFb@T2j~{xmb!+x^G1byTS|v>W9tr}b8Qehmg*2!<^js7CeH&h zEA&<7rZNviNM#;~kYXNajV!Vp%+;J~T1z#lUTUeFfG`b&4)=GjRg1C1+G&+;rf(yF zV6&CDA`I?uI00D}q~Q#)-K*yL(R`l?KxfqYRF~XC?ZR9wTgs-D&pF)if-p8_ls0I; zib{FYY6iA=U9{)k#CyflJN3U*V;AiVJg>Y%Se2Q#3MHAjQPC!3=6a#5a^3$?s@^7y zGIImThm;vA=#d$UO`Nw`nW0lnREA95IgG-v< zC6s8sRZ*4Z_vpExdAI)?%~T1^?FmA z(7aT(@xLL@8Fi7JxHSP0b%1b9Zd!KgQ*x< zs-3>_jB}H&%e3j4&M-aSPTaXoA=C5s;FhLmpiIxi6>d=|PR|(JS*2A@X&dBVgyVf2 zH{=F1J=^-)p((-B-qrre9}D@RS3NrOA5j{3`5~di%a1CO{9KS2b%&mN8TAn$wy7ga zZ~uS8C|ZJ1A0zI3SRsu1eq>1MLC>5- zv58BVlg=*u7$mUb$IvYpdpB|CPK7Y`2V(5H)pV{60^Sl=<|N9gCi^k7LSH3)_G5N( zm+8GAo|Cq%LOdre5u~+b!O~ljFyPFX;LE`H0%Fy&7B_UmUD43%R`=6tB=%Y}>3#HC z>Z@LZU?wH5NQ8S`y`+1oTFVzH&;rBhZImwj7hm*rTMNRNm_fSlS^6(Cu%&!d*GcaX zFK^fXQuQwSFYtO3vT~15l9kUZ+JvlpR;VB=Ur?&vCXBN3Ig$@4D^$=UD-@f!eY3Jc zw~&=D5_dkM5LsDQ$_fZ%g}5Rsl&i=JeeIQ%2&u?Qg!IUYwylGOMOIAk!;+QI>sI%F z)okpwWMzFRDY=g;z)z!zRz0$rF zLLz^@fUS|GA5uZ8L7zsPI{fs_zew1IMx z68wJMtUXbZsGGIHwPP=1a*cKi^Ji7TX9=92APC!5-h^@6Zd1<7?}}}!5*DAALW!S0QzU-A#QfAeDJ$}0fjkc>{S(q#2`+yARB7{*L_S|Y z&Gy?@m|2?c%`uaPVdl??I}a#?nLjI;2?AykSC~n;nauPAKdip=GSlFB0{1f0ZM)4L zW|rW@%w&sx{D*><^t8guS+$=@Hnl-6Uj9NT@$y%S#7p*yCihU=x?j0B(f0YiM1Gkt z-;ZR~C_GMpxwh||2>x1iClHkvgf~%}jAlQZ=u1Epp(&b(6@t&<#y?;6F zWxijiDt&kUT_S$+6!kXyr2v`Kwfs#5Z)Le7?tu0q$`{2;aPguzXV(15A+BjmY90Nz z^pEeSNMCxdDe74H8U?(6o7Ut;%uy!+s`wIBanhDM%Z*Mt>vj{7E6M(QjejziF%u0`G{p!amAH?`Up)z!O2}hEJ+u59T7!hv2p7 z#lUb2JKkJj%QrMVtNV9V6`R(`JxJ4+x@i!M9C791ftwCjie%PJ>d`dBeSrAn?rJ{p%N>VK*FhMwpw33gR{x<*Zk$u|NucK;AcWA`6L z8oN9>z5mj4n&AIU+7rCSZjZ|3^H72xw(n>G!QVjK`KLkz|94{F`qS%epzw~kGHev; zk$NWYaL4R<62anx$(6fOF{-bS=n@=X_!qrtetFNw3Yn%eJ@5SgSNU`%Bfk7sDDkDP z-zF1Z&NN?S2u@Hp^h4T$=4YriG2~GX&5&uX4OKH6H&jc#Q&Y%n{Cngnthzxk8xvP} zLb*5_2ZyGx1U^R!-I_Nm-(Qp0iou~-H=QP;b-FZMI5uwCEovGmKRQx^(?>@Vuk=l| zbcdgQ#&3?K`y$~tKd%wbbYLT%^^wIlHS#^whe2Jh*1PUa-=J&cdc9A->e%3YmF9}G z7R-(*-2vANJC!S3v$+GVBlU23Yj!KvsAif<>qYi(UrTAdbR2GKDg8*&H-`_xG?C{HCi{cNP;ZrT2Hwv?BmVpaGr_eoEb*;2nnxjK6L*>lQ3xG7 zkFAr}FH;5rogl7!qJ(m)iO&?_w$Rz3zNvO^mkyvyXSqvYvOlTXE(22`Bb43HJcGP1 zP~J=?sWMTgm-beQ0$*g)UE5sQ^z#~?Mohqhz^w&=MdVGO><(Jx0&Y-EXj6TF|gzjyUiO|vUJr&N{#D$ zskU0nn%cmUUB*|a9pxE+nc~&jrqIKqcUw5HWYxGnE5pP1u>!7sFPNq8R>^1hlNz@v z`$Bc=BK@z^|G-jR_=~t@>f+1w|DgVlQYEV=R9HV=Ai7n^D0 zS`~d*bUY!nas9^H;Hws!X=9&<+r|SL7}0Ul#@blC`8M=p*$a8uKGV8~VManRM*1`8M=6 z$ir*nLF`FCKZZ5EjmOoO3~auUAF1raB1D=o7R504%wyVHt7$TkA2KAA<}q#S;A0*f90&cHx1RIfB?;ec z@QNgSw}FECZo@*Nj<#I<-G;x)@^jn?RNrkNsw_q*qDo#Zs~qx>cdOuO^S5-+&a|!$OH}ofkp(p^0vt8BM3# ztH8JvV+(_l%z2B6J0l92^R$2(TlZSa4+!Qw;tKVY)0}7O^)u~y^3k(5u;%v1U&gst zyotL+BZ)Qh`gKU+{N|0`94ua#a$nqs9tkPI(|Gg2y9?gX@d|GmwVxI;p))>sv%Mnm z=1GY+JJ97#$VB*lF9jtNIuR84+bQH*9)E{3mzy&nBo;&!#!#wPEPQ#hKmQ@#>p3EK zd1T4L#1f>%-I*aR?tTO!o zmsb>)64j;GL8?NA4bAg$waZ@#iaeE>2oCmk;wd$m-dJ5Ja7%+Sy1NTZW9V+;vfl!j zflbU#yuSZ;#qR|`YmfYuHfa~3#MehEs@kMcJ#UJc!6s2q%p4=?WC~&CKch_oDozqr zI7yMj$-t5JY~ADak^?Doqcfz;4Y`FxfB3a*RTdhargs&aM7K6U_X?pz_bNqIx_8y{ z=IN%O=-!Q}vr-{+|0~iBRCE(n=%&aty605scB3=sc0+EVhwc)*X}alFh3={?-d!ls zy{974UD)DB>3JI6(`_*&vBi54ceMF#Tdd8vWQ##yi-{}LQ?9hdZm2k!kuBD%CwhIj zVvDsN3`$~K?EIx_#Ftmy7x$sZ7MI{@ys6k?IzH3x>X67hhN!bzAtIyeK*{cakkk-W_(rKDHTn&3J?YC73M+PpUIz|_ z3>%tjH)?ktkywh|p{6z^V|68Squp_L7nsJ--6VguJ2SAGu{+ROk;4Y(jM1JyRw(gx ze??XOJ3!CV{t#GR)ogeO~+JOKeuh$}pyT*(tRv~iwn-@_AU zoWT=!!j1Rvqy%r0Cv>>NlUcR8{JigYt?)FV#FL{GRpsRAdVUC=P!gUTP24$BAv{sd zW9!~-_YMR+A+GR*awSjP5HD_Q?7(xb)NOA6K)zVZ(dfVk6dah5{(;F!`K|i=gDT9; zEq!dHSU$LW?p6=CN^n%G;@skM-zwG*5Yxji&U17*SZk|egi@QwDXQ}88T6rd{V-jx zC<(ugC+-}p5Pmh_*OlfM2>3-@;TPpfez~C&#jmJMZ5`VNhHNiJU7?-%f&A49^=S%~ z3v4;B!WQ?!t@p5{1Shr>e7W`G1z+fN;^y{O*=)YYI)=tXfqK&7q$bz(1SaX?)MYE3WdX#sU3sFQk8Tq{$BH-S32 z7xlJ)x*60dy{Ov*>Rq6o(~J6iK-~)J)LxXfplRziP|xi}JxZq?LVXa_X}zf90_ww{ zPVYtC7Em7r^}JrxZv*O1P-pa_c>hRk-398*Uet>M>eHak>P5Xfpgs%g`Ms#$2hRwQ1_o5C7sIP-Mrx$fXKz$3;L@(<6fch?|$zIe|0rdk= z=k}t$98l{)o!5)fof$fRKdAG2QCsNLLa3jBx}X;&2bWJ3`Ma9Bm%?v1%T8RVOtKRf zE0UdsEHXPKvu* ziR{(yfXB$*t54iwAEJfmVACqcf%sM^QQ)QHooo?u>gO=9R)! zf|D=>S=zCdUsY=)S*pzK&=F;6aD*=($Sc>E59*mV;4F*0*QqaV*6uSuU#{%p=jDoK zHy7>QYK?StDNF{?-zk5rD9H8y8jVn^Jwo@NtI4eQX9@x{sYuMclBn|vg)p-PGry+7 z`e|c<#7v^fFBMQq%+$-QgZgev_X<7Mhr6#*r1wi#J!j&oLaE!^sCE75vQYW6)rX1q z3bkO~tPKmFECJFLySFDHw`1~B326Mts(U8KiOoU*2fvC7chd^Wh`to9;Zn7yZyZ z*XLg7Rja*-!BhTbYmrA-2za@^zqO5@`PFRS6LyPcQ_mN*OK{ZU1I2g#uF?N1_0Qg_ zjs%Lkb&Hk$m0-G6Q|qt5Id88Cwx#|n=NyPk)cGW=`jLaHfLereEk@<_8Ng?MqAd5- z)~Fu6{2<#PvyUuG*Cfl9-)q$rCs*tAKlukuZoISbI^nz2GvL~?n^f^WpHj|NTV8fw zezAmcU_`gj0ftkJ(SVv_s#J zpf?hCUaOExJA(+JP6s7RAh@(cT)DJExp--3&N|6`Ez42ee|f#jG)(i=Y*S3bg3= zqE#%?qKlxjp+$>x(E@^tpu`o0GA;dK?wF^ylHKl*zV)ZBFGru;kBzV}sKTaMxc=ma z#Xnt=^N&Ngq6KDC=)Qgq;xbVmUWJ~4?ay8)A}dawrJ43YU>#q$)0`77Kd9hNNa ztpBAEuDf##bt8KbHQ+<_)n24>>n*QW3nh7diz3}4x?W}EMrrFej`7l#r}K$%jkI25 zSFY@O4IN))AGD(rfiG6wbLuS{$o`T1X65PrKfJwnSX9UNz&$hUE-QioMX)Q1qGF*J zv7llX6+y%nOYDUziUIB}>?JWKwiwNO&Y1&lzEC{?1lPpMkV9QPjboi)8efKgQosXf8n?x+ zJq;C8V^ILpIR3HttrFCNe5yb`YAlxK-An(~zi5H?cjQ0%W#?1|Ovs->LM{X*WIHJ2 z>InGJYly|!82?&04;7(jV|e9q3$Tg)Ar$CT`f@I1>PQXOdFJ2$(J5mQsh-3vpL+~~ zerW^$t3W%kPoeLy{r}j9)P%mhMtui8fqnNm{DFN)Y3Mk3E0KV;YX!sv;4_p?cCZ=g zp@(a^_}x{9&|yLI=yhJL;AAH)T15ct>60-JF2}G!_1} zFcs>7#c_{zWiPbG*4gf=DCQiz0})>zY;pv(e%;87fS_Z&Rqg z?|$>9P~YmW1pbdY!xOLIK>v50b=4}{G}#R=GRuehiSb*ZMtXx!t`1L%!Ouw19&&L^NUzE_PGNopo_$v+m!chT%$yhh@4X_Mi9F8qh*p2)wz zmBd%zC%6Xw2!C-d$^VCI?1 zi~MC3^2T`x=6i9Sd>Lj8^yT&N2j(GIUvM76r8|GE`Hq}-9ms2D!VsrUc;^SU)(Mj# zHnln#8^f3>z*R&Q988X|gM>o~$Ug`5;W)>pu9NlHf@C^AW*Q~g07>e=a~AkFW;#UK zxx2x<0>?i1YcB7Uz`Nl)b2jj27W|2sjo0vS0{p3a=4wgmMyt0@rQpj_x*Ork^^oJc z&0JKz_^Aqu|)hJP*QRn!Cj)blEq6O3Mz-z~4+ z(=BQ&CeuT+VA1HEQj*93#$i}t`# zOf_Hm5+8gB4TR;Rpw+;Tl{9Go!1=Lkf9*%mlaHPorrs#Ox-Bs?v!)fDM zfqRyO_ET@eD=DG3ZL3UyZ7u!EmtB6Ro1wppS@t(RqD!l&p1HAfd_;FU{!Q5mAwHt( zfc>2T)rWTqKomZri+?Tp8}%S3?C%=yZm+9@L&Ii(h79Z;VB<-bli)IbNPfF6!_-7i z*HYP3X8!ZEbSm*KnyoHtLQO<%vE+!p2Ul>t>a?hivACPL_q^bK92;O^XDj^8XmOM5 zyaPmF=bi8e?A#LWba4cY-31);F zaO{JBESwQl@{fJ=2@GXI+Lo^ye;1qIR(sth_zlebGZ!q;qD@8tZ<7^2Q=9gH2->g@ z{uDPk`xUoN_ykSYm1yV5#cU~-%R*#+QB5v|8!Y|KKCH^7_8$~NRE|2%xsJ1fi; z+WQs$N!be_wil)-_bWX?5#BohQP5=kW6@;P;wA^+sgN!ZeiI$yV-`WNfjhBjuy5~` zKW&ldHQc?x3kxvS8@O~XX{DVS-UJOwh3kjU>i&EEa1Zex>c_>sg5n%w7DFjDu2#m| zCfZL}2;o~!OHk@yNQRqGtfGY#of?&cLlO4yrI4&l&_Y~y?I;)Pny`qNt_tvV+VoMK z$(Z@OJ@WN;(cJ&}_o~~WB@5wyD0UV6#dQ__z{wmuR1H_3z<>AzrXU{I;e`+f57b)T zt77l{!*}+;ymX6vXFrI*cMiZG^c^=v%izo@P*CbYhy;dlr}+@FQ|e*(1Ag@(_|+~b zF907v&+kiANl1r*ZZRn>!w&om0^GW1!(ZOIW6`j6KZ1W!zJU-=U>woGU}l02L;-Bw z@z2}RPOvtr($MXw1^Fz8eBiCCpTnOr!FQn=`5V{iFu|B(RzUm=XV9_OxawI5`>0$n zzCi<>@c)`jOBwU0PzNL4krYg=mXj&oI`d?Tj!Er;Tj!%tQ*IdCI+wqSe->CSvMEPT+KUfC-!Ltwa+k}h3w$^Zs zV+8z%;?a1kA-*{L&HvW`F5ufU0=}_XWbE{ZIC%KZ@_QNRm<3~}S$NxKQV&643;B%l zspnD8+r!&45OX(*;SgSio3d)-glOGXia%0?s1`mlen|A71WeKJm=xOvKwOt_@dUok zgVTJqR$bbJpb)H_9ii}>09`m*OkH>!Fc_a!eojWOxMdtzUX8U_snm~n?!|R z%x!-J#_Tp@=x&4Ib@TWRCQ;vnVXxvCQ^WM4lZ~h_WRZ_ajB1223rN?e!ynNmQQ3sy z9V6zsxgknx24T)^hG6(zB*vr;!s~CL&L)v=!s`$SONgP7_TDBjkfdLlFo&&B6Ms>w z3w)DCd<};rHlkc0mODKR^SK#_;fO@6&%x0c-<(>PWyJWUkb^&InZ!YA<7|kr5e*}+ zq?p8+fP*n5#qp*uBTeGPsBJw=;-oKzRRgy5a1xz|U5{`QG@&3>vC$YB^#;m6>vprr%+V&1))22(gUwB1eP`6IJPKo$w#S$mU{4#7IuhHy zg=~8{0OJkT7?vXY%ncpp0KH7{d0+<{v1?GxvL!{oAul6Kh(1H^MwS$bNiQR9#72lW ziL(K}gB^BIO`edQ$0T8HUxPoC5I;1!3l`fn^dPk5SIE;zI7XqB>J7n`mJP@7ZVZNF zDW*-?fOaLsPlN2eONeD1uz!0|>m;R|wwjL!!$rz035{Z3rh+6dJ zXpFxz3gc@4L4DCAyF-4D1pmvY0LonL5N%%oW{8 zmP53V-V|;x`VD?CXrlO343=q7x&x3Wd{zM8Z3L=9vZb`=vKK3vCdzb_cDd2fQ!Eo3 zsPwf#H#%+*pTTJ>)}?$Sq#aBFM6a11P|CMN_OMD|E=r=Fy=Y71DD#NIqfk~s-X~h) zk5o$<6sF7wM5-s9iLQ4->L@!9EhN1JnMqXM3uWWva-!ly6XX`6DV`{sA`cU}lWe}c zMAU*PPkLHmdBchB$}U8IkX{XyOSF$DR6QWtKq({DTcW>7wqK?E2FqdZQuHS8vuL?v`I>?JxzC4?KkB3eczL>cy*tX%AcD;&{ziVqD3NH&kk>ti@f z)Q9pMY&dF>a=77JlKnurj4y_L~u?3<&8I7BHBSE zq!}&~ePh5jWE!p#*}w)ZPE0dgCu&#>X_nz8(P3)e0>dq$KdF6-40nhgQ_Yqd?h)C- zZpKr5Zg@a+o$9&5@QCOr)pM=k7oxAJp1Fo6MBh=(wi=!iour!WH2gv2L^b=$@SLbM z)$EYrCDB=`*)hYPL}seXNyA@6xP^=p=iv48=mpP+E*gY2(oa;EoABy=r0=ONcMJxi zFxY~{i3bMwjyK3YggsoG_{Cr*xC!To_`uj5cQ>8-Wu$QCQ>fS zSd!>1Z%rqXK~s}M1~X4h#FDp5ypB%?o@hr zqX$u0DzA^xi|7u~K%)Bc!BJku^Uk`)$Ee72T>H&?1r%yQ8%jDJ!5a8 z22``h#=b=URI{hXkBIOlBu>0C4j}r3>hia75Ycn8nZY!KD3MAxnuZZAr_yarBZy{E z>2SDAltQIDnc|4XQ|aYR2}ILrq*gH{5{;v}xR^#0t){xTnZ^)pqPo;EjU~E9cJVZ& zYCWo%pJ_aiD_P0kluq;+)w7W)gXk{RvzciU(N|Q@R;I~Bxm3^grl~|Tsh(k`=|pp> zW|5|u7XH%1G~0rDn&w(iFVg}G`p~q{f_j@4TTmaTgqUjOH;B^B{gxCP|E2XSPUNDtu0C{Vc={J&v zQweiTzY~R035!h6h`uC0%Qn5B5?niA39C%6NLGVV!YQ&DXZ8V9mn|kmB*=Gnm<&Ws z$anXcOhf}I&;2H|8J^h|ui?I9gE(fgF1T z*LNX=dnMNqaP8-w1Yu;Y2@u-V#_R2nzZAVFpK-Nkz;#6Jg%H-K@TEsKTo0|c62eyX z);6>RWNK7$U+u`WNugIE4D5j6 ztmLa8{jUB^2(3IYoL2|Ka-J9;;dZ;WlQ55Z4A+g_euFUD{TYP5lykfKSjt)I1>G-A zYGO>ydRWiPRNEv9cT?y?EgDVve_9JmxkKgVQhN*6R*L6!{)8GXXoz*LMPUquA5z$s z!UhzUhA<*+_Si>;h%~zt4Es=cjbesS*nq;$6jr0~B!#vVCQ(?Aw3gBJb_!cj%u~3A zlgsGawGAS>%x$RoHt0J~ae3t5aIM>3k=peoS;Lj=kWv#ZALef7E`>*Z2M9}3D9Apa zkWGxFwY9#Jy9?!SCE`bvbGH)y!^^oxroA4Fy?JgBhO*~7Yuix%6TuV0)4p!EuXcFa z0tlt3UAHRa<2c$0%KC_GJHIB{c?s1@_sd1Fe7-06y179qlak#a{h#%)hQCqDwKS%# zQNJ9b@F4a0hy-`{u(VeWSk{Xn9+3V>XR-{$OM$HjOKUpvk-YnU&`3W`q#B0KsTh7S3Pbxu40lj^ zSp%=9g4huu$(taXVbMS zU4Kf~Gbv0+LFp#adQG{>4jAJ=mgz;I4TX^uKBqK()S^RF&r=lMrEnAF`I>4HN@*g= zG6N~>NMUaZe}eS+z4JJ%Ih5$ru6aSs)UK@|rmh=?4P#rody0lbLc!BUjpzzt4+G8& zHT&a8?AaQ9vWpYO1X4^i#q^|@sD7AcUrS8Wu{5UH(idY&v_$WH>xkoP`-d2FJOpFH zNeEP5X$p3<p|S>2{YO##8$$gf z(@yt7t>2nsiT7#dPoy-Nl%^S_DMjVBY>hK^Gp7q+nG4jekXBgM3}_dOltQIPru_~z z_Y~Dh%Z0QWQqFBdu>NIB-GqFaQ$DL(&VqV2DLo6?IGC)F*8=Nv*%5PSIAmU-R{WRJ zi`Kb3wbZ9M)_Eq_Co*l!K+NB*4Yq5cGq!6G#W+&T9EvI0irG}>7cH?B!%AZ-W)Hx8 zj+R^M?jp)LuYy*TqP9X@c5oIqyyV{n% z1?{Rvy)&%^wrjhi&gYjx`6QAjOlpQ!JxMm~KrubYGw+bM45paT6f@Hq`(gsc%%hkt z)H^*WW=JzED;~T(GOZ-lCxJ$j7v=LirLiHKj3KSddoThrAMhZi~32?S#C3xewIoP zrTQEuA4qD0-nGsdbDl;qf#emRkyq3qt(K%UpXxk^{Oxn{(iRl+CE3S?dVD;M^rACH z(OItOj8Sw}dEbm-TgdYNrQeIr=SA&Pbj%j*!K!4RD>R=c(75)Ym?so7mSToefBitS z);*fFiq0xU{qTK0=2WPqkyKVj`6_i>#8l_nbt2QA(KzZ(qh>LT8uUz`LRw9!zXsFT zUsM`rgQETZfa=_a=JPVtgGKFgjM7vm54Rx?uRI9nhabsXE|Ir9q#9;Z%wCGwMll21 z;H#E)gDJ+7V*a4HI?WGxG(RL!%zBEkqdfaj%$#yvp3;ABr*`w&H_h0(4 zsKUM>;~I zeihC3yJ)s=O0#RxIp-evc^6tM=aLVHkyantlep4uFpRutZmWq<^KVN}1PkAwb{Qzm zQ}WN}6jP33exsNa8Xb3AU|-yU9b;tLE$ZLs@>8LI!=2|*?<_53jiM_;QTr5a``1+Z z_2#&0JfzYK??ut_s|%G?H0PpgUtx=3KAQ{WQ*@VDbd(hyiI~qG&L=XhXibWaxcr&+ zFwL~5$$A$H)g**`K(=WP`;c^Jydx{R?NT|o-pSztbo z3*}R|tjM&&_Jln-jT+0lm{sJHC1~v)O{Etu>wR}Ig?s#ccQHj*^P(&MJ@S7+>({_i zxW^kv{=bIC$axqe*wPn;TDp^bJD|L*>mq`ji`Ol>dql0$b@dMIzxDVjng@QST}?dA z=hrCa8O6j<%tEqWGR-+NXwF$jF5O(3P|MQI*UDMja~qO*59(i%xxe~?yHifKwQ*C^({tP4eFfd6}) z#kSWf)b=CPuFD~TFkYfc;kna1>g)Zj8beH|6P}_BrMYD?&Eea~=JP0K3&otJ7&G-t zWty=gX~u3$X}VFGC6vaKR>=pnf4E8ehwrKMMO7HRawujz z#k8lfxxEEy9jAHqA>0$elX|7R!RzelI;~UyTwB3TObX@L2(G>9x{_lvxb8>SfsU=< zdIhCFUaCD@cctqkrNZDkn68(ViiGQml)j{654dhe*L58G!1X4&9^yCvu6I%TA4&~{ z>sY#8Un&N!$5NWsjw9iEI>qlTH3qKT=z3L9~;*Nlf*|dZrq0zeid){(ga$ zN8D4mJ|FnVU=qG<;k;KggtKc*|H>jCRWH93o$`HYiWj8Od9Ln+HGE%6EFCST^Te_o zK{vleE^r+`0&9isLTNn6vHIs1v5A4Jx35{Fa|i&Ea7 zKDXFYuz#wtKj`L|E$gg%A)fLaRS)w_v&d}{)p;gKvn=AZmX0snYcrr1&;nYz$U^H2 zxV|!6+eb?`Ld=#?I}4==wn*b)+)Jfn%6vOpmi}MjzX9Ey0e0YNKCzE2>UJA!l4Cyp zFF6-(SAL5u#0**PH((jUA-N{7oVzsT^G2_QKF6 z(hb_Bb6(XD=dM&^C5xOb{lv1@^cEZ>Ai4?V zW0}7$w`jZ`Wz8wQv33ZBK#L zPu7j7rH83R%UK0S_k-xQP;;C=^Tz^?bS%rV4%kM^G^q9OY4oVkIpf&LPpNaz@%bYZ z{nIl3e|xEi@f5V;-|AMgqF!Hg-3t4mE~QNIcwLIW+dGk4_=iXui zEd0T;mvJ=Z_eE}z{;daf(9-;Ms%RRVZ*`jdc^lJ&oByrEcj@z2uK%6>ogZS`|J@Vb zCw;dT{CgYU)yJ~_|Ma)_r)h4^_!q1GzfJ$HjsIL(indp;Ea(H+A}KbKkEI&*Ol3LJ zai!3$ez%%v|0!(4|DICM)mVDP)FwqnWe|AF3*LYkcytvzHdoDpy%eAI(%J*y`B;iepF8vaFQw$qx9`_Y8veiQ5dQx|9sYL>i%Qdy|CjyWNpW_K z^1!ech5aZTMB#7><0u?O;aCdOD4ay$Gzw=^IG@5r6fUE11%+!U+(6+L3csXqFNNPw zc!a|5C_F>q_Y_{D@EV1;Eav$jTAlG;@_imyG`>)Jewu4W&@7jp#{8T-M33LX zt16~}ZxVUo>a*K=548yQQ99@RJhf+HZdJ^B&vqNGx7QP%a0*e+4B<9+d(U@u!1Tq3 z>J@)8T$k>I*8y>*A6}YPPqR49 zbi<_^&;_QlRXchX6W5t)RqY0JpDD3=M^78^8&gL0Za{xB?Sedu3*{o$=&~S)5`rSN{s=N2U#~Cp^oDYfQ&ozX!U)wEZD2Q7|t{-qLY`WIL1^vVt|*AaICIVjvf=^^#*iST2(ob;tvuxQM5 zH)%gmD@{~hQ_+!SqvMWyH5FZnGRzrqc|d(wc4JJ4RWmV|We>*K!*?y?w2X3TF2-<5 zmoZ;@H5cievf-HhK+{;(b<9s*A!07e293E5v{=h1mlk3LrwotFHnb4?n0y+CShWy` znVL1Whi`M9V(Qb)&aS2SfhoG%GuxKp8dIWoh*c|bmubAWy=Wz#Xrl63quJr#5#!9p zPrTmI@Wy|7wb3Gwb!uG9yIldT1nMYWa-N@r<`}}^YxyWnH!lx``zle4DAT+xF~<-g z99Z^sB0QTd%CYQl_%LG^QI%zR;pM!$2zR0ks#&D))+vE1dq;|fL(MRsj0{fPNlP>vx=tR%`bmmi%Cl*3eObgpfb*v=H3lx^rH_A#|j%C+q#jxc@J zG275xoMKwjG1s=c_>pN=Y7Orm;u_Q9RCl0zOu=Oi8hVN+Ord2yF!mI$G*OFs3F(gY z)PCJd*b!x#ZOfc5-%FGx$}pEMuktUeNnM7ke7 z5~*57{qT{PL8NWnU(6xWy#lX@s*CMAsIXW1i#7E$o$wlJH9$Nh(j$C;_?<}SGC;i0 zGIMUl5J>qq(>E32I~c-TA9KI!94h88rND?A zDi(6eSuo;;ij^!|1}TS$Lrkua=P+@CQwBnw!^8!aU4fLt#Y?8AFiQ;=!b7*#0JFw$ zQH;p}JaU9^V5$NhIYN|UDpf7p5G|?_Wtd&6<=RFIcczvw0%C+WQzVRl7|~D@d1R~z zAv$P<@tjC|WTJShQ<6s}3bQBLOqV`N%xA*# zMhQnRl9wo)hU3 zlEt4|&%8c7#5-9iZ!A62yfeHlP;nw%!dOvC%bM-DGN0CC4yLJRr(2M^usUHkRL6rUHg|PZzIQRx%(O z$bc_lf%b*LJTXJq5@ncsCyex-Axg8%7i2R>VV*chlx}ti z&b6HJ=3 zCsRb=A@9$HZ6lrX!>I4PSBg$d)1oc_En!NGz3IJ5JYnh!v|5C~W)<7u5dGMDt=L9% zLxJeu%!nHBY zd$TyNNtE**YPCg_X@)5?VTM5J$@G0>ai1;XGom8`OWy+Dw4ju&M-BF5w}fTWO_C@+pt|cWI8zr>5V3uQML zTqUxU&vs!)ly0sUSr*8NDAU|^WVT_4sKoTq$XweU!i}kyOSa)lQJ*Qu=u z)tIipZsvw?XL=Sd^FHUn#^e3M^1JZS1S`oRpFhMLrcl4tJ}<;A zrW?K+eO`&+cBBXM^)8>k#7?Hip@+Pcv~90tAyroU7-VlE-6E4*NR%#S`JDE#mbaMN zyPWnhOAq`?IrKwR(rKS!ax9UqnT?#NNi<6S(WkgHbkHT#N_yf`Qg&kUje6x%O0Hyz zjJ5MEEnhNi0dkh@J8C`W;0nHFJh$$-u}WnZA$az4|2uMpq5@;Xy|Ot^17 zStnel{Io{}-}*9%X>#m9Uk`bL>HEl$zFx9S1g1Ob>vX$jeN(U1s?P%bHO-WnCz}sT|2<25KhvGerP3mvDdp|I)<} z*IB+HGKwhxa%mw~GVM?w`?i$H-F3>UR!e+a$$3N{n>~kp?%P@}A=3Nn*0SRWO!=|7 z+K@FMi)8W~wiReF(T!pb!(8B9S}{cW?z**1Dxh7E@)pq@nH99(w~c(HW#*DYa|~@H z+&aR)Oml^y65dE(p2>4)wxO-8sY%p;JBGG0kY$ZQudNJYY7KgApw~_&vR-G< zYbP^V77llO?c}ojlyFYePHtz456w2Tmj_sHP^d|?m*-fP2Pa?clg1`^+iG!5W*^TGt58{isWF_0hsyd);hx!s4zdC3wT4d-I>_ckM?~?M zBfcGE1koMH?K|I&@&e1OeR2$)WMV9qcSK~h53%Yb(}=*jU7Of;l6B%xc1PZX^OrDr zf+;9$mv5Miir2EBusq++@)42l>2MjCfHLgqi@xD9m;P}xlQu-!f|0Te5nAv!->z~v%g};R@+&5^V3a(@ zDba#a(lrtD)E4X}Q<#FnZuxeTCkiOfx4W!33R7we_K=}OXu+4hJ!AwETCj&4NTe;; zLyjQQ7VIID3dqW@hkQwd7PRq$cO{R;5;D!(gY1FIFdYhV0;oC|`t z7|KwVbqn9`+e>y~8Wg?@=tCy&@Q1!1%7IKR!*2n_FvY?+>MbWTjUSq8+gmPUS_ZN{ za=j)o3&vO^}xmYRi8l zuQLUOS^0e=rzC3``fh*eITlG?5waJP zLk)W|LdG(6hMi-y#NVUF(b%SjNkq$uEWG zmSw%5ycl_tX#kWLBcCyig7RV|yx@__8v*6T%3_+#_-RC}bYa3zBVuI$(|{h?hB(=R z^&;Uto^djgW#z&`tm5P#rfOkut|*h4x`kyM;^idP>lg-4Wy@JCLl23UpE03_#LF#A z=phMmAM2rqB*-Hy+X81Z3Gyn_VK|#fkk6PNbGUIvcNa@am z=dB}UGp5EMOOzcoiTc${B2o5XnO&%ZU80O*Dj)i%ZK9mW6aeerC^=V?s0HiaD7lzr z%^T%_Y#URjM(|X>Ji#=qQMO^Uyu^CF8o^U{@*$BP0i)$#L^uL^_$A5f=>q=g5imyn zHbE1PfHCqfB0U1e$bg9`({n+x44I@UD6E5Dvh>N!r##=Wvh`#nJpxkXH$*rB`uU~E zV@x;#QsgBfJpxkX4I(`PQsf^6Gy?QCOwlD|1&#DemD`Cj&FCSi@(2@pNUFTZgdQ?Z z-qIw{L&nL+EJF_&C*Lxmhm4aBQ?Z0hGkVB)SwR!cA>(CrmZ2w)myMXvlgG;lCiLVq z*_ZXulhb58%l?9U-!z%QWP?^`qtX#*k(Ft~T>GA+mdcrf? zba|2KCLo(6&#+$ojwUfl z-e6ge5y^g&sdB?iO*kH=%AG`dJWQ2_*(lTF zVVW#6M^jMP2)}8vLRLQI`A(NT=OXFxFhl-CgyUhF-wb(^3CF_>`3I364>ROzB0U~v zNUM363(^A63ns#~af#nd*;>oY=`cgjl--!7!VEoA4re+JGxRJuT9fz&X6RWmjb(Vw zH%n$Q;W^(dxsquB><4GdjjY!e_JgzKPL}-)pU%ye-!lCIemz@WW-?aFHq4QCS??A2 z^&I(xNLzl66!Wn~X!+0mvgBYQZTY$K3=>*@uDrl0aX&a$c3PnIa4nuE_cH~BE%2Ks zT|d?`T#M(+DMZ@x3*-SJwESAX1@c=awEP136Op$30(p~2TYiCjP(a&2ukt6lgsh-F zejiIWqD*selnqdQrjAioKmkO$wV%kAtXDkd8^47zg=M%0TO@ZfVQUx3{hSh8yGZ`Q zgsuHl`Yg%!8_C8(&r=yC;-w!|{I znF#y+y5DE=I?K=!*|PGdSTlVml`Y+f^oYxrQA}uw<#HNRP}n)Y<#KNU<@tUtUlD0b ztdQjwW1eVaw^AO^GIRam$w0@M zcD4T-D32)$?gLiJ2Tc8ga&1>ixdiKyX-);%Dp^94h=qHERkAXXw$du;L4;Pa@&7{3 zXBk>)wfvO{{bjX$$tlraR?DcRSc0CH*2qmvL19n*)=2whT85)ztsF@9 z+x2n;Q-zY*h8&r!Nt7-LzfvHlv#g^-h*geU!qmk9-c2qyGWB!FHf)f)S+9o!JOwBZ zvTO_JZII`gc7ompd6(%h=;g|%toIe@<;vGAd*mEql`CzR3;365{@vLgWR;l|>QfYAsb^hSTh=vJ+DhoMvy8 zgP3M^$~J71BUx`kCzIGFC$S8l-P$IXGU2mZ+vGN;Fdz6dNq)n6t>E_xw#z)0;d5Qv z<8y7t3ci^n=d$buoR#d9E0`X^S;bid zmFQ*?d*u<9;fl9co?^lkZ?F83NY7yV3n;8Ncknx z!}i&RWAcC|aSeVw=9v7BNca0Od6@|Ny{Z4VGG!aKNca13>AGDL_WN;Jhe-GParuY| z*Z1#a_6|&mrz$@F-^t)F^C{2wgnUAz`~9R0-H9^n_tyR=WdsxU`$;*7Nca0m8BL`7 z{iK{xK;fXbW0x)=E2z8wDftyqrg<0C^OQWz^bJ_zl)TBL;2!<7e5^^l0!y5h&sp|8 z?8Hw?>)n`VruhoQm|OuxWR{EV!wN!*5=_!(J`Wy|2R$TPAD(+2n~@{H`vbOLtN zXJs$e+gk~KeMJsr8Qz(mmE)N3&h)HYz=U_EdGd4C!#mSFxs_$ON6C}lG2tF1Pu^t0 zJ<2)xE9>DN<(w3IxJ7VZbxxLHy5A_*_MEKGq#9=%&dY|H#51_(Ixj<6b{f{4^Rf#Q zuAArO2qs)N&&!ESxNd$gvor}@H@}ykvkXtZzL#5>@Z{@zd4vg1zJ8ErSr1RXevp?~ zhTmNHK|W-{CkB6zZ<*Rx&Nlogi|wWMiC$pcA7x2R^xWu=(wzyP8~sr>XBr4k)LoEa ztmhBE!gE3PV_7b&sTX7d({@->FUU-$L$Ib^lv%8|7uM8^@>7=8gZrwBay?TZ+*e(c zUomxp^MXtAThIPak7dDdu5n5J%oGae8kgjAropg(`AN!sx_#Z@3ogq9COj{=ET=Q!dBGLAi1qNi;EG(w zGCcXZBKI)i$=4NmiV07?uFA`-hbLcG-Zp+r+ zA>r&c$p5zN$b_@oZP|}V&u+Kn5F$Oh-Igf@6c2h$Phc*%s*Ul#Bij(^Rqc-K%Y>`i z9ht<0tJ+;TNfWJVcjd<{!&U9BT+M{5+FiMu30Jjy@-XY+s&-GFVi}$w-;>vv@C5mu ze9D9;$oJ(N*25Fz`_gn0YpqYZ?@MPU9PjsKZ6+M=52UXqI_Z8O8|Ul6ea8bC$%OYE z59A0Yyzh7@lUWb%J08mEEW_FRpx`y?pD>K7T!lpSObvUH|8;K{$r8LU?oJo#6-fMs~s`m0>ZgnNx&ok)+P-y}Q;1^;jy zjrV^lgU=x8arC=PJgW)E(eE;iNROl6<-I(V>2dUjtaDydP*}YGA2Q_oe9H5ECbNG) z(&Om4^!O18$5E#LbLr27l#z-P8EyS$M-iL_nb$o@pyE^p-C0@?$5Hdl1%SwRQ<-^!9indUYQ$$oETIVSw}#arpc zgsbRV*@g*M(Z6M+CV{Ky-*OPk@Ok0C<#;B1UifeMF_Rm}gj&IR<=dLzXBM}y40j1a z9cIE=L#PW(IBQ7tGwb0lL8?bA>(KBX&4QK-2Z&dbIv3;55WO%+nsq&gcOcRq( z%9Uk%;2C+Pe3_2GGxAEcX1bD`ZLm_|tamoqB&<|VmZc}b_afB@rfEs=y-1bDv@|K( zU{KRpZ(foKeuZ>C%Z|fS@dlN{bRM3HH>iV5_Y<=XMseN-0_)IMNOhD-0_)IJ(gv(%K=#{rWx(vx9L@Hrmb*VVXa26-dZ@VuvX(( zc6W3R$Ub5EZL|d0MkW)q&#d;b-fQT0vpU7H$J5`^*=+c^ z+!8kg{L2(?V7F$cs%kQ?0zEs`m}x8M*{NZYsp2@dYeoSA(ZredMWxe&4O~OI7W!VY1mvK-7nQp+njDt#NvV~n`Ni~=C zo`ZjuR9~=6!BeCq)d40ac#5>7y28{1?tx0FUs$g;+yj+T>SwC8`Eo4EDlt8Y&9yD1 z0-4Ifs_m%SY7z!mwH?)mENc~g%->NBWcnM{R7Vxf^s?&`pixXRY5~xArq(bQlvazG zx+Le?mR38MVnODlj%pJ9V4iSNKe6mS^q-S@!So9H&qtXeTO9C6OyS#@N>Z!|iqK1}$HMrW14WP+NNQR6g;zs8tE88w+@ zqvQPi%Ba~)8FBT27Ba1G_Ofp#-};^OC5UL9as z<5C~!J0iVOR#2CTaHYKJUr}wkicV=sGp?=%vJB_Q>S{C-&XLvC zG$x!QYp4aRhjU~NwTxxB_SaB5m~ic{p-wX4+V7?=u^z7dZt5Y+=7I0Jso$Ai!s&>c zGQ8F8Gs2AGrkt6oz>HE;Rn;U)!i-W=xf5xBsi_(gp})NGuce-_40l$wRqo%Ir~cfj zw%SRg{iU{=5AQd~_ZN2+AvFbsJ@I!}^z%;OOZbUO9d#am?1}xQu4-t7g#Ka(sH>VY zp}*8skwn^G>Z)Eu+F$Cb*aG?h^g<1~ysRLnfO@J6k-j6Urv@_N-lm=!!-RXA`f8#k zx+AKuX0oiVLk`GRF?l<{FFdKeOu^899_m}x3xxjjP?uPSdkqiulnM759;%oTYnExo zy@sc9(j;)N;i=qMhJNO$nlPcCd8$Yz^fNE@5$mC!d8v^s`vsnS@KQ6Fp23q3UTOuC zVPv+!TWw;!zu@G=TYbYaqg#lTx5{HG;bsrA+e|KQ*#;l=g!P==;9Y_070d9>)JNIC zZ-HWq@XpjnRb;|DQ(sk6lfXMuU**ZNIbk7IzN#71(lC3Fbz#~WmTmA;eOPZ@m`V7l zAuQVf&jtCZ3Hd4EnIS**Dbs0?`KvXocMzT#@>jc9wyjHr0DqOobf8OBpa)FXx?~#y z)JxVo(*@o!qKaAT7VU-Sx&l;HrsGv|Z39#Trn?{uRIN3^TQE!_P<3P3OOhorS;Kd5 z0@WO*8u0y`25LF$Ik}ib1GSxHW8sXYfjY~S31=(~)FY;)aAz8%-mqR4+?fW!@7U{l z-iWRh5Twcy>2VvRY7*hN^$BRG+84u=dY*5j_S6vr_*-Y7LqG$b@sftWE-kT{8 zCLHh0RS@gpy-afzlCKBjues{UgyXNdN?^kA7oyTw5654K%3|3ws7r`i%k;K#u5F0g z&*Td}(L$YMJ$LYz7V0X?@QJJz>Q^RwBCCZ`rKm+_d?Kr*veQIQWVKXIM7pP2Dpw-x z>F|J7Du-n_L$_8f9WfU@L$_9)h;&c4R-!b@bWgWY^O=IeS_ZUHRh+a8XXv(S88A za0ct3e3@_t>!^ZR4`;BBstu90d`A^UgqDvF=%n_t3@sm~+{$8k+VWw_gGgIGOs!$U z&uluYGUf7ZJs_a7N-3Z`-*9!ENLxNaIhW73{Fs0URf!2LAE7*nwB;idyhj{cOW%x& zP{9Q>5%lI0q2;FsbWuyRjGlt(qBbz$Q&3&hekObhDpGx?iJpRrROeZS_YaZk5fk1& zL@KKaRJs}OAG#`gO#<&9x+)iz;r&Wi70875D_vD5CcIyXQoUFY?^mK!G?BJ^lu98& z%V!02Qab^<-4m0B5nEZ>I4&7zK3d92~*-eWMV)Mm0du2zCD$pGRm~& zd#L~-^!bGWy;Kt>w0tksnMhl{m+D5OE#FHe70?RMJ5Gd_Ul;J9%F{CP`4834Oz86; zs^?7T^SzaXr;X8fahB?>Y&4ni-l?}L$uuQ?Q$TN3j!0Xnx2j2mR@xKLN6ldwTB)zP z$AoJ@U-g7j;;C3))yYNM1+COiZDR@wTM^JtIabZLS)T7lY9f)gQh$|4gjPBb&|h6- zLM!!GkBGFD`m5iGw3YfRb2Vxocq~@IIv+4V4bd{Qcl;%wbf(7f*MSx?CC6tQ z2C7w>L^PcC4pci>hEHz{R9`XS>DEAXnh9+^P~BugTMtr?HIc0cspmx6o`aOZRkyu( z%-w*&YA}&rQ-`RtOlZ#`>N2N9dk#^ptG~17P_>OIDC}gwP*tYJJ9`dOX++wd!_`hA zwC67Y!`0VJXwTs)k4W2dxVlKB?KxcCDxg=O7vQE#$O;mHBUCU^ra1!607s}OrjOu! zaD<9sngFtBm7+<+!}(yen#nReJ&#t)nDF#GT5V>+)AJa$m-X=UJVqU689qH6qkdq* zr-x(IeI|T*I9C0^diZ>Kta?MFEg!3FYvxh|uzOfr$!#ofTI+w0xpEN2D#Es4fv{%O|QQ z1yly~w!<6uaDK@OsvI~IM_~;Ar(o6Zzn1^^9e>R*hDsI+&;4 zZI4!EnQ*O2Qm&e4x1FTwvJBV8B-Mfm*Ty8(lL^L|;wr<2tMChX~C^^ggBdaQb$uLnInR{hN~{9JUb za;~dO$InH_s(MWLxoCZS&KF^-2CbA4a zPfb+|nDFz|RE2Mi#!uR{53_n2~r+#F@Pf*9HUzqR{)bZ*y z>)|J;`%w>08Pi7P^e zdhDSI$5DoQNu<}!4AsXAWqPkTQO)qy6ckn_aH3iXpMB|7G|zXE5`IW}9A&CGL^zJ> z1ZJvFm~b3rs&zzq9A&D_M0y-$szU|j4|)#%x`eEt#(|SnS)xpH<>(L~7bbj?YqAPt z!Y8>Vt4>U(8)O@%s9u@`KFKvjMH6YeOi?LBXqS$GQ`HHUp zzn-ry5b6G#ua>|)cD`RPP(2%K3JU8RxIk5Dl23WQA1m8nB;9|Xs6-;{zr?^#R0t&(GRNf4a?m8|!+vm)D#x;6FuyEPRhhCNmqp5(X$j=ANVR0z3b}l$!ZeB1kjtm4JIl&I zE}yD?On8FzsY+(T6Rb~F789OeEmq4k(FxXKwUK3bCcaqhXTme_#p)aro{29}S6L6w z#FwbMEUN>hFHyfTnTcL7;TilA^*0lq!7owP&9zjt-hbObk)C`v43Gy(__wlcK9Ht1P+xvJDs6ME}%Rg*}2>vA=+70UE1{JGlJT2oM1 zTHxpEOq+bl^If5aw?oq2x>8kckA&VjKX9e0!GzwrQUwxeZ(XT^iL|$_RILjr(`%*r zqk}FXE9kSpRq8LIOmiR4RX~m%QI=^Q?71GuooS3`w&4pEph?7fn#32X4a;((wgi5m z`Z8^e+6k1zbRa6*uv$%Gz1>kJv08o1vQluGy;`kistC{etya64yx>{CHR>?yxxv$D zYt$*0O#!_%>KfBL&|9OPGCcsjwdxJ)T?M_h%G61>s5^Xqv{qGO>SGVT`>TAJM!@HP z>r^vMVjz6}w@!t#>_hl$Vx8*G6bGM8tW%?z7Q$x}>(vC-n+TsxtXI=nHY+s;WGk2! zr%I6RW;&hHn?p4o0t-I&%7gQx!0Al6$t44(Q|Ni5p~dbui#=@{tcsa@T zTdLP{wm{+M|FYNZ>GWgHX5Eu&f2VJu&ZRn#)420vdKlHwoJE};)8nWv>fF8a<9Z6! zqRyS5rc*uDd1B`+dM?$T&ZD4~P@R*rr1Mr?Ow}uAKGa{R+GVfq{5O3wRiEsepzfqf z&wjAW6M7w0M)o?WjZ{555ACu|Z=o8}`CO=HsIKjNYL_SV3skE+*Mj;x)toNRcYaF0 zO?5?=r=dQkIzQ)!&QI&lsAlFIfjUC9JbPc4?fN*?>g-pcoKfET{HU|)`iu@x9qIgI zmuGYxsv0@Hx<0ELQZ>!#4Ap|_P^al#pVMbj{j*a(R41zJF4uI8=^j*rxuI9w8S}ZWJN51{cAVZBbCScXYRIz#&-`;pxw+-7~b~&#No?%|rb43-aNAWG^m-Pdpu2x$_Jxlc{-gCXI z_ldG|NQVl~u)UP1zZK0eujnXMaF|sUR8KE{t?Mhg-Au3YmG-Z7+M}0=DpoHS`PHlX zIMwwz`@6oXgR^X9vD%H?YkGvJ5_K{D@AR79&fK$@-)kB_Y`1GdP3~~8>uY+Ns1n?_ zFw*gLy@F~k)L#80)fjw}l?b|9NXvBSfX#bzNxRJviDJX zNAIEfu!Ga>9i2YctNgG-I!ZNQkX02_T`>3eb#R_chc#%`Kv4&r z@9^s4eVsAi<_Zdef3b z?jJfvWpf90k4qD|gL;rCZ!fRVV?}va`wBf-R0;Nng-I29I;XR}e4H8Zw{a7zlieY@R`0@REg?uQoDVoZ>P%eSrw(aD9Ne^s6qj&9-;a) z#j34TnQ2ySr)pHgs$HVI?f#iwaYbTepXoJJcGREi#gRnrbA2t9%~k41aUxf#Z=|xh zFZ8M_6S*(+y`sG3`%*tBszlXx7bbnFW305(9n$#W_rKQQA)QWTb6@GUS0!>^=^j)z zcUZT(I*~i9gH$&6wcd42BKNi4M`d$IboAOp?ugz*Wpm%?Wu=MSH+lt?&3&s^|0R+8 zR^KnmTfXn~Bce*wFJ@uVcX}5q?Q}DuZi6E zI)lpQe$XeX$tknpw#59D*+ymibWGvuM9wkGsBBJ~cDE;T+61X=&Y0vo5;mCe;K?^emxFrQb+)iiB4 zB&MrrdQjQvYMJd1CUUjR9x9tlHnIM(T)i*^?C35x6aw?l^V1{f@~4)slq%+Q?bgKnOjY6Z?$*?pXYAZd)aayhyEQXu zqP#0YhB>q&F|rJEg369M(;Rv}k;^nEsBEse$=H?1H8<_3Y_5eF{bC~5!c3#Gxt8YI z-HBXFvzp50TA5|#iCinQg39JjH*;T3u8pJl*n~7e-Y*Ft)0v&Q6;LgZ%DUJrpL!#rJXL@9EvBV%Qh#d zY%a%a`7DvkF}tX2uCv+rc_P=@Y^SohE@pRSBG<*dOJ#Fi&HgVExvu65QQkPanQujv zs8)F8(aqq8H~(6n-Oa#5iRrqV@l>|Y9wzuzBGBZ=vP=5;EY%Qf4+N#t_PZYrDWV>W%8$n`NX zDx2$Tc72z~^)>sbY!1I8JetViS5#Cs*WV<6pUCw$^{H&`T$AxbB6qGiTaxeqJJ{yWEQQxTdQJGn-@~mo=*{pP&A5qz(TIIlMl_OZW!!+(Z zz>KR_Sx~KVCMzd6-BCHeTIJ={Dz9ecDrX`pudh~ld$r27tn8zgpmIaC$}QC@x3jW9 zuSVt0YL%~5t9*x*ot@`V`BAmXFRE33%gWZy52*aHTBYwtyB$uh`5K~1@LP*hy9_Y( zM4jA58PzJ=u=0LA6qV;xtL$E_vM(#gm_k$zs#ZC+TIJ+_RbGe63#(Pmt5&&$m21s| zsEkyrTv4rZ6)T(QeW<*%TIB=PDj#L#7^AulFn_C7`Fyp?ms#0IH$&y#YLy>WtNetO z1-ch14^^u?UaeC7WVb^J-epWjWs<0qYrd|iliR2fEAMlzL1pu5m1kG0%wc6*-Gj=Y zDDPF!0JHk%#MupdB$Yk$4Ky20Byt1IHY%ITGZnuia(U)kQT8*r(cK1_V^m34uvkJR|Sq zXAr~9aw?k}VcPi;xe+EvWpg7B6U7j`?(yiN7<%-K*MQ{6Uuako+C zGpe<-i=mEC9qXRkYP2~{x6#H)wsY{7VT?%=<*n;6=Jk}s+{c(Wl^xkw(46K#NjW^?|Y;J;CUMG>8V3cyyuX+D}!cUr|r)%}f z;PiB(?rEH!?y7>z?D+eI|7-t~X83_3>J^@gcu!-cY<+sVgQs=dsoKr6Q|;?&d&?eV zd+RaV`qt5my_yF`*cva}p|!1`#{il0a|D73sc5VEAv{jwo&#P*--Xc4f6|yEj zl&u*Q+}6eJd!6Rmtmpq8w{@}ECE0egcS?K(_A#yI$=1B0solfBUts%bxAeF1oW<7v zq=Vg`Q^wkT-d5u2pIG*jdvZk9`Qw1g4b!eyZwnf#Ns_~y$S6+>G z{wa~Ohj$L~`th=!v%J0Crkl^V^R@BGZDB{HmE8vn_mhO+qmlf_WRhY@$mg6w%&{P zRf(%k_3zgI_on?%=2CTze-!_Jv;RLos{gx{f3#NrXZ=6FjDIxW|GbAk>iNIt|L=_F z&(G!0SN`{w_y5*Z|5MBLKh@8lUl0HJ9RGVg{J%ZbzuW)6Tkoym|K3!8e(U_ZbNNrk z^Pf!n`z89H?d|vd|L;5h=Ox-HuU_msXsx{1duMH*tm3F$9W2`Sq*^^BuUb9FdoAsu z=cLZCuli1r_wrrv-rrRh4YSim>s#M@CG5T59NgXd|2_0xt^Jv4y`}gwm0r!iTmR>K z{@3_Z*H)EY>bwu8?RLVZ@ z&Haz&`}-rh>S(LSSqlFTR>#m%&}ynPR2{TqXs4nzRA;KDXvff+qn)nW!fgxPR-KL3 zL7k;?(2k*XL+b^%585%bbI}H=bJQ@jV`%50jm5*bC!!rgn~XM9wO1FR9YdReHXA+8 zM>~eL5N)aIs4ho4hIS>|)v6PoFWd>bllm*#%_>{nigpa`4z#;5ntRcXq1})6pz5q1 zK|6-_7~0=d7xfg{F|=pVo>yJ*-O;YlUDeBIf5%e1fp!e-ZM64Qcl8n4F|>c6eX4q> zFVK#m9Y*_B^;F-Z9YgyG?Vnf!+UW(|OZmYmPH$Bc?U?GV>VQvmf~q0fF%?uz!Ofjq zbvoKHm8;GGpY8Nf9ng+pE#`o`Iek?xv}3BT>H|L4>8A#v9aH`Ae6@b+Jf}aN64oEO zznTc1?BuBhSnCVaV6-7)4%%F_d1&*|E^ZJ$w$HfAO*6%d?gW0f1b2GYL-B3k6EgmK z#@<7(v9Udjbeh)RiP-kj*w}tXI-T&8+8)(; zzC7a!pY8uDpdF8cXT{&_t8J1OZuB)Uw-#;owUkk{HRWC2_hp(3I(-bsjY~P@F<>io_`rr%0U5`n918lk%O4ZXJAC=5LGdPqL$WJSo@Y4tXZ2F}BXW zq~+K;pC_#_?xpYhR+vDaJKg27rB+FAtE9J8?5*gs*2!hE$Cf#_k2?$T=YqROc0~N1 z;K<=NZaqI;l{sthyRtIp{&C&mB%NpLpOE^N67QAx<)OLow+l9%W8?4e#E3G-#hq8n zoSB_0K3ZfkcLM&0O?w4)NzE>)*(Ei5 z#MvXx9&zf)*58LUyf9bFyR^UiUPivrY&#bg!^V0BUX`6KfTO=RP@@$j#o|gMY$Zv&9 z&7>h6)3WrU!QFtr`W=;}mtuWlTKwuhOW!%@T;P#GgVCG)Wo!f8edGwlZAXT1C#z%r zjkxpG9Q<0Ny*__%VcH>#r^0s>cxBoNiCx#mU5%Y%mcDwV?f>iS2hiskBOU?j!M6X` z20f16E*oikYl&=oorx!Bq+!|$Up?uevBWLC-mokcX?g7Psgz^rVe9OlfEx!nHL`S_ z!G7FxYg3B7^VUPNYu9Ki({|#t?_ZWxqX%MqXUfHs6%nV-2?B2#cOLK`gF?X4jK`CD zxEGF`S)-p!J4B|v$=osIx*DU!nIz6Mi3=qzl6aZK%Yk@4nDoC~`bUiZmrMW4rT^v9 z{|cFEl}vS$IluFl82_TdZp}5~uNQx##9JiZF7Ymj_ei`?;{8C}nOx?$U*?DybKEa; z+%I$7FLSJrsSe3hM`fxLf=6ZA6M{#jhZBPE(GPs!QR(f3;8E%Ggy2!>`GlbBvs*0< zcx75Wi5pAY5{U0n`s_My>9gw`G5T!jv+KO2&#v>9KD*A_%2b_XsvZ*elX!^4qa~gs z@id7GfqqpeJr_#Ph|zPQ^js)C7fR1XGSxDfYPrNKBwi))8j06SyiwvUKs>WWdfp;E zBSz0#q~|Tt^A_oOyG*r9rrIO%K8g2BTp{rxiH}M=Qm$*ao1sJNrjOK%@hplH@Y|#> z!Bwon=lW$G0{yC7^;y_Ay`JA*9qRe*)uEo>ULDf>_PW{FZ?Bsz{r0-q(r>SuM}7TA zZb`r0ywdxbbbGGYoqob6*Ib{y+GgUM{91Zj|Gi^B0^Ytb2j`O!MHQ%@F{5sJn%`F1 z_>1&;^7>(({znI0J71pco94IYpESSiC(UoKfSqK7J%C+m_wze_DpESh*vd>9eo<9s z>=nFRjR`NT{f)Y?74A6f3~O~M;u{v?yYJ3@WB*zk4}_A~zUCR?9~0hEd$iwH?$fq% zwEu>M@B8*?Te(lKSy+*>55F>Rr1nd8zxeyb-!FcJ_!Z(;h+iT8BQaMQ~r%AS6lD#rEPO?|VX;L#y zYNkm|OX;nx^j0YKZKbzDsVtPrLaFQ|l|7`gNGf|sWsy`CNoA2#_LIsXQn^Yhhe+ir zsaz$MtE6(YR8Er0HBvcAD%VKm8mU|(mD8lMP%76;Wua8Am&)~0xn3$qnqA>h^`A7K zgeTN5lBt%-RLi8^9??td@5ND!cMZ70rmMZq`$Mm+Uv3&KD20Ex!wvO!NOrGzY4NRy z>o;Cozg&H}bTja(Wlz*!E`6?$K37Pe2c(}>;;-?RMf|;v9KU$7@;~cWnr@9J)Grrj zuc_19ZLnVIH%k3Rsox^bc5$|gvr(3Gqb%b_S;mdBjJu?Ak5q1vnmtlK(tNjYe#39f zBTE)H+#*wLk*T)GR1M74Mb9_vs*6Ux)UZO%KRsM~1cjYD@G36sY@JmDXJ-4_XSygBTd^% zKb?~8sLGt@diFDAj=dK-UMJ(;3}sGmUO&@AYW7HP{TSP$c#rh9M|!J}^OAj)Qjs!5 zYDNoYnHQJ+kTFT(X;_wultSP=nS11YRwrYR+#+PJ@+}j8Iq;_DBX#%lHZ-?;$Ro|e z&fd{qHqY04X3g}S@ZB*;!c7;&!uqTwPo>?A529-=1gM%31CN*6{gmJ-;1i zJ-!0S-X_@KnytqElkN01zlI=T-HOcm!#rkCX z&SHJCeP@yB_P;ncc}=ptqUGcDUN-7S4C{@4hBQ96WtnN-__CJm-QzXa0%NluXxUFj z(ogn^e*W)sUqwy*#`{`!l51Qix!#qT4|;zJ|E$KfT5U|WXQ3_0_AIm|*`9yOwEaF{ zna-O(0BEmnBi-wlO>brK5;!NaaVL7e-9zf&Q;sKE*TH8S7OxV#UhpQtTYws$He{Vq z2cIk0cq`(XYMZ*bRUP#toSJI8x~El56;m7F>=0*{`Vh`;b?WKKxMrS-`aNp!>2=hr z$R^`+hUM@pR4MRt^;h6%XC-jFvl=+bxeFL_?gdVB9so{vHUbNs&8OGIlc@g&EOK4| zE_U7qE^|HsMx1Yf%N+;fxz?!%T;a3=-srRgu5vm9S33iNYn+k5s52S3-nkgK!I=-- z=v)Cj;oJyR`c9y$AH-ZmXrj7RT)ACc^G$zCh5;8K8ZIVTL*V|u=N{t zd(=NH@g|*vc(a}i+@iY!w~D__2N7@A{edw(2)IiR2kzFRfqV1>;OjEgK3#x#zl=F9 zW3G@fe=cJ_Bx62;(I(@!ly;oQF~VeglF=Hdj9nJj*zqJAJCZbG$B=HO1M8Vt!1`uB zu(4SL%rMJE>-1VO|0`W5QH85h10+*W~ zf!CUU0#_K5g{@|ifvZdn;A&F`xW=3YjGD&4^(GUz!JH1+;1)h#!Vrx!psAHZWaQM7`q1^HKjO$ zjv0HL{s_cY5d1|@xwgh}?VjMec3<_mwx*u=8RE2c|B4>Yf?r3q2Wpk=wmSps+^yM0 ztFCU=8CvxeC)Yg_em}P^_PYMk&v@x)n)I_w;%g^|1cXZNvzKD%_IeRjD*K0C)k zpPl1kpPhEOOnakDyGEwnAk%JiD|C7X- zE>4j+5xYQG)rdcPg*Ccho+cE26%ZoeJvKEIt~+;5MFLw9c5K^|?bvoF+p+CSwquJY+p!%=w(~unY}bh! zuGNp7E|*HN%axX5m#cn?U9OfXcDdT6*yZYxVwY=Rimc}pyIi3ZyIh4S z5#ZvKtANW>{sO!)DYpYRrQ8kNo?_2zyHo6$ZC{E#kHu5$Ipp&cdk#60 zvJN%JQ#Jt8QtdL0yoZumL^bY=dcWhDo(+W>2bJ+wZ2@wOx^F*Y=TAyS7iH+BK7$_Ao}3 zk!DBLHqDNzOPU>3zcf3l5ovZ*(St$ zvWA^YJ8^o5Gg_RGIECUYu3_i9yoR0cjWz7Dtf^s_WkU_SEL&>WWr@|W%d)42U6yxi z*kw5){hW|~(reneG_Gmq+oqO5J&tOg4=a8DV&+#>FpM_GnSSpuG<&9FgMk+T* z<(8UuzOkBizI$rg`Mz7z&bOkb%(tdphbL;(OPz&*-+~-Y?n>7?4Gl&mfdq=wd|JK zUF!+p>$SE6->tO+7_apr@bg-)0FTsq9eBLfTR@fmJ}^1`V_KMEYgbhh7Ia)_Kyj*yGVQSw@HjJ$&!Cm$f=D;CnfL(U*)l7r-2a)=xuN69g= z{lT^!Z=8I9jDMAT^C4%DGs!`6E;&TbCr8M|*OFu40yV$a4(hn*dwU(ARyb`Gs5g6M2-ohN3AX!hQ1sy5xzr)i zH}}q`j);D>cQN%^@(%I=GX9N>{&8b~TV_@;Y*iypw#8tkO6?at65tIY{nH4v`DUCFFJF7sP#2R+$fc5hr65YZmb{K!Ci!;?V$?gxJIUpe|Fqx$^+B>zi_1mM zB)1^vlKYbL$pz#HxrAH_UWfG*rCvuaqaUN*NiL@!r#?uoq_6NeMp^IV0ND1QLEVC! zML$TLOYTd~V?IQkPc9&bnU7ExlS{~@%txu$k;~}sq%NmEKz)#0NgrQ;@s@`i0L$`F zXOdfxvzX7N?n}<2pHE#t4%3fN7n4iKrOZdE*OJ$f%b1T*?b&J5 z2f(si)S2WKBp%Lk}K(}dfs>) z@Jcm*vY`%uW&KlUO8$z;EvU1Y4^rn!zI1Y5>OAK2#lK~80sS!j2z9aK@19&jUCMlv zdadLin7odI0I0X7WMmO6JumTwd@>wR^Im4uI|QW{UsjM--g;(s%_gnlXgDD_&&|2lacbs6(9>K&3#owAd< zocTEQ0m+{-^Z0_Q?2it3rD`$7PzS)WeW^1gf6kN^)LG02sdFXYYf4}0Jmy2x z`I66@Qa~MMK0;kA`7u*Us7sk&EB>@8>*$x!-$`9g9j873Ua96zIY?c}ygH4`30|p| zPBGL0uxwZHOQy7-pG7}c{2Qk9rJqMXU;I0!6wnXTFBbp)DJAqv>8}<4u_^25m(h<= z?~wd6Q+869GasiuAoY{tof8LObb~(~nahkbHLNAay14_zI`D zUxHVvypW*|fMt7$KPuFMeir>)@h=SZrJqMXU;O!@0{UV4#o}KUDxqIWf35hXp>_1j z=*OscNdA`4PU>>z8}-CkzYo=L-Y^%<%KPtBqqq@OGP6I1i(hv?^vUp_TVKSIA){12v<(qAk3>#1eb zF|b|!9pdYPa{6)l2gFY=sHE@UP5~=bMnM29>sNG6K^Aqc=wStU)FH6#KTI8=E(Whu zp@LHSQTl7epI%T#KSsZt`heu;6;x8I4EwrqK&}H`sV*-FfMq?3e@$*Cc%{0oAPa2$ zAhkM%93j*9NkuZ%h-dS1VB>bU4f`&Ck_=63#H^$UPy{-V$B zpG6%MJ*R&jbx8EX{lnA|(O>s3rH+d3cy1YWO!T~S%c%T6+6Y04&Qzokbm_&Z7=dhp8jfrPNXCGU{@2B{|TF z^8wraH;Xz*okty_4pT>{OR1yOWz;e1a_UNQ;B>AxavnKME+v9Aax#fh&oJNN{-SmqmEIRQ&*A$XL3GZ*&nEb z)Opk)>M(VLx|BLfT}BcCm-A6%f$%FCh-ie8$RM;#Jfo)@N$h(2vlDRorz^g(6RG11!wl~Y%e17~~l z%OVHCcD?3Nhp5BUrQ|YlIk}P?IEVd_gWv*HXK)^MNc5D!Vd{wJt%FOcqoPxXlu^e- z=MO2Tj*EVHNF{Zk9oHAQK>ai%i#jNJ=+Hdskm&n|hN(-*QSsHVGU}M<@x#ig*zi2+kmx!i!qgGb7mX;Tj*5P6L>YBVbfb~w)N#=Z zM^;j+4tD-;jtqch{-Qgamqi^Eebae))FIK|oEN5!h#obnlsYQ<{!wMrG0`BE+@yym1Nb8^CxGK^T=UxDLG0mBge?)OpcIC$z|knawQo*wfFiXXOZ*BVRD3AN-iUplPk%%QG(YWIg6Y}4wEC~ zQgRu&oLos(1K1xqi=0OelOyC(av8atTuD{~*&jKJoJS6mBji$Ylw3xRk;}<(awS>i zaX#b>auzvA&LfA&VRD3AN-iUplPk%ALEd~a$XVndIgcD7hsmYnGIBXNPOc;e27CQy zk@LtQa+q97E+dzd578TxcK#q{35P!aQF2B;H92D{H94bznw&9>nv7eUc*{u+l0)PO zIZBR^<0tbMu|IN*9K6``W8~m;YH}#-=?FPWj*;VJHN&gRAP31IvYN>}IY^G3)PVo7DIetg*`$U$<593e-^F>;)YA9;EEJvl~> zlOvZiPmYn}WZVMBn?E^74v`}#^AWEuNDh(l^D>z}LdI=$JWa-zSUpX~Ep|Lj#t+jx zO~$QvJWa-JcsxzUEqOdm#_f4LO~#FzJWa-zzC3-BS9lt?^ASHz#%+B>XOM&B5II7Q zl4Iof$^4Dp^igt*9K6Z%W8~n?)a2kwPsho)m5?_Ma*!M%N61lfj2u6izr~wAN{*3( zw{pJZ;BD08;A(1e@OEl)@D6Hn@J?!SaE+%U?1RHIYf?-qvRMlPR4DpyyYXu$Z;}mk>$;YjN4^- znj9s^$Z;}$`s(#d4w6IU$jSU;UR{tJBF9ha$Gv=<9NI!n4sE3-hyF%Qjy&OM{QTA% z4>?E5IJ%(zul_~l0)P;Ir5B` z#|`kj@sMNWI9WZ%`H_R<5IJ%(ALIPUA#$7?*};CE=lo9cPWrp(lVjvKS-rqIa*!M% zN668W`4_$V5II6tFL{21taekA@uO*39}zNc2JQ(%OCA=gKi~fjT;A z2X$O@@PY%>8E@JAUoHp=zj;AOICF9wd@0`dWxVZih#V!y$r=thTHCr8O~a>haC$x(8goKe9%IZBR`Gd}V1QF5G| z@hPVxN6B$=@N+L8A;-wLVW4cUAUQ&gk#WOIFHeq;V`TLu^W+FQMplQICr8LJvii!) zN60apbgTgN@a?duk} zo7_F_TkbKpfv=UXr|(?fAm13@B;Q58Ilk4t)BI=nbNqe$WBpV8v;9l`fA!ztzu*6u z|5^Xb{s2?~h&_2*7Ff1@Ja8Y1>;PSv<0=EY44LlNfD)3_9qrew|?*lreW=g}9 z(^ER6^hz0&GB#yu%IuV-DJxU%NqH#ciIgu=zE9DqHB%d=o}StvwO8t()Ul~kQ)j0x zO}#qx=G41WA51+vZBp7jX@}DW*Lbo}~T zntHqIH92L_DG!};_>^-_optI1rye==)YICXHvY6LPupSjaoOJ(6~*LVNFV!eA=Wz(~(V|XxgLMMa^z( z_I9&VGlpj@$%tk=kdc!)JacyDnawY3epmD7n!nZjhvuiZSlMD%i;5N(wY;_E)|Q7_ zYHU|mHB~;9sql$x;2C&T5L&MP2B0RrfjF)K;gv zdeiBl;!aOh>GV?HI=$78PEa{ISEcAas-^C$&d~i-XWd^7(;uiMTB&cF-P}#7D+XJ< zwXwy!&$F1^@>XE8?iSniz7zOK=6c{+%`INj%Hqr7m==#9zJGzmI;JiBWzVAH|2engS&ZQ=-vUJo9=(8N04 zT3sybc7@FSflK;fs(U8dkr;_jmH6%X*6%6t0g01kDbAHK^lxEDGEv5MrYxg3m;0(L zh38aVmhGbkVXCU5`f9`oINqqv9%TFcPPX-$u6DG2ynUe1uF0_Ar5Sb^Pwg@WSRkVv zAb6*Y^H&+?Qxoj6ydkmI|0zM+bB#q4f!=yp*wpr4D0BI7x~$cUEe;+#1$c3hjW5r% z_>_#tTUUo=sWWAc>m(i{{fv>d{p>Q^=X$|)BkVYTIo`EC9+l*4z+$#Z#x&aw~Z&ZxAD04HqH)T3miK$(c9~? zbgy=`*>{K8%D0Ajl`DT!`9=4;;e6KJW@nCC4;(b=LEwEd_j?7i!<*n#?f=gDw$H2U zdwo9ro9u+sZFa1zflFnpEzYo&mx;erd~g2`pKtxeBW?W!BW+x@=kH|89+_x;Z?Eek zYrgl;7vc1fbuz!FU2k)G+M4X}9$?jR{!!0W=iXe7j%H144|iQ+_n$j1vGLpUZM+%H@F260vhdS~gmgKfQcu3p*L#xa@uQ-WV!V*C7D*6J!bI&K9hY(oAt{+c}%wQx3ZPr zlr8(ZY}u-NUDYiT=w9>^=R_;=c;>n_5HcmZlfP*u3c>7BXR}*YJrWq1C8H)rnYumXrm81Sk*-M8@ zWpLJ|sPta#q)6p8^R9;TdQXc>W?I~sX)!yz0$BBYSan~mdbatawNZ6T-6msbEz8(a zmN7eg+i&`>x&;Tw`1{HDt8S^P^GYqU`(d)Y258gTZrN6??Ha4PKR+i|tL-DL|F&F@ z-V{`0@5S5?jx!!##c$U1DI74u~T&>p1{`|@84YE!i|IL`I9^+NVUv-@Qr01@J zRj+Z`;b(u-Th$(_o`0$?QFhpV53A~Ssd}BNy0=u_i?YM}elu0od3k%$iuoU-COiDa zZz_xDAA@tb9OK@VqUyBS;h%p~UnKC3Qo)%9?loDZ)R ztlC@EGi22@T=i^O^*rgFIe+PB_n)6S+I?VxydxMZSG4SK?ca>8#q7p#s$RLW!>xZ) zQ+52_`h2dD-6yvG_#26nY zTvR=x+etP}u+axHc!rP_sG?4ja=RKUS`iof4|I5JFTOQ^JUFHHq&l}M`v393yD9II7N=WBsu!_ z<&4IB#_y-XwFl>UuW9yBkr7Szm0f%k2iYSckc#G18wsmc7Yl# z39%oj(E^B*ff_9paSBkQ)j*sE)M&L3*92;`+KAJE8m%tkIzWwf3gUV|Jh=)#{B`i| z|1`v>;oZN3PXQVrZh%h#9Mur0(V8G`4Af}N5H|&Cv`oYqK#kS{adV(XYlXNaP@}a* zd^%90Wg%_@)M#fSJ_D%H&O+Q4sL{?rd^S*{wMX0zsL?ti?f}$i*@!y$_yT$4#2mhSE0C5D*$Z_zG z_9=+3#8@2sQ#~K?a*V~nKhO&hUyBjp8RS5Xr`24H_q=XN(R{q5x`nRt=uii!o|EuVxYaC{U}l_$0`|lWUeBUWZX@wI1Vj z@K4Rl5Z{mSYV`m{>fqmz#fZx=Qmr1u7#;kh@G8U`@eh5i9>z!={7bJC@uT<`y@P+( zU59uxM(wD_fLc9{Q9Ei2P^%{}YDaAYYTT1{CGc5{-N8SPZb2NwGj|-^pY}GyFXD44 zjeo-231>G@=l2<$4(LXIKJ9eGb(4kb5)m3yfXk1M98u4*@kke0~D) zVW7qb%Xlh=Is(-Au=r`j-vYJzPCbM8C{W``OV0tn$1*wU2cTBR)lT4#>IFDI0k!%W zOX;W+K&^hkzm*((gj|j|!+8a9CQ#$aPp=|w0o1Cc^BUq-K#iwC?FF`W-UMbjZ^1tU zh$GQ?2XR{wE*8?|cXU5};NK zonyd;pK+4lJPXw7 zIVS+z;iSTO9*AcFIyHbVIJMxs2*keR)CRuc)CIojoC4hEoCbW?X@HvdfLgupGy?8- zn!x!GsMSYKGhn5Y3H-uo0sPWw1^n7+jhZ7sY<(vS_?>emoTET&cjqj`-vhP!!8r%< zaUiz4(;n#RjzFKz2KsepV2bXFnpB`xX}UY`G~E+eU-t$!(7C`Sx-V*)0&&LH{ehW! z0G#GPoU3&nu$3MR=X4Vu18lFy!RY|RIayBt zX6y6eM3x#0k!I`^MO5e0i0eyt$OPVfw}r(IDLRx_0?hEFg+7ET+afI z&~t#J^*q#!0pc94F9D9%3*bxuYBft*-!1)5UNu z1mf(iOMuh$RdB*UoVWEgz(QRLXBJSa+4?%*Tzx&9c|h!q`UYT;z6rQMuY|u4sMR8U z3vh|P4bD;^&g%Mh;MMw0;5GU#;I;Z5;0nDKHP-`ie%9-NH|qP~+yum#Sw8?=rOV*l z0@UhO{Sa`iei(SKeiXP)Zw5Y~A4kmwpjMCRt-#0i6TmI{N#Hj9G_p?uwR%cF1AIY0 z2YgZQ0KTMm0$ z75W`Gp8&P`RKExOTz>$k5{Nxte+WFJKZf%aP^-iG0Pu)D2wp zknIA*QDa&GyPMWo4AGp|D0A~qM ztEFZNaGA-6a~Tk?f=mH0VlISJ48-dnb1`ta3B$Pxh~vx51YT=q!6^l5^%pY-xWdeX zb3G78nYjdbqgepwCLoS7vk17#EP-^Sqa=`Zh`Y85J#oC4Y=Lh z4(AylUe%a8fiZIzoE<=|o;UXZcbT7~r7|vcGu3zR+;6Ae%&RamO-ZqZ|-!)r-@0lmyzYoOmj;Hi#^`Uth&PPDJA~Mea zzc9}Mzcf35hs;jk5%U7@8}kw>zXjr2hUfX=*fg&Ie>JZHmHQgd#dGp-<#OLdr5}j* zGVWWzfcp-d6d>NkxbFdLxF5i&3B>ys_d{T9_hUG9fOzNP9sr)=9)xo$5Z62R6JP`P zGdK-_c(>wK0-LyB!f6V`RnPqjnCX5Er#TQ;J@*@6EB8A%rvq`-bB_VD+#lea0mN0$ z{SkPU`!k%gfw=0qzX032zryJN#F2}q>)Cs)8-uGJ5J$1=19o+j;B*7xD0TzDo^C3f zUO*hhZVh0rTMJGfAdX_UHn6{27tXmr9L4S_z&!UfID>#%4R#vd0ktZ22LrEkhXPC7;lOL~bUH^}3)HIA9R{i;j9K~b-P;tywkl9xW>I0{#`(=?smh# zGIu8ML3bALA$Jb&QFk6{HUaSp)4c@vxVr$(79d`2x{H8MxJ%${1LD=Ddnxc~_cA!! zfq1p)UIBd0Ert^V;?<^G0^I3d1!or!*Jbw_;7e{PoZUdJ%H8XLuejI4*#pGY*}Vby zntKzR*MVB?byou4bZ>#P4~Ta(?rp$#@MJ8!mjU9qcJBm!;NAsiKM=>Ydk^qqcP*Sa z5btr^b-;t}eZa5W2Y`p>_(lL%{Fchf#SHh*ziXqre~B&2Wwb@w(J~9Qd=l70wAD zuFmcgz+c@b;V9peh#lY4K;wG`jtj(j!1o+5-M0f++qV-~$M*v8RNqUeISq*Gtgjr{ z(Dw?QMnGI=eXjzW`d)+645(FxZ!hpn-fXTX8JO5hORm#7&E#4A$YSHKazuYn_d-vH0| zeFvQ6I|jVK_X9BB_ao}30&(p4eg|WC z0xn)R0`a=hmkPYhR|C%FK&`Iu)dCj#YQwn_h-1W87x-7-DZm?irvY#DH2|*iHA2lT zKwQy$O@OO?&EVV)#1+k#30&iA0p~6t_IzI}VAR(d&RQT|VfwOw>wRa!xeti<^}e%! z8+_-$DFfmd@wEqT^x^!c9tPst=gS6e@^yx@8HiV;zOKM6zV2|g0&xZO^#pG7^#(ra z%Z2|G5XXzJFYp;(e>l$qalH5j0AKdy0blVA2JZ0<1-|YZ4&3V-iOM&C*#CW_fFJqB z06+GP1IB$5fEB*;QS%89uS*NeaOwi_YSVuW@Kk>(@HGE*!215{ferjO02}&mLS-W$js^cp zU{n7saGC*eEckB&Huv8Srv(tNIsJD6&+*>{Z0ElR*xtVunC)MOnj9dG1^<1(uKow$ zbOYj8@RtF5`X7SR3y7-aLxnbYUSSn9OK^!XDkp`EB_0?3I3PhOa$U6^OplJ@V^3Q zG7wiQ|Es`!|7&oj0&%SQ_adGK#1ZFz6Y)hrT&?_XA)XGzHOv1F;u%0(v;6NNE(GHB zs{aGTvw?Wk>i-b&Tp(Vx`aecIABdyXe*ke25J#*3AmW8UyyNqKf_O0y$FKi0#7luV ze*Kk*mjQ7U`@ckdIS@y&|0~21AdY4K*NCqK;#l^7gLpX*XVj$c5dQ?kc{S-6;uAoe zSCf7~{7+z(nrd3(lhX~rGw~{}H9k2_b6ew+(+3BGX_ zLOe)KMLbwdLp)ergm{RWj(CWgfq1AYL_Ac@Mm$W-MLbN+M?72=As((4A|9a@BOala zA|9!hAs(qNM|_@&AU;oBiFma73*ymg1>!O4uZYLsX%tQHY3q8#yAP z5r@>vi1YD;i$=h|Bc7^WM?6)%fp{98dC>^?KH>}2e#955j}Tv^;)pL&|3G}Psz7|P z`V{eW^*Q3{>I=kSbqH}-9Y#C@Pt9lq{1)*{brkVT^*!Q3bsTY_`U&wYbpr7$^-sjJ zm8#hYsB1RC=e{oDIm(ZCu1ZEcSEV4Hr_vD5Q#BFKSLul7t2&4;QS}gCqE1Czr0OFs zQVkI=z;ikp0h=OTs4@^QRLv1DQY{fLQl}$cjHh@s0-k|*iE4{@i8>qcQq>OeQq=+R zrFh0iBVZ2VW$ORo?OovOx~e<(qwn+%q%d%oUY&{$& z1eB|LudN$j-K*StWm{=dBqxRNHMGzM8Xl$TG@XWiv4cbQ)X{4R4p;CGw%0)Dr70PruH_XGZA z^FhGBVm<`;SImQe?>GM*@crf?!0$2t0q}dw!+_sweh2V-%|`(Ls`)*@ziJ)@{DAp= zzz>+m0Kd=t0pRzU#{s|J{4wD7niLJ{|oT%;1^iB zus2ZKwjF=#+PdIbUkCViO(WpnGtGd1&ujqvh-n4 zHUs_}vjOnmm{!2g$=t*S+|1C$!!g)P`p^{O1i@Te@3b*RtGlq2)a- zA8PsSmPcDY-tw82XIsA7@^>xGt(#gqTd!{2*}A{=aO*_t$<|Y?h1Q>IeS7P#wm#VU zC#_Gley;WT)^E4|u(hVGxouM$ekieRXWRa^Lv1J8X4~f5Zg0Dz?e4bw+TPRlp|;;` z`-8Smv_0MS^|o)dZQHnKg1Zu1W|uiui{lH1a7NyjB`xg>MR&t3BK zmppmNUtIFWtwUS?dh0j0ZrrwYTXNg!ZJ*lq=iB~f+ke~khD(Poz2(yMr6(?X^JS;E zzjgb!wl{WO-g!gk@y`1?AL{)5&P#W6@7TNJGdpU#pXvT?_qHoueZ?|n$C4E|fWx^9mK{8YcWw-WdNo*-_$ zM%ceU6kGy($8{F-j;jwGbxE*-Ghdo8vfp_FYCVc)6wer*aXb@vj^R0uXA;j8o@qQY z*nd8Oo#h*`uY3~EO?Ym`^CmpE;CVBix8Rw@b1R-Co;f@zJZU@`Jg4xS#xsv6i{~~x zXYl0kEa1uGDd1Veb31mfi+D>fz!9!TgONah|$*c+#X2U9!S_8?5p-b zy7oY-_CT8UK#KN24)kCzwFi>32NJUflClR9vIjelJ&=w)kcvH!6g`lFJ&=Aqka|6k zc0Jg2{Aui${tR{;Uv2&XR^cDQCVU(g;UB>s{A0+SKY=ay1T4Wng&p{DSb?8_4frH1 zz)!;d`%kd`J_X726fD0_N4JYO=y*jXKhG#$pS>M$hfFeK+7U?2BaoIyASI7LIv#;k zJc3=;r-bGHq^76iTKJl;g@?G${7PaNUeq!8KKtOwoWd_Az6svMKG?dm<|;h9>aK+! z;1Tmg{U^-7)PDx+oolhqxz=2_?sMiCo?8IV<0-HEqPZ9E`|&&o{73LSj^`;n&jR-x zo)__af8AHjhK9c}-3>3`cl%y2hZ_FDoNPdQ8v4v)!~Z}X*P7bKYfWooea#h(Q)aBO z&)n4b8Ix%|SaWCN(V9=;`76YK4bOkW^FJDo*Q{&0)^s%8So5l;FPbBOr}5m{^baP7 z_jx?`;CUCG58`>asn0yt^cnMHQ>x}GO`kL0#PdDie}t#8`EzD7o^Cv^!E>PbS~J-E zRdcNQ1#=6Y`Q|B8ZqC-c6ZrQvAFTPU=K7kC0{$MJAK__Sf34Y!ryI{}@EpK1i02rd zTky=|DdSneb03}u@I18soi+bb|IV6kY}j7=zgxD~o^Rb=`(Zqf;DIi$9ckNM``c}A zGXKq4PPdshy*P88k#_`;Y=Tv)p;%#{DZ{Lyl zv-Y1(e6zhbQQNU2(bw_D#G5<%@VqhcFZIKThdMrC-rO;j_#)!I+mQk;gD0D~uxTN2 zFP?wE^W#nJi8pS3dm_8JJ@HmNf4KPriNDA5zX9*s(w=z3mPZnA##08oisv0$K9G1f zo)6)90?%iG`!b$y;Q7{;PbMzEbJHhy7Bzf z)*mEBw+<(6-?}65t6Sfm_`|LBb^p)SO?5lAZK})T`2wErZF|IQxU@a756?KB1w0Sp z`8_<(UYe}?d%QPa)}FZXvW2?LWu>|&;9Ge2WsfBO3b_A;=cl)SJ8{$YY@)dR6XuTX z?TH8QJcj41c-lMBr_NO3{hhyF_x{e`s{3Z=js#A2CVt%c_QavCN9yujA4Pc|NIcs0 zfyAG7eZoA_`hmn>0RBo>d*a7<)?faC#6CO&cuIIy@cbg44_w}!`0(YQOnme5KSKUb zCK`8S6FU)iuyc`0u)@Og?=qn?HShdUm#Vm$_~xzpzx!jAa()GR2ZZ4ixhFOsedH z6Zx@BsgyjOnardz*~I|QvIYtZ3(0(%Nq3{TW5vv3vY26vLk(xj6Zu>=?^nX4z@whC zs5V*77V@Lnk`}xNai|fkk|G$K%q$en`uX<@GL_8bY|B{L0U&p#QsqMN`Z=_wch_tL zu_qSZE8*)?v$KQQ(qb;TJdjJ4O8aA}4#dKHcJ)S!?d^>r_DeWk?r!FaBlqlym31(V z=-n&%4q~tb0@3=|X%5#&{#1cI4b$wFG!yxmd@++u3l%hftdp89q*d=;NfshB9B*zc zQSa`3(dNg)dt&juz1J`U8KQW6DN|hb$G;?9*&`{!hFl}z!&$Hsd%8cM#vTFJDn%m0 zQufBe*JwF0s_YjmS~s0pSS%Ei)!KI;+T%U3@LmbW>DGHNnrpX&)RC~S#^9nNNQ5S!^t>Q)4n@_bEZ7D>&t#34ML zES-U5UCd=jjH$v>F_i&&#P*foU?#H&LgzEdxg6uhmvT7^jtu3O7Ba;kbo)}WYy*(b z>1+yBAqU1TwNxx-@?|i~5;3e6uf7y(1uzLI0@;mun#(~SD6+4#oKG?3Sf)H*NcS&g zbLmVGsYixTQ7&6X@&zgZ;%tMDC5t5qGhg4iWVUQ`XhR{gk@iTkG(VLo1L`Xllgm?? z(+g-D3#M+s`?~A*&(5AJCKmzD;XoR?hO-dR8~c?(R0ix6HYogPVFzYmOQu3J*stbr7!kJF%v zSx`-D6E7yq^A;>&29kO9;SqxoH<%fF_SvmzjW$Ursxpmg{e#t>ehzKsZvCip}AZ#btXq`tzq`Tf;0J&KON9pSPW4m4IF2oKSgA&M`%oALZ{1a zogup&PwqBHGs`EExuwjpWVU$gZp?$MFeaomLXKf0$bfB7W-xR2R3G(T;GOs@`JxAS zmv=v4^dYK;X@3A88F_>;fGHV4z(tjxZpeTsXEEI6hVLR&piZFL{=-peL4#d00 z^zLTB86+H6gpa^r%+Z)sR#V~LyGK%rcCg}pubaBp>u^y%Vf{0UfAa{P?h<*4-uiZ+>OvgegK2+jAEG@zy`E(2z0xO4aL~rJyMF5kCu`^ zDKj(0euT97vDO?wM1*t*2dx9#mpa4zgwlR5fROU+*!lgt#-G=IuX=YQY9dc{u5Dzv zdara@vPaU}vVAVmd~rU$259n$*O>i4tG+aVPP3`7a-a-T{xrDOJZWn5#Yo` zCHeOUJ)TdNCkurI8I;{X2Xe*hG|T+-o0@2BL4KOnP{?IZD=Po7+49ICGSGBhX%;`*dc4qo8 zQjKTMO{t=EdKZlWo`VBvibXCP3q&|y)+k##bx_rUGmS|KpujKwfNJ-FcN`E9!NXCu z49q9r=cW46D<&EHO1}XAK}>iAf}LBg85^n zhQ7mIJeWM0tOpK2Y4NQlqshR%SW0Mop69W^Yk{?YjFO{aJN2Ta6Bvph#){d&8 z2(luF!R7YDlHW(z65=SWcT~HiO+q~ij7bZ}rDfxqV%&9l+)OQ(%9(|oBNKv}lvIiCZ!1R=)oYKx~W<{~HI!eqlF*9ujMkl6*W`mHW ztP4*L9iJJRnhxUG-DxQnIXPU@u1&x?n$H^az>#p)oTb?{J8Kq~O7nwQQOp`Fzwmbn zkLEeHH0MC9ivTXol?#j66jEl+W>cAwG*aiYw=W4KR`IMU777cD$mUT9)-YUVX!ult z@8selU#E(Ng<~0bJpj)wJ802ju*gK0269=f7??t>Y;*u}ER|bIXIN0VTm*w>Ph}aB zUSvyL7a_!z2I?hP!fHg`#neES;bQ6--zoknFYxao|19y(99KVxTfiTzaM(#ibJlT% zCyiGiB|#F*E{WKJIS?oaYLkQDB1Cc~pK{AvTWSyu8$5tX!61+;oQ4R=I+xw70m2K} zRYH)wm|6_rOtDxf1|j4t1%Y(72%QiF;pHn7!(gx^2oj_)?}9)PODfO^6v!tR0Kv~z zRu|QHp`1NMX+3N5A;@@k%$Bn#^DLrH<&vi{;QRv?94p~Hm(63HAt0F74heEG zMRqiEHj`r`%gHR>mZPvr0E^2iXx5y|GE^#0m+>M)qaE~ol$HSL6cIZ^YC@s;bg__4 zpMc$jUe20ADFAgm1S{MI8=%A_Mf)y^^r22+r}!7-Ih8#P56wby5p6h=#ovYGc^VIa zy0ks=!bkzD&qI`*YDIHcj+Am+p@_n=dA_oxp@k*PV#1tpIxjNC=@Qx?^OKO13;@Z! zI-L_ajrY!>Hg1#*ha~Q}|7@G_n;DjM;3g=wF z4wuHDd`W>Rk93RrS5zs2j%Z8p&LGHXGHW2xip#-@5D3iPrCb>Rhneqkfqzv_%4nRG zRLOK-8BIx@;VX?NmtDx>RW2s;B}y}VO;_&1%=Ly-~E9dqvlgG0KcsT%3 z#Lpx}#^WVI9&fAXEHnstBq;=79Gp7I02>6r?LmrTR{Tr8ARy%jAzMojme`;KC@+E4 zV!Sa6H_}pBFln}jnWsbtL7zx1VMq!JgSMV1LPJnMUS5X0ybMP25`o%Ec)?3=Ml;Dg zRz6GVol{_B7==5XIlPnNJmop@%q)bVIPYdD6DZ|UKCS{I8nIM?M%8P?_!A^veAW39 zPZXOz@#t_iRm6CcD<0?1wRoJJdU3Qr6XS8-#EeJz^E4jkPuqB$oyBo9XLB4U6FrWU zd0&CFVjzx>N`-i=2#Gk73d=Qx%s5R`NqANv;a3GMuZ98eYdJ_B1eC*Flw)ugwiapV z%q{I4&g3&iR7#hQ_;oQ!;Ja54YbiP~TmX^^26hq42b)sYi5g&CBWYM+T~${H6LuLVTf@v)`*nCgMbtsglyrFFjTiIPaw&mNSj;(n8~&qlVY7p zJr*m&`<9wSRk+k@K^A;CF!LqG3rg`` z*tX2WND8kk=ov56Zx;LCBUF35%90VBH}Z!;no2JfVrX+vqgW0Ndo&B0)C- z1d~rk)+>@GhLVQGaJI@AHk~<@gsl;juT~bCLe8))qM0YP2p|o1D}*3wB7%|ngVZ3U zz+-ALN|)7ymr^b09KF`skev>vXKj+1#asbRfosEzlpwgc<2RQ{8*l3X0Z9bx)cjI; zX%UG53)$RiPAL|IlvqK~(J6wM4wizNISgvPQ=ZF zbt%he1l?4RtL>GghsCjuF}M1c6k$kO83t_=Lxe3!xfGS#FnC$`7MMs61~WP6Q#cob zhDgUkG*ge1hR!cywXJz+e%kaFlr~w|HpmN<h7R4M9L#aV)u13hK6jNc*f0HrhIe zjBZR&t%Nb!?OsNhsYG`-!g493qt7Gg!I9{13CusoKee3N2R;_wob1(nwn%@mlQevHcq zv;)U%nSAT)v4tZIaV!OEYpH~9TdzZ*bb_v4mqP0eVm!11XKa~#OKt+T$qpPTVdL1M zr{TwwMhGA|1hQEK?o;=R!Ir^vVIr3{*Kv({{h8U>eyrDF2g_*s9o`d6fO z#%^UyVB%IrIU}|*CTa{;##`g8GQ!T;DlH65oXSkTVN)3!XhhEM%4nT#mH4&PVr5FF z^s2>J^;Rv)isg%>2vpZavcE){h>p5QF?RE>f-eHCQax`}Q&gsLvc58ABCoQ(T8w2m zD;BGzs1VC*C8`v|)l#l4a;v4bQnFf<9aE8q7m2qbu`Gp9%s04Hlr4nH7zoxhHUn^=s-ifEH#plX@qwGXGKv!MBGGP^T_lNJWn3ghFas}= zCSpxpBpn<=;Vyb*cPvYSMrCa7MDV*; zrngpgU%4{Mioa@6>Y|3RTAAx`p}3H&f~Vn^#Nqjh76+>l+5WGHK9b3vp0AQk*Y%af zO}ia}%BYdjMIyzmheP}o4H!ww8T<;ooxE#BPc5ZVI684^Dd#*8)r&cdtry6t>XGBv z&ZunBbXDvW500g=5m%YvSTVa$H6jp`hcPsTHL}XaNkySF3FVNh*oz8@!Kk3M7{kE8 zf;Fr0mUKkeR0OeCY-mW@^Cx!O!G)|x)&(gy9IU$2h3K+%Fi!Q#UU3lC4QTl?0|)td zl$alB82Tw4JZkrey>OO`7)e-hO2$m4a1cNvhqz7b0w{({9m%CL!i5H9%h-iRN+W6P zCKSpLEDncL&)Cy)p?-I+)FCJy9E=7zFlB2)r`@L}MwU^eh=HS$FP@K*@zO)e=194W zeQust#?D!}R0cJY#dNsOV**!{?}@_sLwp#L%IGphxA&z~o}$E7zg?)F|I9SSX0b7C#DqFLGHbQa_VqO9@l$V$Fy-A8u9RJUjaSB62(6|z? zW)-&A!hvubZoyf1GdeIbX7!C^_hHT>7v?(I53^~yrRS%JVwi?g%unHm86PoOWkjMF zwhuB@yil$j;%Ki01s8GwDDAQn)}?3L9ltmn%NSVzaeM?VN*5+iL*2(a68Se$P(=L)}DPLTeiTyC+?SNyv85@Qe=j4%} zKaR8Mg5xYw3=)M1rm&WWUr-E1(mI>aB_r-cHk~Q>h`yzCHbAg!h(Q-G9SnmIelCUy zMMydXlSUA>Bkp{S>qij20rsWtD7Ye+LnW%iu+S(*8t9+Qk#beax?ECoxMtCsy|6MB zjxz+y8kux~aCYUe_6nr1J#@B9#L6heU6`5tF!Xp3m(QGY$yiLk9<|X!t2j&}>tAjg zO!A1N!O9Q^a`DMY@TCjC1i)O716^jYu!M76W)cS{a9)KoQQdcD7$yPmDml6uA}XQ^JLq4s`^v43ndCkboK5_0o#qc$HS*PFP7CR|49WXsT*> z>1?$K+l*>ak|!+MrVJ4|)X&etg2u8C5l4a{{iB$m5n&>)`Vcu?5JE^P;W-XS^<0^B z865~fW_QbOp->PQkzH*bB*}~=Q}Z}|hAr}PBn%rOjFgh}n3@)3VQKS(4cOMYAPfPH zD*rNuY$>{=wxoC<_3d3m#c!bRTUzmUCsWXOR&*3ze1lh zUNQw0VTuXNk;gG)4iWQHhDpE)Gzm!7Aj;Mg36ILbL}{%BC69$|4li^g4=_q{g=CST zpgQsu9vv9KE|Ihh4dz)#$>U(D!v$<5E=W;}oilZU*cF;sT)~1#iVZ{TaTwC&G5hFF zAjIQ9Ihy!uCqNvxQ{wpo-4aHy>5%)$Vm6621XlT2O-k!vIoWfa(r+&)UH8Ja_Z|i- z#ys|;)QXbQtlLbAa$^?^4gV$Z(J3CvVw4&C;9+V_iAE30=f)F{2 znB>J^nZXU{>>NCWW-v3igj2;uh^!f$a;DaaNAetXi0dnruwR~Ap3ati^h7ZWTP>NR zs`C@$gHma$m9=4%o^&`|MEY}uBF;$0TXZCgvjO=K?<%IaI-%!gDxFl+sTVIhNh+CqmVL@V{AOz>jzyg;Qe-Zc!{qUohnxiW$UB=gH*gf(6SU(U{D z`DJYwOAFC%v3gi_cN_Y~FtqtJzWiCrnCas3Aiq5XIF#2nxkWysWaMzBtS~+*mZKyZ z;*iL<7ZI%Yg+v5D9tllGLQ|2@bR;yBj0D|gS_G*r!P2b?77OV?YwQh|Fj@Ekw;Y{ravWnqb5g%Blkr-wdNwCJb^Ml?|rBL^@esFC2?i3l3oM3L}ed{z-bfcltX5tLp0#jrxi zNV-1z)kOq3C?8-%P~rAd1g(Z|1jWs$2x5vKYeX=dsu6^IZH=wF2-1!vzZ#9;(X~ie zSMbn85v+6-lNmxjf}dE71gD}w)mZw8M>HM2_J|0@-2|t6Pf#mr(?FJb0Ox4v0ef+3ECr5$$2rL=m^M z^e^|7Qb_C}&`*aEk3FM`OZmJMr-fJxbf-0u8N)f&j}PcDB=RW$KjgB|bYU=?Je@C; z%2`DwUAv9N;}ABbP@?Mp(TW9e3L4wI0R)up_+v)-TWAr zk-E^95oj7ICJaeQVbB&9A{LNeRz=bhk(g3~LXulSn^Obwp|&}KeO{18zPZQZu{A74*XIWl6k0M&I$V!`b;rv3Ujw{ zFuKuYs(gWBz1)R#CWl#u1+9EWDa~@)U1|vec8v9NOG$^}3}Q)cH2@@+1tpJ#?SOcp z&^nMjUQqIRVVl>($e@5K_~tWT!toYqklGbem<6RE3)@0$2x3G0k~`BjGc6FwDu84Z z$YxV4KN^Ku$UC1n$+U#?3m{?e;aY$WzFZU0l`7=uMaP;b2x1BcFmk2)3rHjLRUlT3 zgE-PAz8Q9>a|9U#7z1lbkbE;N_LE=~k`5`zXpEf(_$8yAf7+h+hi3*F$0+6=UJ4#!Dn9Z4wQgaZHqJxkvJ_!44M=Ggs z07qC>6x>AKZ~(y({8V=sM8u6A)AI;Qb{~QGQFvX$$RI>pZwihH8BE!u7RWPirQLp5 zn(iZP>*FZ@%$5`qK~(IG%iay`X?#k{zdY~{=Ensh+BgVjDTQxo0s&h!LGXrr7*7B} zp2Jk>%7TZ^<6r{6vWED>Sq7*utMsGAOdokN^l(`C<- z`)fP>1m60prC#S`mjZ(T>vHGTBqj*Zn+pzrEvECq(d-ep{SCkE8%iB4HdU z(is}Lv{5Rs5z*@s?fj}9hr+AeUgXrnaIP>%`%7GC+68yWQLk9SH`gf~zmtYHm0)q)`FfJ6;blOb#$W#tscq=QT#AtaU@brhyUn{0@D9){Q( z$mo)!Oy0&SWQ4>|fCc*_kf2%XNEbcpRMp2l(4yeP2{3wPucr=#_><0?Q+ z6=Eon@V$755UB_*2riHGv>@8GAS1C8Cy2_p_N#EJypz6D=_({LLA9L(Bn3rzcu{^> z2<{^+$$gZhvH5MZ4c*4tZcG*_c+TVt=MdnHgwq9U-0}WI7vN$v^~PhL+HBQZ`` z$Iy^1E*YCaueWqn0MTv&1^)hlT#=q6LE7yVfmMD9$Z}MfN|1!}g2S;(@nr6TPXc)q z?qyKsdLbtAfJ*$PQicFpA5pGG2M68}NgRfl4tx+E1D5zGhH2WK-yw?N5J`zI`M-7JONBxwML!y2J2f*4>K3d12N(6RTO5P=2ejaIJl`IfARj}SkO1}`d zrm2!cRykGhb{$eBCOq5dSK*&q^zkU)9ar?xYGGC@-9MP<=Lk-ERLMjMR0Yk=IllO;dE2ZPbJH69|6OLr+0i*xJTz> zWsA;7$PQfuAx?WA6S~}eEL_rlkgjDvtnO1EgQc|If#xHHl0L#Y9%{KW7KyQ}7WwB`SJ8E9{;R2fA06Zz8tR`a?s=Rx8~1O>C7Ft%mtN8#KX zKbG@RoJmm(_fY*5YM=QSO1nrBs>!~xp9EShiWrPUPenr0k&x`B`eg;1sXkKnQhfxs zQvEP@QvI+Se;=p&s6NJRqx!h14Ay72^Mw2n^b-d32sW>9oD4psv-p6ZX!`gI2`6xK zqkeHD_KQQ)7ZOG5wwFtE-Sy?!**X191+1U-o0=lsDe_qjto2M;?}(R$CoKA8K8d4w zNFl~R(Gk5zyaJliN#)t{>{ws$r( zi)2iIOH_*D(z3r}L05(YM+fLz(ssbv4mZza<}`jP0U#rkPZ+wG2XPYKEhZV5oE{5c zC}In+!<201xB7@4zRUY&!Q$cvcyqo&1awf8~YUSkSyw zF5+Y*u#0oAe|;5Cu>19to!t87@65c6q->Ix+;W76;XzX`m=23(R_a6PwE#(mh}I#P zE=g1n5K;yqrUT_8VW&DJUl5RdLCEHdgz*8jWZ|3fs&2I@cFA0Feui)pU(-TAng#G! znm|!J4uneb)h|B!Wq@T`_niwdM~GU|AMpth3-%^B&FkrPOCQ-Iv8r59)pWc>1j^ms zF6-Lkip>DDfK3FZ;que-L zfu%o!VjNhm)-GF9!=#obQG31*q zE{(`IB6p_?PVAQCa$q@LZb{AW`Grg6EDj_!cA^ERThRgzL-`3XCx1x-*{Lb%<>Xot z4Itd&x_5TAJf98tIye!tlPb7m#5G=ml%-Q`rku@{)CmtkBAfY6`Ug9MCCDpY$SZt< zRDl+95%z3FGzu*yCszKP80A@&O)$17e%5Gbxb+lt$44a>7h#_UJ4PiVyIEK{rrcJJ z5=OUXSVOQY#KRsAt=$X09&qS_Z0MBCNC7-r?Kc+4&^og%KiQcT!O2A}4#TedzW`(y z>mv0Gy9=q0(}kpD7qIkpK{A7|GiIg3(JF}JL|n#^%nWH8M=yw&D)CBw7jlbk;{o;a&!+Gx0Tx zd|;bP=A71m{Z&UME*&hD1e8*AMIrf6iWhSGBFMuwsq|tA3x!Uz`YkdqR?_y(*2ipgm6N#J$C`NU@_+ zTAPEhnJdQg(0T07qaHo%g(ZwVU}?j!pJJHF3~y6KLT=r&o!l3PN=R8~A|GDFhwrc; z>B?4NISUQH3Kp3a{6#Ra1KimNL7-&(wg6(-gW*is?aPX$ofY zUPmN&6dBatzTr)OB2;(@j8y9oCBaZ)MKLm7ayN_&gkBRPIb~%mNQGpC6_iZ)p%R`% z)+^H*5{>P)yp*`f)KCHcdybOeN7j)Bs=`q`qzn`U83A`9vUlMPU(V65@$3Ax;| zm4-G7JMU}6fZ{fdZu{GSNMQ>XwPms>6e>&4mEh8K3u3Tl@Oy|H2QoB|B!tPm;OIaw zOg2F(Oc!_-q~tK9Q^(!6BQ5Z**pbA3*b+a?UyfuQ&>vlNy28`sQ1tF68MT|RMc5%} zzlBE!hBJj@IK0Gu26|jbhQpzY62S(DLqsXW-w)8~uSnZI4PXo+x;VgE9jakHZ6S>k z-dNO$?qG7Py8w^B5X?QrB9h2oZ%Hf#&@&?q6F|ilQMOrv?VBS;uP(qfDJ9B+;1@_? z-=O<;Dep{6$*y-4>43;>MuN3wxfdD5E^LL+T))w_EVF>@+=9xKdKeA)Bsl2H9~QlSN+} zvLWdCe2Yu7`0a1wE82(;XG`qUf5?br_N0Q(69a30z)P z_EjQOC3z9#9R|;k%>2crW%xvCv_aA=lhN~ic~-TkqY+%_B_kV#I8vDEywOWy9Lz5b z+>d_BPoT)^%G1^S3=vvwXW;P^@hI}rpNEPa&hYndQN``@cZ5RD%CQMU- z(=$(oG8$yqaE(#A9`8LVGS(U^lX7V0(&hS;*{HgkyUHc5ob zX5Qw@niMc8U@|CSr!j5#sTzb&q2wHJrhNf_%Sbbbhi|j~9OBYahG}6rS#uiYm60}$ zvWt=qpDLhTX6Udjr`wE~88c<3(SmU^A#ZI@9(i*3r|mn1d_|PmE$wH|(55$5D@Aj| z-(b!nefnbg*B8+D+muEPY+(+x$|EQHW?Hn)1!=cQpuVOOT73uO*3TMOx1$UxbzXWq zinfw^kk#7TO*wg=M!1Y#rCCCI&ZY=3ElOdgO$GEWn`N^o={1(6meJCZw4scaE}GY) zH0?=7Moh-MWeIf7n%hwyYx6@AzbPg3WO<}gAKqru5=u);y8>JSZAmN`Q%`;|4LC55 zQ8f*7C>!J0reXX_62jm#a0TP>Ge{`C0Ib>WFr)_QN}eNy7tw9k@iSc8o z+boZur9kM7n)Jx&f)VTFP@M@g(xzhQ9Qp#KBmJQ&RIHMk6IHn?hf11Ql|Uk3ASh z3yvdaA7sI4P+ zBdENDlIKy&QM70n6gi9dVbEkrXwqw2!rEO+%(9>3F#3>$#A4gi(wCC72tR)rykh^Wg@m@!#H}8I()TG|S}8eHeR=*LcCZm1{Bq~tD7f(D)J(n^vE!S=JSI2x;@=#oe;9qBJQx8j%`$n# zjW4yt2spZc^ix80&fhcO-7ILrd3_tkeF)`nR59VmN15uA>dd*{9C1w2{(pK)C-#X(MM>DANujhP znk6rN#LzJ^%>ZTR65p;8)kurHi< z9Mfu4^d*l^#V8GRoI@Hq8tg*N9B0R?lW6xG+SrG-^kJ+V4aQ`A$diX9o_(IOwDRYM zwm{R7AI71%kE1;Dkw4xn&nyq3PX+WZeh^9WO$;tM*!q{%pPp1@nj zk)sghz*H>1o9FDQS>|{s$Lz)^_M=b3!cUds&e=7JcygB0-<m*xP`nt zh&J|N4*IiF`NfU5Sym1id08AnOHI=s1`po`4j~QBps#EJIci*ZxEFI>WuvdV@Nu@Z zXOFa$yv-RO+7ddO#$+~3+IdN>$+r61lANa!MEi0x=DW=1@+w#kAYzF&^ZDUgX=2&?$M-no@ng zjQ9oNXzJ%s{!*7vw{X_3rSV4)pAstXLfy1IcB9lB-sH3;w0Af9UPj9(jcLn}o-?-3 zp>{RP)ZpwBXTc2^2`5?n`ASVfJ|~AUJ$24aC{4#VN-HPlIa?=DE=Nh_Jl3tK!PzS0 zu-)iAtyNM_XZ{%K7yyov{^e4yI_)@Gq`?xXxEuA}E2y`&B++e%-;H$2AMi+`{Txkd$xs&I zgJGng1)#Hq>!k6ZM5WfWP#3<^7(@%Hl@-aYKIMh*L4k=laX*bjT|@W)vVUb38}dkvq<~C3-ZEA z4obrrX^F0r*iuJ5)uOr%({+`ua;U?0ftK_u41?3>!8aV8>57_rrRGJ<$F-#AFmi^L zpIY)mn73SK`N|^M>$L#bO6#bDbyW99PKgMmR!LP z;!PQ->*#$LCGw54p4^%;T(=E~grGHDX_GiDSlkgltpWuO+jw)F@~4{Z#!pF$hMSx@AHezd^1MMLZ92DG{i*+)Ew(KvFDb5!Pp z)Kfc+o}2+tjZ(9^R8%<~O4%EP+K0iB9N*B=A3@EbX4nmm;rK?Sp~@~NgIxTW*M}&L zXg$*wQC|}0NFKBBCX8&jzTz52`%FDRt5s7($IEdPOFSs!#o4B7$^)R6%3*S-TiuXD zogFqLw4^Mg9O(1XYo8rYr$y(ey*(6b<6-0~K)TYeqSjDUrl}kV*C<1f0Z!VI58T?+ zt<&hOh_BT8p$%PMbfq>X<4ayw>V+$VFNuC@*QXi4*at+v$Pe^t(1W*2Bn@p)-KBYzdcnj9a5v{Omtc2)b7;l9fv)iCXwv zXIEb_QiiF;KIidvI3A(qSW7C>FXmSF519o0=R{H5k zWoiiW1??}c_1tLq>oK#eZ4WJaowrV}F3I@p4dl4aS6%6mS6Omsf3akz8Jq^81mPT* zf!;rXUOAoR?69cjSML%n0P=b-=+8AF*A5&@-?nfZsNM|fFx>-~K`ld|HCG5x8ajQz zK1X@bdDwT^Y91Wg6RlazZu51U`T!{j3$V!CyyHFweQVU7=ONA5m(agO zna0(+)88DW+mN4rG1Z0{^eB{;GeZ4-aIng-n~bO!KHGbQD}Fq?f;5pM=L>?mic5)}5|#;pM|J9`hIp>SId$n}z3fr}Y2JmZ_Kd z(D#IMO4}bO$lgbbR|+Me-MiTXX%a;Fa$9zmjVXYRPIIR$Z-x zGRa9zp74tLJ1Tv;Q=ni9eI<=XG2UFWpKb;XBb+hy!T*)a%QdiO6c^G|T4(>1OE|T_vZF4P~K+nfv zHBF;E+(~oRZ5oj7Pty`)Ii#8LNw^kO+gA5CxDUDuHLK>Q@15F>z5|stzJ>0um&ieE zk-ww83$1d#dRn>8e2nJa8;`Q6X#cRRxjtX?;q7s(-kE3v-8EqJ)@)= z{luryRz3gqZ#!?|OWSZIq0|mfWrTfHiQ&A-lu62YzDzm;icbqQ$3!c>l)deIO7x#Q zuN0-aTd8qeU-|0Am!@33sC)?5QPC9uYo_$$DpOZ#?nH{OyLd8-*4k-E4Uu{a;G$P)Fh80n|uoO5Z4xi5ix`K~sbD1G%LQ*=E}`<^~PH@<`D*DEb+b4E@p60MzW1c53C)7o_$#<+Jkz_>zG(r#oTjP7UaOC+CXO=k!mp z+KhJi zQSv_ZF1~A#c^q1d)Q;hb-Fd6HUZ6iLq#oy+^TfQ|{R-c==XJ87v>G?2PLvBT_k|OR2 zccbB-%8TxZ`aVJSo!&57y;0gZdBGD7oK4)9@NE!kf*aB10(g%t3U`UZS>f!d&@WE? z9G)9SMglID?hgzZIOR^k2~|~rQ!-ty^#JK(G!fSF?44-E3--W zHTa#taZrpUa81z*s_?uo-_q0oWIYkK3+=0gBUY%psvv39#)RZ zi1dvf)p&Z}CQ)6bvr#PrS2EB0P_pPQk&~98O`(0J6r?ny{dODP)By2y*glb-X|e1% znp`n(U9IJ(ki*$w>f1RD9)G1L6@1H{CnHq;AH%5dO9i*bPA?`~5PpF`UB#6Jcjf6f z9Y9XTZZ*Vp7`@iM_px%EophvEi6`GlU0pl) za-NdKoharg&{knO9R*z}hL%RSE8$L>QWr(njM4KyzTe9~2TE&s9-POuCr_SHhEaPK zMcYO_cU)0(Eu#FRUkI$7lV3=MdRlivLe6vfRBCb#?5SF#t`uE9a^+Ex+dT88=YzOI z#vL>NREJ7MUk3eT-e`9chLVKiSe=91P6;KDFI_2@-P&KzMuj^t(Y1)qB7X;lCzweq z)m8g2*SLn{IX|wrI8UovwQ7rwBc8g7E%I#?{hH$Ctq^H@M(3IP(x+x9TNiTlZC+-zs}3C7tzp81#>G<}k_$&tj~7IzVUD%lYnY6j~sx zv6|#@Uj|WkIa;|@Q)LUe#u)Z^P}^AT+aUJs<+YGDbG+utmQrKr9?KwF;P2T~^W9hO z9^Ced*Uh?zORHB`pND0(@YEd7^H%e$^V`gVj4SnY=p(G&LRx0d(kCCCsc0cNj4SVO z-nn!1K2L`$`^uAqoD0!Ym*Mww?&MOnIYLPiuB&vGTwLD1l(apLxuM^lR6DP~ACiP; zA^FuJPb@gk*`!c2D!<8rp$}L&@c2(;De`N+=ouPaCsF(P=ecwTZ4~40&e~M_ri{Bm zp&hQYySTP|Xb0fb%ap_^6nZv}x<>a@nX|f_PD27X&nx9LzgM`}nj)^_ zLK)^P!Q+?>^d`~z#SKGZhto4&x!R#$K)uNa1DlmHfvaBHU)62bwAIStIfI|{D{^PM zs$AET4b^PeqtGuU&`Z~nxVjB(jM^5yg+78=PK}<%xT&NFzZv5Sf$I^{UQd0vQ`bDh z-jA`O*MqwX{Kh}JJIGV)1CoOBo8Q%`6>}c2?!75q{U!WvhP)V-Soy_upIsI4E2)0) zkJD9S7&FdDuHUrJ`X!g{)$xQ%ALcAe)^k7fTkF?}^!2lk^yRxga@SY=qLYZxT}G`@ zZ(blR$tCnXasQmO-+QNDnP*;5`oR<_vyMqw$Wn{dD2# zn7dF;64CbLxP>0`eprN24=bt9opxQZ4~S%_Ht$)^jHGiM#g?)ro|nsj#(l8;$lJTn zW*z67Ld0~ah^fR{oqq~hT}Y7`g+}N{0Z?L z=zLY*EXQ*IdE9=}y!eE;qvpQo;mr!{v+}g-6Zfgf^R7h&X%SaPN38zl=^gfsH)SZ* zMrEA1&(tq^ns}ui`*s>FQQlVnrCVP)9_QWw=Ss-q>URnEdi9icA4XljesMLqol9B< zu7o2(CCB5p3lHnpOIpK-&_qW`eN53au_w`D-WH=C0oOy?+vM3$)@UEu<{Kj8qPso* zDO;AP-b$Y5=2wFp6(?n#Jr;V@`PHLRUHL%wpTiU3EWw}0(Gpn0sMO$Spr>b@FM*PV zUr2{7h{o%<4~RtJtWrtOdklCgT4w=ej+68%m!t9LBJpmN^t?Ca{dtdHsEIf$X(7;; zkcW5bIH)})@>KUqd9M~{zJ8zXR&eCqJESD~{wPWKjX0?tEs^tm7t-my2SechXnYQH zhk9G@sWHpEUxrf6Nq+4!zxLx^6K$1v4bc)R^DF1^?h-vIF%P>t&L^kPXXQE0&t9~N z`xn$b^x-=RF^Cp~x`{WWXxq8(LHX@QMZJ>Tr`FwKeibq)@ot`zBS}-vV)8c6?D-{g zAA&77kDMy6eW@7U&C-u}mD4&anU6c9u4e5!@AwHd4{t|PpMq*h@+`lA2~)Te-<0@T z0wql-%cAjPB^=pvXHw>I?m*FZS#J~q5F}JhxJrmW!tqyr-T+NL2d>oQBTv} zqSU3Pz^{{|Oj-n#AR~y^v#(lnc>0woIai&|It*&j3MSQeL$@8rPN^%2a^MKYl`FR_ zN~DFM{4oG~T~BxEY)wbvm2*k$qo_-5M5Q_<3QwqnHS#NR(qsUA(h~JH2%Z?Fe2+`j z_`VhSsAyZPrwO>*&)(}jV3ZuZCycX;gC)w_B(S`w6|w544}n}XEP8aTgs zPJun)xT_Y{8?g$Ko>G=;Nm8*F`N+F^o`5z()MB7zAFoNr+x3M!JCAaBqJ=V%(lu%! z(5J?p=x!pvuj1?o+mb?hcXG5>Y)xkkjbfxUC+Gbj%C4SI=P~!2IXb+#!sl(*LRv%G zMrR2u1-wh^<*4*s&nky~)?FadYQLowzZIl3t;TVjm446EN+NHMTHbaVBCcadlT$Cz zf`hTqQu(i^bjh)mqh*$HTP>(@yU>PxDk9S@PvCWBbc+aJ=IrKX$2nyS8;ch z>$Ibo!^)Z5g;@KxHcAe)4OKF55og8`&g8w>QCu2Z@@pZp0_pf%P8EO2$;7kDtruhoODL6Xl=e0Sx0g2X+e6+qIfGKz?j%DE>>J*j zrtyy5UfFb5>cSnDU16`Qq}w!x(s*O3wv+c!noT^Z#aA?7ra>{LX%du>8(mvQ&?4S> zD)nudLd$qpCvU}cG3L@^pdWr81G0(tZ6?7P%u7l!7t6Q3X`4VF*7DO6z`3$7nzDY16kE@~(|ACc zCdYM-jwPwVZ1vkP4cr;j2);rIIM>p`Se_mx@0wSQ0wQ&MZlNUPD4#-2$}MKQOIOJu z=2E?B^c2!k>hnu{-ZhK5+BggJCek!&HBG_jwP=i`aRa~K2ko~wPV}i{+KxyYc~*w} zOdjTW*a#i#h1Q6n{h1ePE3caRL9~Yy(tA=RU3)nCoIx1FrW?@$;kOpo26_rj6YFx2 zowMt;zh@c0sS2$UV|Mlhx7H$uyN%WecalbOHlS%rdc~0)MGF>$dIngY-vb3PH#y6} zSyC%+zhzo}ugR8^8srGV>|x{=8!&0H);q;4+&L7e>t9{D^`|m)DA^ZRxJq9LBsqz&Cvl*g!5G} zSA^1uxxzXE&3vhjZ5H)%CQ?sP+F;b7MVLMr$H(+pEZ3z&XbmlwVm#k=pCeqnsGSZ<$0t7vptrbsQW^z12zbINr_87=DLZf+f_=d6bFQvz@J4l-`%) zaj-Z@Pg<0*Qn#yw<~*K@$6Y}V@r@xak9%EW#z*pq4 z)3`bO=j5Mh>NeNG67DwUYH|y26whGQ!St-H8xo77*=>Fn_VZn^bnLt7bq>?i?4Wv) zO%41De%!+TQVP|7ix zcltZ6!tzWD^Er%p138ph#lN**@7t&T32$%j#{DDgyXMZIA6O?`@jA4#7yE=PMf>$e zTE?soh;EyQi(2znuFlJ3|l+4&NBq0C23N&~X z>KU^TZ_s}gYJC+}o=5Qa^>`NWPa#rZC)SDnzoVw6g}ch^DLKNlaL!PwGHjY?cX76v zeJSZbIg)ELQcLydYrzE^AEtUO{)XIKGBpR+&PChpB01m4l4y(T*u4(FJ>aBMyahfl zQ;TqhnpdAhYe?VM%1Dq`d>(i$sN{H{CNc+SmD+9ORLUT0&p=X;GM=Qs>X37JLAY@l zqsbbmk@(kian-#OT*^@+zj4l=!g_lrR{iD*rd8U|a;5zj%YQY0TZ6Wq(^QmaacN|( zW?ig-+{6}#GwSugIN8*VId?t6=2F(n)pR_yc@^iQwumxB?IiYhr~C`bdUa(w{wl*M z;g?V@E`WAMv{JN8v9eyPBN?ry8$Jw56s`c&!YG4((dJi2Q!5?TNV_ANwp+L~lq#l2 zWeMlJj%8&z<_ec)t(qLI_)91p?QU=xXFv&XTH0*sZjL^EaP^)8o5tVP^Jk;)-P!pK zQ`cQn)0pTsHT3}6+Zk*n*zsohyHww8I#&LN_q<07emzsPDNb0T@LlN&rR?VAQIyQ3@bR0Ewz|Q35cEfJ8OAC;=EnK%zFdC;=EnK%zFf zC;=EnK%zFgC;=EHz#9nEnVQ;G%%0YUEgk!6TRTqHH`KJRUR4iUe`U2{S4~aL#>-88 zGjVm8NEwO#DM9>{z^`f8(!TP}nvRoAFvkdO(&Vpc>^56EvJA4sT{hXgWZfmWy%tv% z++M*Q5cq(=*R7WVw{(o5c)?#s{L1|jdq~>&9>E_H%%H%70v~aC7hK*WfEJ61bEBoY8XcP-*JZmMbMu0`yon)MAeXvl9#hEu3JIl9cV}b6y3R)Y+tA)nuTlE9wX+lB z)Y@9R4w9|5wY9aqp}EtRg1Am(X)v`NtI5{ZCP+Swk?u}Qcc%%jd~6*Ixs{JKLm;-V ze6-GBG#k+~_PR6CP}AAmkg#QTu4|}cLz)_DEvBxawsQlT-_q95Xlrh1>D7docNho7wJnC`4w*RlGJ=8ZMAmz&nEj@6%UY_`>JU^Olo zsm0_ZpFzJnJ6TERwv8LvH4yT048a2aCYmAX$sMiDTL1enT%hU7r-3Ka-Lg&?s8NV; zi=b{5_*Q|_0;dI@x4gJbaPxv&6nIf!<_#uHG68K@q=a?hfw}%D)5!)`seME4N zTHI#I|ES;|6ZkQKANR^SB>2Y#|AfF#2>hhLPeRMqw)Qk^Ci8WIo8$q=foYXLjA-qu z$8fB^ucmW@j2#E9W96&LqYIpQrlzaDbtBlUedV)YL%cqRmrke83OBLMj8fd^0vyvx zi=L7eJtgqd0zWPAGdlRSf_er_iHSo-YVG8_ZbdsJ)F^+IU!Ik;&r0?$3H&92zasEg z1b(hrcuLq#(9ek+`e+j>03qBS!4_(+S@HWA36Sz}g8JP>+0(T4kDuJ&O zc$dJt1l}v~UV#rd{-Z<^`~ksVC-8Lw3twJ1B=Df%2L(PN@DYJW1s)ann83#bo)&mo z;FAKM6!;c_ZxQ%bfo~N!EpS@kd4cBz&Iz0ocyWVe2MYMIL@Y{#!exPFgfE;I_)bZ4 zXM00k$2N$n&tov2<^LNY_Mod)o`ttW@SA8oXgsu)s;Tx1_el18q^NrZzE|M;1inw; zcM1G1f$taiet|zI@COBcP~Zmzen{Yl1b$fHhXsCA;70|1OyI`^eq7+k1%5){Cj@>{ z;3oxsO5mpiep=wCTbxFKl>wO!h1S*DU|^@WuYPoEH@Nc69jkxT1!Pypo1q>46wk+6 zyAw5j&?Gum{;{jR3x5&YOj1F-sC};hXa&kOqTJOM{NE_r2Kt5q0BW?Mwy_a<5Yzvk zxKgNx34oMapk^8y`KJ{VR&(Mnrc09-z7z_u$!aNGKQy80hgA7MW$B1Pb;-hEm5~oO zG$b0^S01dDdbG}3)Zd8uT}dASAc+Z3^T`TAFdTu7)h-GSyzoC1b7Nz3Et}q~P48l> zo2AIrE;Nwp9SL1gkGaAhgIHn#sO#z)mhj zjkwf?Tn&%A8Xj*l(9cNO8W8CT7e_$4_N2o+$)RvMUluFUIaG!FKpN<#oxGIjFT+bNo>ka zDOVK4-J&4wzSXKxRL_bl^R4Sl0*1XlqEx_#bywpu?)UkRHasYot zjo-Z}5u$w+3(*Ryw=DM+)ZM31E+K8d-XzVx%a=Zh}u#UUXge;ee zkUm6lC^TwAGfhAyYF~Yg%{Cuo^J90}*mBj_y_Yqt(<)`rC~0*4*l|}gE7t%Gjdxgh zqpezF+E))?fl`A3ps`v9u02Wia7&KMrFcy$`da&@U{D3uoURJOVHFIuuU^L`4%F63 zS^15D4jY70pzO-K1M(f}uzm3e=u={FXG0VEYMT)l-eK70bB$xAzgF8?yH&&}yT=&* z1^RMRyQKopSd`CP9VfSKtcCOi3Uu?bU0ze)%;_qi(|Z%54W#Qw{jRxYGfnk8dEpY#C}Ij<9eI25$j5s2q!raEUVwTO>*jL*|wQh zY`_u>IF=wBww$5%)wB%u$&PKX3Z-e=+-%uq=g78T?6Z5+(F|Xl=!iIyyp;S8L zHT+PdB_Q+TmI6;~7DfxEHd+U{8c7WS^Q187EgpkDW%EBREPjhhTdEeac&)N{tz&U0 zq-UhT)uv~>u4ko1>6d8Hm!#hLU~0LlFq^(|3A;2;O1B22Y3;ZRHlE7sRxY_!T(`Cb zG61RDSD%v+xwGTEj>vg8BIoUhoDT-!eEaJ2|E^(uV+RsL4galHrGGmz9V;(r2`ev9 z-NI7-dIL@5tazC4S1Hu$nvJTz*d5Hq%Gf4nf+lBJiOuT-)(fG)dI8a5?Ee#-e=NV1>gs$C zwZh5@*7z_z@V}eRE6->Tfpk*qMO*qauJmWZ(w}Kxwb3+SL?o?l4x&-)>Wf#!YO)jz z>p>Il3bL%A#P0+l7VsVT2&Jj8(rg7@dZzdujX`v#)#K#vU(wJQ>0m{*(K>$^sq=?d zhq>u)f)cR)ObMs}cU;tIhomzY5=iPF$w2?}wp}$ccd)e7OtzTXaDJ#{|IrRA!j*eF z4q>09W154q@|BLgVUJ<1!Y9QAYgbpj-`ESLQyP0O>}MFy9LtrDh4~^$>$+_%nv~Tb zv0qIjd1D<+$3vYIhAa1qj6>^QM5Z;0-v}`UGXN`-jzf?n@+P-IC5Uc5w2`(7I*G2K z=0GuC*t|*Wz=jESTB32=w%YE2E+@O{wd#}5yRa_1>I0geY`@S6h1ORKNq1;lND+iO zuCtjs?m`NR=+!zuU$@J5-4@r3@4!|GGWlt*!Ze(LG)0eCRqO7CHuUH|q!tf3nvR@s z?}1+|+c=&rtKSd2D?~yxos+dq@NO#@!M8?2ojn^9;h=5jT!oIOT6OANEiA(s=j zq*k95FYJnp=`LZ+AGeu$tQI;hz+qRv5iNs6!rzvyLV)|wrRUck=Djl7psw6aj|pZR{p|E?twb82C3J%K24v^nWEW6RnlVYZ=pcKS)lrK8$ zi>`-Q?;>lNJuKV&(WWXJ!(56COlSl{(3H39G!bLuqSc;PNpv4%A!%nBy`qPA!l6RB zb(Jeu_D4t?rI57A5{nj(2-(M4*HOkk)*9*(=79HC`wHoFnXJb4)k17UmvOQlLjotT zAA>}b!a7a@H3Ol-qEuXSKEco8iR*i@^Jt}>NH-8GU}@BUpPPr$dONDIH1EP@-cUmO z$Nk6z)*;wst@X+11Fc$YJ< zd5^0(e)k}p;!FV!3P<7YBNmH2BM&>uy(C~{JLyu&kJZk=@TK>q7h2F8uk-D9bLbIs z_ersQksSPa_bvGAJW|>jSa_@lf`&Hlg(ka?EzG#OxposA12Hb+t{RH*C(_-w+RAR- zL~5;eI*p!@K5(ZGPVa!$nfANWHbZ)=cBWHWL1R;#XUSR{s{|`7K7wu}vLTpS3kgVC77zoY+27eG|H@jv$^I}gto_F@089uaW<$+3NrBrRD-8Mh= z$Nr#g($bbnY)iJJr4^Ox%GZ^%d{Qg~GWckBFaIrQQ`fY{tZt35tvse%UFkumAEx)5Ubo(} zLuF7KT^S@lt%7B&9fyH`BkAonSVZ{`>mt80=&#}j!(JQY(H;s1c`(2@$y`R>F}_s4 zbzM&8CKH-;f+ zV)X>e3E~6@Pr`97!AgQgf>i_wf+q=@2v!p$3Dyua6Ff!md4gXfXeIap0n|6K4Fq2y z*hsL6;5h;W8k<-5iH#9t3GibTCiW)5I6;m8 zVbUg+CqSUFi4_RGLx8wn6GPyuiIoV-1g(ExXIkb929B9#6l0`o%%FQ>XVI6I6`MS4 z;R_1hLm@fzM16ASay%gz2*FI*_Ti)_`s7~~Byrx9Xh6z)%&+hml3fATxe|H)3X6id zokS(AhKBGif!-CX$94~hN=7IY%Y6hv1yX(t%1P#Y%+&V@-XZuQ!H=k! z+*Y1Lk;QW#|F&4QW6n+q3S|zEE0$!!Ewy@k|pQB;|EEZsKpSPlU;Po&_t~3Va zngXnu?GUqHBX*rY+IExJErQzwj|lD)pn%Ktt{!gMA<#Om!w}-;Jv3%QUgsnQm~7X^!G5re8QNI zlp6K4R<}Bm_#JQG6Hq3=NYOtC$jpHR8GRrnEBhtI8#4?tF0qtWg4#QvpDem$6jp}d z-_$J*lH#~83aaA3^;KId2((^{qGF1iPwMhXU99}=Krd|9js~)r@EHQ6+2?GIGIgPb zT$GU+Z+Mz=MqvZ$ke9)~F-%=-fy_aId*|(bWhebQPC~oMe@9Bsw3+&uCoJd^J221B z0*nJzOjf~WO6uZl;6I5%U13@#q9;p9Dfki( zZKSddz&7pDnKEVS5 zP9CQp5j+MsV+g4G8IF`QY}pwOzcXtI*xEC#1YacBK(L8mGr?AZ9R!^OU3K+rp%|