steam-vent-proto 0.1.0

Protobuf structs used by the Steam client protocol
Documentation
// This file is generated by rust-protobuf 2.24.1. Do not edit
// @generated

// https://github.com/rust-lang/rust-clippy/issues/702
#![allow(unknown_lints)]
#![allow(clippy::all)]

#![allow(unused_attributes)]
#![cfg_attr(rustfmt, rustfmt::skip)]

#![allow(box_pointers)]
#![allow(dead_code)]
#![allow(missing_docs)]
#![allow(non_camel_case_types)]
#![allow(non_snake_case)]
#![allow(non_upper_case_globals)]
#![allow(trivial_casts)]
#![allow(unused_imports)]
#![allow(unused_results)]
//! Generated file from `steammessages_publishedfile.steamclient.proto`

/// Generated files are compatible only with the same version
/// of protobuf runtime.
// const _PROTOBUF_VERSION_CHECK: () = ::protobuf::VERSION_2_24_1;

#[derive(PartialEq,Clone,Default)]
pub struct CPublishedFile_Subscribe_Request {
    // message fields
    publishedfileid: ::std::option::Option<u64>,
    list_type: ::std::option::Option<u32>,
    appid: ::std::option::Option<i32>,
    notify_client: ::std::option::Option<bool>,
    // special fields
    pub unknown_fields: ::protobuf::UnknownFields,
    pub cached_size: ::protobuf::CachedSize,
}

impl<'a> ::std::default::Default for &'a CPublishedFile_Subscribe_Request {
    fn default() -> &'a CPublishedFile_Subscribe_Request {
        <CPublishedFile_Subscribe_Request as ::protobuf::Message>::default_instance()
    }
}

impl CPublishedFile_Subscribe_Request {
    pub fn new() -> CPublishedFile_Subscribe_Request {
        ::std::default::Default::default()
    }

    // optional uint64 publishedfileid = 1;


    pub fn get_publishedfileid(&self) -> u64 {
        self.publishedfileid.unwrap_or(0)
    }
    pub fn clear_publishedfileid(&mut self) {
        self.publishedfileid = ::std::option::Option::None;
    }

    pub fn has_publishedfileid(&self) -> bool {
        self.publishedfileid.is_some()
    }

    // Param is passed by value, moved
    pub fn set_publishedfileid(&mut self, v: u64) {
        self.publishedfileid = ::std::option::Option::Some(v);
    }

    // optional uint32 list_type = 2;


    pub fn get_list_type(&self) -> u32 {
        self.list_type.unwrap_or(0)
    }
    pub fn clear_list_type(&mut self) {
        self.list_type = ::std::option::Option::None;
    }

    pub fn has_list_type(&self) -> bool {
        self.list_type.is_some()
    }

    // Param is passed by value, moved
    pub fn set_list_type(&mut self, v: u32) {
        self.list_type = ::std::option::Option::Some(v);
    }

    // optional int32 appid = 3;


    pub fn get_appid(&self) -> i32 {
        self.appid.unwrap_or(0)
    }
    pub fn clear_appid(&mut self) {
        self.appid = ::std::option::Option::None;
    }

    pub fn has_appid(&self) -> bool {
        self.appid.is_some()
    }

    // Param is passed by value, moved
    pub fn set_appid(&mut self, v: i32) {
        self.appid = ::std::option::Option::Some(v);
    }

    // optional bool notify_client = 4;


    pub fn get_notify_client(&self) -> bool {
        self.notify_client.unwrap_or(false)
    }
    pub fn clear_notify_client(&mut self) {
        self.notify_client = ::std::option::Option::None;
    }

    pub fn has_notify_client(&self) -> bool {
        self.notify_client.is_some()
    }

    // Param is passed by value, moved
    pub fn set_notify_client(&mut self, v: bool) {
        self.notify_client = ::std::option::Option::Some(v);
    }
}

impl ::protobuf::Message for CPublishedFile_Subscribe_Request {
    fn is_initialized(&self) -> bool {
        true
    }

    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
        while !is.eof()? {
            let (field_number, wire_type) = is.read_tag_unpack()?;
            match field_number {
                1 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_uint64()?;
                    self.publishedfileid = ::std::option::Option::Some(tmp);
                },
                2 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_uint32()?;
                    self.list_type = ::std::option::Option::Some(tmp);
                },
                3 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_int32()?;
                    self.appid = ::std::option::Option::Some(tmp);
                },
                4 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_bool()?;
                    self.notify_client = ::std::option::Option::Some(tmp);
                },
                _ => {
                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
                },
            };
        }
        ::std::result::Result::Ok(())
    }

    // Compute sizes of nested messages
    #[allow(unused_variables)]
    fn compute_size(&self) -> u32 {
        let mut my_size = 0;
        if let Some(v) = self.publishedfileid {
            my_size += ::protobuf::rt::value_size(1, v, ::protobuf::wire_format::WireTypeVarint);
        }
        if let Some(v) = self.list_type {
            my_size += ::protobuf::rt::value_size(2, v, ::protobuf::wire_format::WireTypeVarint);
        }
        if let Some(v) = self.appid {
            my_size += ::protobuf::rt::value_size(3, v, ::protobuf::wire_format::WireTypeVarint);
        }
        if let Some(v) = self.notify_client {
            my_size += 2;
        }
        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
        self.cached_size.set(my_size);
        my_size
    }

    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
        if let Some(v) = self.publishedfileid {
            os.write_uint64(1, v)?;
        }
        if let Some(v) = self.list_type {
            os.write_uint32(2, v)?;
        }
        if let Some(v) = self.appid {
            os.write_int32(3, v)?;
        }
        if let Some(v) = self.notify_client {
            os.write_bool(4, v)?;
        }
        os.write_unknown_fields(self.get_unknown_fields())?;
        ::std::result::Result::Ok(())
    }

    fn get_cached_size(&self) -> u32 {
        self.cached_size.get()
    }

    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
        &self.unknown_fields
    }

    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
        &mut self.unknown_fields
    }

    fn as_any(&self) -> &dyn (::std::any::Any) {
        self as &dyn (::std::any::Any)
    }
    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
        self as &mut dyn (::std::any::Any)
    }
    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
        self
    }

    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
        Self::descriptor_static()
    }

    fn new() -> CPublishedFile_Subscribe_Request {
        CPublishedFile_Subscribe_Request::new()
    }

    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
        descriptor.get(|| {
            let mut fields = ::std::vec::Vec::new();
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeUint64>(
                "publishedfileid",
                |m: &CPublishedFile_Subscribe_Request| { &m.publishedfileid },
                |m: &mut CPublishedFile_Subscribe_Request| { &mut m.publishedfileid },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeUint32>(
                "list_type",
                |m: &CPublishedFile_Subscribe_Request| { &m.list_type },
                |m: &mut CPublishedFile_Subscribe_Request| { &mut m.list_type },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeInt32>(
                "appid",
                |m: &CPublishedFile_Subscribe_Request| { &m.appid },
                |m: &mut CPublishedFile_Subscribe_Request| { &mut m.appid },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeBool>(
                "notify_client",
                |m: &CPublishedFile_Subscribe_Request| { &m.notify_client },
                |m: &mut CPublishedFile_Subscribe_Request| { &mut m.notify_client },
            ));
            ::protobuf::reflect::MessageDescriptor::new_pb_name::<CPublishedFile_Subscribe_Request>(
                "CPublishedFile_Subscribe_Request",
                fields,
                file_descriptor_proto()
            )
        })
    }

    fn default_instance() -> &'static CPublishedFile_Subscribe_Request {
        static instance: ::protobuf::rt::LazyV2<CPublishedFile_Subscribe_Request> = ::protobuf::rt::LazyV2::INIT;
        instance.get(CPublishedFile_Subscribe_Request::new)
    }
}

impl ::protobuf::Clear for CPublishedFile_Subscribe_Request {
    fn clear(&mut self) {
        self.publishedfileid = ::std::option::Option::None;
        self.list_type = ::std::option::Option::None;
        self.appid = ::std::option::Option::None;
        self.notify_client = ::std::option::Option::None;
        self.unknown_fields.clear();
    }
}

impl ::std::fmt::Debug for CPublishedFile_Subscribe_Request {
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
        ::protobuf::text_format::fmt(self, f)
    }
}

impl ::protobuf::reflect::ProtobufValue for CPublishedFile_Subscribe_Request {
    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
        ::protobuf::reflect::ReflectValueRef::Message(self)
    }
}

#[derive(PartialEq,Clone,Default)]
pub struct CPublishedFile_Subscribe_Response {
    // special fields
    pub unknown_fields: ::protobuf::UnknownFields,
    pub cached_size: ::protobuf::CachedSize,
}

impl<'a> ::std::default::Default for &'a CPublishedFile_Subscribe_Response {
    fn default() -> &'a CPublishedFile_Subscribe_Response {
        <CPublishedFile_Subscribe_Response as ::protobuf::Message>::default_instance()
    }
}

impl CPublishedFile_Subscribe_Response {
    pub fn new() -> CPublishedFile_Subscribe_Response {
        ::std::default::Default::default()
    }
}

impl ::protobuf::Message for CPublishedFile_Subscribe_Response {
    fn is_initialized(&self) -> bool {
        true
    }

    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
        while !is.eof()? {
            let (field_number, wire_type) = is.read_tag_unpack()?;
            match field_number {
                _ => {
                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
                },
            };
        }
        ::std::result::Result::Ok(())
    }

    // Compute sizes of nested messages
    #[allow(unused_variables)]
    fn compute_size(&self) -> u32 {
        let mut my_size = 0;
        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
        self.cached_size.set(my_size);
        my_size
    }

    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
        os.write_unknown_fields(self.get_unknown_fields())?;
        ::std::result::Result::Ok(())
    }

    fn get_cached_size(&self) -> u32 {
        self.cached_size.get()
    }

    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
        &self.unknown_fields
    }

    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
        &mut self.unknown_fields
    }

    fn as_any(&self) -> &dyn (::std::any::Any) {
        self as &dyn (::std::any::Any)
    }
    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
        self as &mut dyn (::std::any::Any)
    }
    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
        self
    }

    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
        Self::descriptor_static()
    }

    fn new() -> CPublishedFile_Subscribe_Response {
        CPublishedFile_Subscribe_Response::new()
    }

    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
        descriptor.get(|| {
            let fields = ::std::vec::Vec::new();
            ::protobuf::reflect::MessageDescriptor::new_pb_name::<CPublishedFile_Subscribe_Response>(
                "CPublishedFile_Subscribe_Response",
                fields,
                file_descriptor_proto()
            )
        })
    }

    fn default_instance() -> &'static CPublishedFile_Subscribe_Response {
        static instance: ::protobuf::rt::LazyV2<CPublishedFile_Subscribe_Response> = ::protobuf::rt::LazyV2::INIT;
        instance.get(CPublishedFile_Subscribe_Response::new)
    }
}

impl ::protobuf::Clear for CPublishedFile_Subscribe_Response {
    fn clear(&mut self) {
        self.unknown_fields.clear();
    }
}

impl ::std::fmt::Debug for CPublishedFile_Subscribe_Response {
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
        ::protobuf::text_format::fmt(self, f)
    }
}

impl ::protobuf::reflect::ProtobufValue for CPublishedFile_Subscribe_Response {
    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
        ::protobuf::reflect::ReflectValueRef::Message(self)
    }
}

#[derive(PartialEq,Clone,Default)]
pub struct CPublishedFile_Unsubscribe_Request {
    // message fields
    publishedfileid: ::std::option::Option<u64>,
    list_type: ::std::option::Option<u32>,
    appid: ::std::option::Option<i32>,
    notify_client: ::std::option::Option<bool>,
    // special fields
    pub unknown_fields: ::protobuf::UnknownFields,
    pub cached_size: ::protobuf::CachedSize,
}

impl<'a> ::std::default::Default for &'a CPublishedFile_Unsubscribe_Request {
    fn default() -> &'a CPublishedFile_Unsubscribe_Request {
        <CPublishedFile_Unsubscribe_Request as ::protobuf::Message>::default_instance()
    }
}

impl CPublishedFile_Unsubscribe_Request {
    pub fn new() -> CPublishedFile_Unsubscribe_Request {
        ::std::default::Default::default()
    }

    // optional uint64 publishedfileid = 1;


    pub fn get_publishedfileid(&self) -> u64 {
        self.publishedfileid.unwrap_or(0)
    }
    pub fn clear_publishedfileid(&mut self) {
        self.publishedfileid = ::std::option::Option::None;
    }

    pub fn has_publishedfileid(&self) -> bool {
        self.publishedfileid.is_some()
    }

    // Param is passed by value, moved
    pub fn set_publishedfileid(&mut self, v: u64) {
        self.publishedfileid = ::std::option::Option::Some(v);
    }

    // optional uint32 list_type = 2;


    pub fn get_list_type(&self) -> u32 {
        self.list_type.unwrap_or(0)
    }
    pub fn clear_list_type(&mut self) {
        self.list_type = ::std::option::Option::None;
    }

    pub fn has_list_type(&self) -> bool {
        self.list_type.is_some()
    }

    // Param is passed by value, moved
    pub fn set_list_type(&mut self, v: u32) {
        self.list_type = ::std::option::Option::Some(v);
    }

    // optional int32 appid = 3;


    pub fn get_appid(&self) -> i32 {
        self.appid.unwrap_or(0)
    }
    pub fn clear_appid(&mut self) {
        self.appid = ::std::option::Option::None;
    }

    pub fn has_appid(&self) -> bool {
        self.appid.is_some()
    }

    // Param is passed by value, moved
    pub fn set_appid(&mut self, v: i32) {
        self.appid = ::std::option::Option::Some(v);
    }

    // optional bool notify_client = 4;


    pub fn get_notify_client(&self) -> bool {
        self.notify_client.unwrap_or(false)
    }
    pub fn clear_notify_client(&mut self) {
        self.notify_client = ::std::option::Option::None;
    }

    pub fn has_notify_client(&self) -> bool {
        self.notify_client.is_some()
    }

    // Param is passed by value, moved
    pub fn set_notify_client(&mut self, v: bool) {
        self.notify_client = ::std::option::Option::Some(v);
    }
}

impl ::protobuf::Message for CPublishedFile_Unsubscribe_Request {
    fn is_initialized(&self) -> bool {
        true
    }

    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
        while !is.eof()? {
            let (field_number, wire_type) = is.read_tag_unpack()?;
            match field_number {
                1 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_uint64()?;
                    self.publishedfileid = ::std::option::Option::Some(tmp);
                },
                2 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_uint32()?;
                    self.list_type = ::std::option::Option::Some(tmp);
                },
                3 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_int32()?;
                    self.appid = ::std::option::Option::Some(tmp);
                },
                4 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_bool()?;
                    self.notify_client = ::std::option::Option::Some(tmp);
                },
                _ => {
                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
                },
            };
        }
        ::std::result::Result::Ok(())
    }

    // Compute sizes of nested messages
    #[allow(unused_variables)]
    fn compute_size(&self) -> u32 {
        let mut my_size = 0;
        if let Some(v) = self.publishedfileid {
            my_size += ::protobuf::rt::value_size(1, v, ::protobuf::wire_format::WireTypeVarint);
        }
        if let Some(v) = self.list_type {
            my_size += ::protobuf::rt::value_size(2, v, ::protobuf::wire_format::WireTypeVarint);
        }
        if let Some(v) = self.appid {
            my_size += ::protobuf::rt::value_size(3, v, ::protobuf::wire_format::WireTypeVarint);
        }
        if let Some(v) = self.notify_client {
            my_size += 2;
        }
        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
        self.cached_size.set(my_size);
        my_size
    }

    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
        if let Some(v) = self.publishedfileid {
            os.write_uint64(1, v)?;
        }
        if let Some(v) = self.list_type {
            os.write_uint32(2, v)?;
        }
        if let Some(v) = self.appid {
            os.write_int32(3, v)?;
        }
        if let Some(v) = self.notify_client {
            os.write_bool(4, v)?;
        }
        os.write_unknown_fields(self.get_unknown_fields())?;
        ::std::result::Result::Ok(())
    }

    fn get_cached_size(&self) -> u32 {
        self.cached_size.get()
    }

    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
        &self.unknown_fields
    }

    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
        &mut self.unknown_fields
    }

    fn as_any(&self) -> &dyn (::std::any::Any) {
        self as &dyn (::std::any::Any)
    }
    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
        self as &mut dyn (::std::any::Any)
    }
    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
        self
    }

    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
        Self::descriptor_static()
    }

    fn new() -> CPublishedFile_Unsubscribe_Request {
        CPublishedFile_Unsubscribe_Request::new()
    }

    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
        descriptor.get(|| {
            let mut fields = ::std::vec::Vec::new();
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeUint64>(
                "publishedfileid",
                |m: &CPublishedFile_Unsubscribe_Request| { &m.publishedfileid },
                |m: &mut CPublishedFile_Unsubscribe_Request| { &mut m.publishedfileid },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeUint32>(
                "list_type",
                |m: &CPublishedFile_Unsubscribe_Request| { &m.list_type },
                |m: &mut CPublishedFile_Unsubscribe_Request| { &mut m.list_type },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeInt32>(
                "appid",
                |m: &CPublishedFile_Unsubscribe_Request| { &m.appid },
                |m: &mut CPublishedFile_Unsubscribe_Request| { &mut m.appid },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeBool>(
                "notify_client",
                |m: &CPublishedFile_Unsubscribe_Request| { &m.notify_client },
                |m: &mut CPublishedFile_Unsubscribe_Request| { &mut m.notify_client },
            ));
            ::protobuf::reflect::MessageDescriptor::new_pb_name::<CPublishedFile_Unsubscribe_Request>(
                "CPublishedFile_Unsubscribe_Request",
                fields,
                file_descriptor_proto()
            )
        })
    }

    fn default_instance() -> &'static CPublishedFile_Unsubscribe_Request {
        static instance: ::protobuf::rt::LazyV2<CPublishedFile_Unsubscribe_Request> = ::protobuf::rt::LazyV2::INIT;
        instance.get(CPublishedFile_Unsubscribe_Request::new)
    }
}

impl ::protobuf::Clear for CPublishedFile_Unsubscribe_Request {
    fn clear(&mut self) {
        self.publishedfileid = ::std::option::Option::None;
        self.list_type = ::std::option::Option::None;
        self.appid = ::std::option::Option::None;
        self.notify_client = ::std::option::Option::None;
        self.unknown_fields.clear();
    }
}

impl ::std::fmt::Debug for CPublishedFile_Unsubscribe_Request {
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
        ::protobuf::text_format::fmt(self, f)
    }
}

impl ::protobuf::reflect::ProtobufValue for CPublishedFile_Unsubscribe_Request {
    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
        ::protobuf::reflect::ReflectValueRef::Message(self)
    }
}

#[derive(PartialEq,Clone,Default)]
pub struct CPublishedFile_Unsubscribe_Response {
    // special fields
    pub unknown_fields: ::protobuf::UnknownFields,
    pub cached_size: ::protobuf::CachedSize,
}

impl<'a> ::std::default::Default for &'a CPublishedFile_Unsubscribe_Response {
    fn default() -> &'a CPublishedFile_Unsubscribe_Response {
        <CPublishedFile_Unsubscribe_Response as ::protobuf::Message>::default_instance()
    }
}

impl CPublishedFile_Unsubscribe_Response {
    pub fn new() -> CPublishedFile_Unsubscribe_Response {
        ::std::default::Default::default()
    }
}

impl ::protobuf::Message for CPublishedFile_Unsubscribe_Response {
    fn is_initialized(&self) -> bool {
        true
    }

    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
        while !is.eof()? {
            let (field_number, wire_type) = is.read_tag_unpack()?;
            match field_number {
                _ => {
                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
                },
            };
        }
        ::std::result::Result::Ok(())
    }

    // Compute sizes of nested messages
    #[allow(unused_variables)]
    fn compute_size(&self) -> u32 {
        let mut my_size = 0;
        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
        self.cached_size.set(my_size);
        my_size
    }

    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
        os.write_unknown_fields(self.get_unknown_fields())?;
        ::std::result::Result::Ok(())
    }

    fn get_cached_size(&self) -> u32 {
        self.cached_size.get()
    }

    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
        &self.unknown_fields
    }

    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
        &mut self.unknown_fields
    }

    fn as_any(&self) -> &dyn (::std::any::Any) {
        self as &dyn (::std::any::Any)
    }
    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
        self as &mut dyn (::std::any::Any)
    }
    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
        self
    }

    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
        Self::descriptor_static()
    }

    fn new() -> CPublishedFile_Unsubscribe_Response {
        CPublishedFile_Unsubscribe_Response::new()
    }

    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
        descriptor.get(|| {
            let fields = ::std::vec::Vec::new();
            ::protobuf::reflect::MessageDescriptor::new_pb_name::<CPublishedFile_Unsubscribe_Response>(
                "CPublishedFile_Unsubscribe_Response",
                fields,
                file_descriptor_proto()
            )
        })
    }

    fn default_instance() -> &'static CPublishedFile_Unsubscribe_Response {
        static instance: ::protobuf::rt::LazyV2<CPublishedFile_Unsubscribe_Response> = ::protobuf::rt::LazyV2::INIT;
        instance.get(CPublishedFile_Unsubscribe_Response::new)
    }
}

impl ::protobuf::Clear for CPublishedFile_Unsubscribe_Response {
    fn clear(&mut self) {
        self.unknown_fields.clear();
    }
}

impl ::std::fmt::Debug for CPublishedFile_Unsubscribe_Response {
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
        ::protobuf::text_format::fmt(self, f)
    }
}

impl ::protobuf::reflect::ProtobufValue for CPublishedFile_Unsubscribe_Response {
    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
        ::protobuf::reflect::ReflectValueRef::Message(self)
    }
}

#[derive(PartialEq,Clone,Default)]
pub struct CPublishedFile_CanSubscribe_Request {
    // message fields
    publishedfileid: ::std::option::Option<u64>,
    // special fields
    pub unknown_fields: ::protobuf::UnknownFields,
    pub cached_size: ::protobuf::CachedSize,
}

impl<'a> ::std::default::Default for &'a CPublishedFile_CanSubscribe_Request {
    fn default() -> &'a CPublishedFile_CanSubscribe_Request {
        <CPublishedFile_CanSubscribe_Request as ::protobuf::Message>::default_instance()
    }
}

impl CPublishedFile_CanSubscribe_Request {
    pub fn new() -> CPublishedFile_CanSubscribe_Request {
        ::std::default::Default::default()
    }

    // optional uint64 publishedfileid = 1;


    pub fn get_publishedfileid(&self) -> u64 {
        self.publishedfileid.unwrap_or(0)
    }
    pub fn clear_publishedfileid(&mut self) {
        self.publishedfileid = ::std::option::Option::None;
    }

    pub fn has_publishedfileid(&self) -> bool {
        self.publishedfileid.is_some()
    }

    // Param is passed by value, moved
    pub fn set_publishedfileid(&mut self, v: u64) {
        self.publishedfileid = ::std::option::Option::Some(v);
    }
}

impl ::protobuf::Message for CPublishedFile_CanSubscribe_Request {
    fn is_initialized(&self) -> bool {
        true
    }

    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
        while !is.eof()? {
            let (field_number, wire_type) = is.read_tag_unpack()?;
            match field_number {
                1 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_uint64()?;
                    self.publishedfileid = ::std::option::Option::Some(tmp);
                },
                _ => {
                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
                },
            };
        }
        ::std::result::Result::Ok(())
    }

    // Compute sizes of nested messages
    #[allow(unused_variables)]
    fn compute_size(&self) -> u32 {
        let mut my_size = 0;
        if let Some(v) = self.publishedfileid {
            my_size += ::protobuf::rt::value_size(1, v, ::protobuf::wire_format::WireTypeVarint);
        }
        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
        self.cached_size.set(my_size);
        my_size
    }

    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
        if let Some(v) = self.publishedfileid {
            os.write_uint64(1, v)?;
        }
        os.write_unknown_fields(self.get_unknown_fields())?;
        ::std::result::Result::Ok(())
    }

    fn get_cached_size(&self) -> u32 {
        self.cached_size.get()
    }

    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
        &self.unknown_fields
    }

    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
        &mut self.unknown_fields
    }

    fn as_any(&self) -> &dyn (::std::any::Any) {
        self as &dyn (::std::any::Any)
    }
    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
        self as &mut dyn (::std::any::Any)
    }
    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
        self
    }

    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
        Self::descriptor_static()
    }

    fn new() -> CPublishedFile_CanSubscribe_Request {
        CPublishedFile_CanSubscribe_Request::new()
    }

    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
        descriptor.get(|| {
            let mut fields = ::std::vec::Vec::new();
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeUint64>(
                "publishedfileid",
                |m: &CPublishedFile_CanSubscribe_Request| { &m.publishedfileid },
                |m: &mut CPublishedFile_CanSubscribe_Request| { &mut m.publishedfileid },
            ));
            ::protobuf::reflect::MessageDescriptor::new_pb_name::<CPublishedFile_CanSubscribe_Request>(
                "CPublishedFile_CanSubscribe_Request",
                fields,
                file_descriptor_proto()
            )
        })
    }

    fn default_instance() -> &'static CPublishedFile_CanSubscribe_Request {
        static instance: ::protobuf::rt::LazyV2<CPublishedFile_CanSubscribe_Request> = ::protobuf::rt::LazyV2::INIT;
        instance.get(CPublishedFile_CanSubscribe_Request::new)
    }
}

impl ::protobuf::Clear for CPublishedFile_CanSubscribe_Request {
    fn clear(&mut self) {
        self.publishedfileid = ::std::option::Option::None;
        self.unknown_fields.clear();
    }
}

impl ::std::fmt::Debug for CPublishedFile_CanSubscribe_Request {
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
        ::protobuf::text_format::fmt(self, f)
    }
}

impl ::protobuf::reflect::ProtobufValue for CPublishedFile_CanSubscribe_Request {
    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
        ::protobuf::reflect::ReflectValueRef::Message(self)
    }
}

#[derive(PartialEq,Clone,Default)]
pub struct CPublishedFile_CanSubscribe_Response {
    // message fields
    can_subscribe: ::std::option::Option<bool>,
    // special fields
    pub unknown_fields: ::protobuf::UnknownFields,
    pub cached_size: ::protobuf::CachedSize,
}

impl<'a> ::std::default::Default for &'a CPublishedFile_CanSubscribe_Response {
    fn default() -> &'a CPublishedFile_CanSubscribe_Response {
        <CPublishedFile_CanSubscribe_Response as ::protobuf::Message>::default_instance()
    }
}

impl CPublishedFile_CanSubscribe_Response {
    pub fn new() -> CPublishedFile_CanSubscribe_Response {
        ::std::default::Default::default()
    }

    // optional bool can_subscribe = 1;


    pub fn get_can_subscribe(&self) -> bool {
        self.can_subscribe.unwrap_or(false)
    }
    pub fn clear_can_subscribe(&mut self) {
        self.can_subscribe = ::std::option::Option::None;
    }

    pub fn has_can_subscribe(&self) -> bool {
        self.can_subscribe.is_some()
    }

    // Param is passed by value, moved
    pub fn set_can_subscribe(&mut self, v: bool) {
        self.can_subscribe = ::std::option::Option::Some(v);
    }
}

impl ::protobuf::Message for CPublishedFile_CanSubscribe_Response {
    fn is_initialized(&self) -> bool {
        true
    }

    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
        while !is.eof()? {
            let (field_number, wire_type) = is.read_tag_unpack()?;
            match field_number {
                1 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_bool()?;
                    self.can_subscribe = ::std::option::Option::Some(tmp);
                },
                _ => {
                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
                },
            };
        }
        ::std::result::Result::Ok(())
    }

    // Compute sizes of nested messages
    #[allow(unused_variables)]
    fn compute_size(&self) -> u32 {
        let mut my_size = 0;
        if let Some(v) = self.can_subscribe {
            my_size += 2;
        }
        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
        self.cached_size.set(my_size);
        my_size
    }

    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
        if let Some(v) = self.can_subscribe {
            os.write_bool(1, v)?;
        }
        os.write_unknown_fields(self.get_unknown_fields())?;
        ::std::result::Result::Ok(())
    }

    fn get_cached_size(&self) -> u32 {
        self.cached_size.get()
    }

    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
        &self.unknown_fields
    }

    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
        &mut self.unknown_fields
    }

    fn as_any(&self) -> &dyn (::std::any::Any) {
        self as &dyn (::std::any::Any)
    }
    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
        self as &mut dyn (::std::any::Any)
    }
    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
        self
    }

    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
        Self::descriptor_static()
    }

    fn new() -> CPublishedFile_CanSubscribe_Response {
        CPublishedFile_CanSubscribe_Response::new()
    }

    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
        descriptor.get(|| {
            let mut fields = ::std::vec::Vec::new();
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeBool>(
                "can_subscribe",
                |m: &CPublishedFile_CanSubscribe_Response| { &m.can_subscribe },
                |m: &mut CPublishedFile_CanSubscribe_Response| { &mut m.can_subscribe },
            ));
            ::protobuf::reflect::MessageDescriptor::new_pb_name::<CPublishedFile_CanSubscribe_Response>(
                "CPublishedFile_CanSubscribe_Response",
                fields,
                file_descriptor_proto()
            )
        })
    }

    fn default_instance() -> &'static CPublishedFile_CanSubscribe_Response {
        static instance: ::protobuf::rt::LazyV2<CPublishedFile_CanSubscribe_Response> = ::protobuf::rt::LazyV2::INIT;
        instance.get(CPublishedFile_CanSubscribe_Response::new)
    }
}

impl ::protobuf::Clear for CPublishedFile_CanSubscribe_Response {
    fn clear(&mut self) {
        self.can_subscribe = ::std::option::Option::None;
        self.unknown_fields.clear();
    }
}

impl ::std::fmt::Debug for CPublishedFile_CanSubscribe_Response {
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
        ::protobuf::text_format::fmt(self, f)
    }
}

impl ::protobuf::reflect::ProtobufValue for CPublishedFile_CanSubscribe_Response {
    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
        ::protobuf::reflect::ReflectValueRef::Message(self)
    }
}

#[derive(PartialEq,Clone,Default)]
pub struct CPublishedFile_Publish_Request {
    // message fields
    appid: ::std::option::Option<u32>,
    consumer_appid: ::std::option::Option<u32>,
    cloudfilename: ::protobuf::SingularField<::std::string::String>,
    preview_cloudfilename: ::protobuf::SingularField<::std::string::String>,
    title: ::protobuf::SingularField<::std::string::String>,
    file_description: ::protobuf::SingularField<::std::string::String>,
    file_type: ::std::option::Option<u32>,
    consumer_shortcut_name: ::protobuf::SingularField<::std::string::String>,
    youtube_username: ::protobuf::SingularField<::std::string::String>,
    youtube_videoid: ::protobuf::SingularField<::std::string::String>,
    visibility: ::std::option::Option<u32>,
    redirect_uri: ::protobuf::SingularField<::std::string::String>,
    pub tags: ::protobuf::RepeatedField<::std::string::String>,
    collection_type: ::protobuf::SingularField<::std::string::String>,
    game_type: ::protobuf::SingularField<::std::string::String>,
    url: ::protobuf::SingularField<::std::string::String>,
    // special fields
    pub unknown_fields: ::protobuf::UnknownFields,
    pub cached_size: ::protobuf::CachedSize,
}

impl<'a> ::std::default::Default for &'a CPublishedFile_Publish_Request {
    fn default() -> &'a CPublishedFile_Publish_Request {
        <CPublishedFile_Publish_Request as ::protobuf::Message>::default_instance()
    }
}

impl CPublishedFile_Publish_Request {
    pub fn new() -> CPublishedFile_Publish_Request {
        ::std::default::Default::default()
    }

    // optional uint32 appid = 1;


    pub fn get_appid(&self) -> u32 {
        self.appid.unwrap_or(0)
    }
    pub fn clear_appid(&mut self) {
        self.appid = ::std::option::Option::None;
    }

    pub fn has_appid(&self) -> bool {
        self.appid.is_some()
    }

    // Param is passed by value, moved
    pub fn set_appid(&mut self, v: u32) {
        self.appid = ::std::option::Option::Some(v);
    }

    // optional uint32 consumer_appid = 2;


    pub fn get_consumer_appid(&self) -> u32 {
        self.consumer_appid.unwrap_or(0)
    }
    pub fn clear_consumer_appid(&mut self) {
        self.consumer_appid = ::std::option::Option::None;
    }

    pub fn has_consumer_appid(&self) -> bool {
        self.consumer_appid.is_some()
    }

    // Param is passed by value, moved
    pub fn set_consumer_appid(&mut self, v: u32) {
        self.consumer_appid = ::std::option::Option::Some(v);
    }

    // optional string cloudfilename = 3;


    pub fn get_cloudfilename(&self) -> &str {
        match self.cloudfilename.as_ref() {
            Some(v) => &v,
            None => "",
        }
    }
    pub fn clear_cloudfilename(&mut self) {
        self.cloudfilename.clear();
    }

    pub fn has_cloudfilename(&self) -> bool {
        self.cloudfilename.is_some()
    }

    // Param is passed by value, moved
    pub fn set_cloudfilename(&mut self, v: ::std::string::String) {
        self.cloudfilename = ::protobuf::SingularField::some(v);
    }

    // Mutable pointer to the field.
    // If field is not initialized, it is initialized with default value first.
    pub fn mut_cloudfilename(&mut self) -> &mut ::std::string::String {
        if self.cloudfilename.is_none() {
            self.cloudfilename.set_default();
        }
        self.cloudfilename.as_mut().unwrap()
    }

    // Take field
    pub fn take_cloudfilename(&mut self) -> ::std::string::String {
        self.cloudfilename.take().unwrap_or_else(|| ::std::string::String::new())
    }

    // optional string preview_cloudfilename = 4;


    pub fn get_preview_cloudfilename(&self) -> &str {
        match self.preview_cloudfilename.as_ref() {
            Some(v) => &v,
            None => "",
        }
    }
    pub fn clear_preview_cloudfilename(&mut self) {
        self.preview_cloudfilename.clear();
    }

    pub fn has_preview_cloudfilename(&self) -> bool {
        self.preview_cloudfilename.is_some()
    }

    // Param is passed by value, moved
    pub fn set_preview_cloudfilename(&mut self, v: ::std::string::String) {
        self.preview_cloudfilename = ::protobuf::SingularField::some(v);
    }

    // Mutable pointer to the field.
    // If field is not initialized, it is initialized with default value first.
    pub fn mut_preview_cloudfilename(&mut self) -> &mut ::std::string::String {
        if self.preview_cloudfilename.is_none() {
            self.preview_cloudfilename.set_default();
        }
        self.preview_cloudfilename.as_mut().unwrap()
    }

    // Take field
    pub fn take_preview_cloudfilename(&mut self) -> ::std::string::String {
        self.preview_cloudfilename.take().unwrap_or_else(|| ::std::string::String::new())
    }

    // optional string title = 5;


    pub fn get_title(&self) -> &str {
        match self.title.as_ref() {
            Some(v) => &v,
            None => "",
        }
    }
    pub fn clear_title(&mut self) {
        self.title.clear();
    }

    pub fn has_title(&self) -> bool {
        self.title.is_some()
    }

    // Param is passed by value, moved
    pub fn set_title(&mut self, v: ::std::string::String) {
        self.title = ::protobuf::SingularField::some(v);
    }

    // Mutable pointer to the field.
    // If field is not initialized, it is initialized with default value first.
    pub fn mut_title(&mut self) -> &mut ::std::string::String {
        if self.title.is_none() {
            self.title.set_default();
        }
        self.title.as_mut().unwrap()
    }

    // Take field
    pub fn take_title(&mut self) -> ::std::string::String {
        self.title.take().unwrap_or_else(|| ::std::string::String::new())
    }

    // optional string file_description = 6;


    pub fn get_file_description(&self) -> &str {
        match self.file_description.as_ref() {
            Some(v) => &v,
            None => "",
        }
    }
    pub fn clear_file_description(&mut self) {
        self.file_description.clear();
    }

    pub fn has_file_description(&self) -> bool {
        self.file_description.is_some()
    }

    // Param is passed by value, moved
    pub fn set_file_description(&mut self, v: ::std::string::String) {
        self.file_description = ::protobuf::SingularField::some(v);
    }

    // Mutable pointer to the field.
    // If field is not initialized, it is initialized with default value first.
    pub fn mut_file_description(&mut self) -> &mut ::std::string::String {
        if self.file_description.is_none() {
            self.file_description.set_default();
        }
        self.file_description.as_mut().unwrap()
    }

    // Take field
    pub fn take_file_description(&mut self) -> ::std::string::String {
        self.file_description.take().unwrap_or_else(|| ::std::string::String::new())
    }

    // optional uint32 file_type = 7;


    pub fn get_file_type(&self) -> u32 {
        self.file_type.unwrap_or(0)
    }
    pub fn clear_file_type(&mut self) {
        self.file_type = ::std::option::Option::None;
    }

    pub fn has_file_type(&self) -> bool {
        self.file_type.is_some()
    }

    // Param is passed by value, moved
    pub fn set_file_type(&mut self, v: u32) {
        self.file_type = ::std::option::Option::Some(v);
    }

    // optional string consumer_shortcut_name = 8;


    pub fn get_consumer_shortcut_name(&self) -> &str {
        match self.consumer_shortcut_name.as_ref() {
            Some(v) => &v,
            None => "",
        }
    }
    pub fn clear_consumer_shortcut_name(&mut self) {
        self.consumer_shortcut_name.clear();
    }

    pub fn has_consumer_shortcut_name(&self) -> bool {
        self.consumer_shortcut_name.is_some()
    }

    // Param is passed by value, moved
    pub fn set_consumer_shortcut_name(&mut self, v: ::std::string::String) {
        self.consumer_shortcut_name = ::protobuf::SingularField::some(v);
    }

    // Mutable pointer to the field.
    // If field is not initialized, it is initialized with default value first.
    pub fn mut_consumer_shortcut_name(&mut self) -> &mut ::std::string::String {
        if self.consumer_shortcut_name.is_none() {
            self.consumer_shortcut_name.set_default();
        }
        self.consumer_shortcut_name.as_mut().unwrap()
    }

    // Take field
    pub fn take_consumer_shortcut_name(&mut self) -> ::std::string::String {
        self.consumer_shortcut_name.take().unwrap_or_else(|| ::std::string::String::new())
    }

    // optional string youtube_username = 9;


    pub fn get_youtube_username(&self) -> &str {
        match self.youtube_username.as_ref() {
            Some(v) => &v,
            None => "",
        }
    }
    pub fn clear_youtube_username(&mut self) {
        self.youtube_username.clear();
    }

    pub fn has_youtube_username(&self) -> bool {
        self.youtube_username.is_some()
    }

    // Param is passed by value, moved
    pub fn set_youtube_username(&mut self, v: ::std::string::String) {
        self.youtube_username = ::protobuf::SingularField::some(v);
    }

    // Mutable pointer to the field.
    // If field is not initialized, it is initialized with default value first.
    pub fn mut_youtube_username(&mut self) -> &mut ::std::string::String {
        if self.youtube_username.is_none() {
            self.youtube_username.set_default();
        }
        self.youtube_username.as_mut().unwrap()
    }

    // Take field
    pub fn take_youtube_username(&mut self) -> ::std::string::String {
        self.youtube_username.take().unwrap_or_else(|| ::std::string::String::new())
    }

    // optional string youtube_videoid = 10;


    pub fn get_youtube_videoid(&self) -> &str {
        match self.youtube_videoid.as_ref() {
            Some(v) => &v,
            None => "",
        }
    }
    pub fn clear_youtube_videoid(&mut self) {
        self.youtube_videoid.clear();
    }

    pub fn has_youtube_videoid(&self) -> bool {
        self.youtube_videoid.is_some()
    }

    // Param is passed by value, moved
    pub fn set_youtube_videoid(&mut self, v: ::std::string::String) {
        self.youtube_videoid = ::protobuf::SingularField::some(v);
    }

    // Mutable pointer to the field.
    // If field is not initialized, it is initialized with default value first.
    pub fn mut_youtube_videoid(&mut self) -> &mut ::std::string::String {
        if self.youtube_videoid.is_none() {
            self.youtube_videoid.set_default();
        }
        self.youtube_videoid.as_mut().unwrap()
    }

    // Take field
    pub fn take_youtube_videoid(&mut self) -> ::std::string::String {
        self.youtube_videoid.take().unwrap_or_else(|| ::std::string::String::new())
    }

    // optional uint32 visibility = 11;


    pub fn get_visibility(&self) -> u32 {
        self.visibility.unwrap_or(0)
    }
    pub fn clear_visibility(&mut self) {
        self.visibility = ::std::option::Option::None;
    }

    pub fn has_visibility(&self) -> bool {
        self.visibility.is_some()
    }

    // Param is passed by value, moved
    pub fn set_visibility(&mut self, v: u32) {
        self.visibility = ::std::option::Option::Some(v);
    }

    // optional string redirect_uri = 12;


    pub fn get_redirect_uri(&self) -> &str {
        match self.redirect_uri.as_ref() {
            Some(v) => &v,
            None => "",
        }
    }
    pub fn clear_redirect_uri(&mut self) {
        self.redirect_uri.clear();
    }

    pub fn has_redirect_uri(&self) -> bool {
        self.redirect_uri.is_some()
    }

    // Param is passed by value, moved
    pub fn set_redirect_uri(&mut self, v: ::std::string::String) {
        self.redirect_uri = ::protobuf::SingularField::some(v);
    }

    // Mutable pointer to the field.
    // If field is not initialized, it is initialized with default value first.
    pub fn mut_redirect_uri(&mut self) -> &mut ::std::string::String {
        if self.redirect_uri.is_none() {
            self.redirect_uri.set_default();
        }
        self.redirect_uri.as_mut().unwrap()
    }

    // Take field
    pub fn take_redirect_uri(&mut self) -> ::std::string::String {
        self.redirect_uri.take().unwrap_or_else(|| ::std::string::String::new())
    }

    // repeated string tags = 13;


    pub fn get_tags(&self) -> &[::std::string::String] {
        &self.tags
    }
    pub fn clear_tags(&mut self) {
        self.tags.clear();
    }

    // Param is passed by value, moved
    pub fn set_tags(&mut self, v: ::protobuf::RepeatedField<::std::string::String>) {
        self.tags = v;
    }

    // Mutable pointer to the field.
    pub fn mut_tags(&mut self) -> &mut ::protobuf::RepeatedField<::std::string::String> {
        &mut self.tags
    }

    // Take field
    pub fn take_tags(&mut self) -> ::protobuf::RepeatedField<::std::string::String> {
        ::std::mem::replace(&mut self.tags, ::protobuf::RepeatedField::new())
    }

    // optional string collection_type = 14;


    pub fn get_collection_type(&self) -> &str {
        match self.collection_type.as_ref() {
            Some(v) => &v,
            None => "",
        }
    }
    pub fn clear_collection_type(&mut self) {
        self.collection_type.clear();
    }

    pub fn has_collection_type(&self) -> bool {
        self.collection_type.is_some()
    }

    // Param is passed by value, moved
    pub fn set_collection_type(&mut self, v: ::std::string::String) {
        self.collection_type = ::protobuf::SingularField::some(v);
    }

    // Mutable pointer to the field.
    // If field is not initialized, it is initialized with default value first.
    pub fn mut_collection_type(&mut self) -> &mut ::std::string::String {
        if self.collection_type.is_none() {
            self.collection_type.set_default();
        }
        self.collection_type.as_mut().unwrap()
    }

    // Take field
    pub fn take_collection_type(&mut self) -> ::std::string::String {
        self.collection_type.take().unwrap_or_else(|| ::std::string::String::new())
    }

    // optional string game_type = 15;


    pub fn get_game_type(&self) -> &str {
        match self.game_type.as_ref() {
            Some(v) => &v,
            None => "",
        }
    }
    pub fn clear_game_type(&mut self) {
        self.game_type.clear();
    }

    pub fn has_game_type(&self) -> bool {
        self.game_type.is_some()
    }

    // Param is passed by value, moved
    pub fn set_game_type(&mut self, v: ::std::string::String) {
        self.game_type = ::protobuf::SingularField::some(v);
    }

    // Mutable pointer to the field.
    // If field is not initialized, it is initialized with default value first.
    pub fn mut_game_type(&mut self) -> &mut ::std::string::String {
        if self.game_type.is_none() {
            self.game_type.set_default();
        }
        self.game_type.as_mut().unwrap()
    }

    // Take field
    pub fn take_game_type(&mut self) -> ::std::string::String {
        self.game_type.take().unwrap_or_else(|| ::std::string::String::new())
    }

    // optional string url = 16;


    pub fn get_url(&self) -> &str {
        match self.url.as_ref() {
            Some(v) => &v,
            None => "",
        }
    }
    pub fn clear_url(&mut self) {
        self.url.clear();
    }

    pub fn has_url(&self) -> bool {
        self.url.is_some()
    }

    // Param is passed by value, moved
    pub fn set_url(&mut self, v: ::std::string::String) {
        self.url = ::protobuf::SingularField::some(v);
    }

    // Mutable pointer to the field.
    // If field is not initialized, it is initialized with default value first.
    pub fn mut_url(&mut self) -> &mut ::std::string::String {
        if self.url.is_none() {
            self.url.set_default();
        }
        self.url.as_mut().unwrap()
    }

    // Take field
    pub fn take_url(&mut self) -> ::std::string::String {
        self.url.take().unwrap_or_else(|| ::std::string::String::new())
    }
}

impl ::protobuf::Message for CPublishedFile_Publish_Request {
    fn is_initialized(&self) -> bool {
        true
    }

    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
        while !is.eof()? {
            let (field_number, wire_type) = is.read_tag_unpack()?;
            match field_number {
                1 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_uint32()?;
                    self.appid = ::std::option::Option::Some(tmp);
                },
                2 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_uint32()?;
                    self.consumer_appid = ::std::option::Option::Some(tmp);
                },
                3 => {
                    ::protobuf::rt::read_singular_string_into(wire_type, is, &mut self.cloudfilename)?;
                },
                4 => {
                    ::protobuf::rt::read_singular_string_into(wire_type, is, &mut self.preview_cloudfilename)?;
                },
                5 => {
                    ::protobuf::rt::read_singular_string_into(wire_type, is, &mut self.title)?;
                },
                6 => {
                    ::protobuf::rt::read_singular_string_into(wire_type, is, &mut self.file_description)?;
                },
                7 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_uint32()?;
                    self.file_type = ::std::option::Option::Some(tmp);
                },
                8 => {
                    ::protobuf::rt::read_singular_string_into(wire_type, is, &mut self.consumer_shortcut_name)?;
                },
                9 => {
                    ::protobuf::rt::read_singular_string_into(wire_type, is, &mut self.youtube_username)?;
                },
                10 => {
                    ::protobuf::rt::read_singular_string_into(wire_type, is, &mut self.youtube_videoid)?;
                },
                11 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_uint32()?;
                    self.visibility = ::std::option::Option::Some(tmp);
                },
                12 => {
                    ::protobuf::rt::read_singular_string_into(wire_type, is, &mut self.redirect_uri)?;
                },
                13 => {
                    ::protobuf::rt::read_repeated_string_into(wire_type, is, &mut self.tags)?;
                },
                14 => {
                    ::protobuf::rt::read_singular_string_into(wire_type, is, &mut self.collection_type)?;
                },
                15 => {
                    ::protobuf::rt::read_singular_string_into(wire_type, is, &mut self.game_type)?;
                },
                16 => {
                    ::protobuf::rt::read_singular_string_into(wire_type, is, &mut self.url)?;
                },
                _ => {
                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
                },
            };
        }
        ::std::result::Result::Ok(())
    }

    // Compute sizes of nested messages
    #[allow(unused_variables)]
    fn compute_size(&self) -> u32 {
        let mut my_size = 0;
        if let Some(v) = self.appid {
            my_size += ::protobuf::rt::value_size(1, v, ::protobuf::wire_format::WireTypeVarint);
        }
        if let Some(v) = self.consumer_appid {
            my_size += ::protobuf::rt::value_size(2, v, ::protobuf::wire_format::WireTypeVarint);
        }
        if let Some(ref v) = self.cloudfilename.as_ref() {
            my_size += ::protobuf::rt::string_size(3, &v);
        }
        if let Some(ref v) = self.preview_cloudfilename.as_ref() {
            my_size += ::protobuf::rt::string_size(4, &v);
        }
        if let Some(ref v) = self.title.as_ref() {
            my_size += ::protobuf::rt::string_size(5, &v);
        }
        if let Some(ref v) = self.file_description.as_ref() {
            my_size += ::protobuf::rt::string_size(6, &v);
        }
        if let Some(v) = self.file_type {
            my_size += ::protobuf::rt::value_size(7, v, ::protobuf::wire_format::WireTypeVarint);
        }
        if let Some(ref v) = self.consumer_shortcut_name.as_ref() {
            my_size += ::protobuf::rt::string_size(8, &v);
        }
        if let Some(ref v) = self.youtube_username.as_ref() {
            my_size += ::protobuf::rt::string_size(9, &v);
        }
        if let Some(ref v) = self.youtube_videoid.as_ref() {
            my_size += ::protobuf::rt::string_size(10, &v);
        }
        if let Some(v) = self.visibility {
            my_size += ::protobuf::rt::value_size(11, v, ::protobuf::wire_format::WireTypeVarint);
        }
        if let Some(ref v) = self.redirect_uri.as_ref() {
            my_size += ::protobuf::rt::string_size(12, &v);
        }
        for value in &self.tags {
            my_size += ::protobuf::rt::string_size(13, &value);
        };
        if let Some(ref v) = self.collection_type.as_ref() {
            my_size += ::protobuf::rt::string_size(14, &v);
        }
        if let Some(ref v) = self.game_type.as_ref() {
            my_size += ::protobuf::rt::string_size(15, &v);
        }
        if let Some(ref v) = self.url.as_ref() {
            my_size += ::protobuf::rt::string_size(16, &v);
        }
        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
        self.cached_size.set(my_size);
        my_size
    }

    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
        if let Some(v) = self.appid {
            os.write_uint32(1, v)?;
        }
        if let Some(v) = self.consumer_appid {
            os.write_uint32(2, v)?;
        }
        if let Some(ref v) = self.cloudfilename.as_ref() {
            os.write_string(3, &v)?;
        }
        if let Some(ref v) = self.preview_cloudfilename.as_ref() {
            os.write_string(4, &v)?;
        }
        if let Some(ref v) = self.title.as_ref() {
            os.write_string(5, &v)?;
        }
        if let Some(ref v) = self.file_description.as_ref() {
            os.write_string(6, &v)?;
        }
        if let Some(v) = self.file_type {
            os.write_uint32(7, v)?;
        }
        if let Some(ref v) = self.consumer_shortcut_name.as_ref() {
            os.write_string(8, &v)?;
        }
        if let Some(ref v) = self.youtube_username.as_ref() {
            os.write_string(9, &v)?;
        }
        if let Some(ref v) = self.youtube_videoid.as_ref() {
            os.write_string(10, &v)?;
        }
        if let Some(v) = self.visibility {
            os.write_uint32(11, v)?;
        }
        if let Some(ref v) = self.redirect_uri.as_ref() {
            os.write_string(12, &v)?;
        }
        for v in &self.tags {
            os.write_string(13, &v)?;
        };
        if let Some(ref v) = self.collection_type.as_ref() {
            os.write_string(14, &v)?;
        }
        if let Some(ref v) = self.game_type.as_ref() {
            os.write_string(15, &v)?;
        }
        if let Some(ref v) = self.url.as_ref() {
            os.write_string(16, &v)?;
        }
        os.write_unknown_fields(self.get_unknown_fields())?;
        ::std::result::Result::Ok(())
    }

    fn get_cached_size(&self) -> u32 {
        self.cached_size.get()
    }

    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
        &self.unknown_fields
    }

    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
        &mut self.unknown_fields
    }

    fn as_any(&self) -> &dyn (::std::any::Any) {
        self as &dyn (::std::any::Any)
    }
    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
        self as &mut dyn (::std::any::Any)
    }
    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
        self
    }

    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
        Self::descriptor_static()
    }

    fn new() -> CPublishedFile_Publish_Request {
        CPublishedFile_Publish_Request::new()
    }

    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
        descriptor.get(|| {
            let mut fields = ::std::vec::Vec::new();
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeUint32>(
                "appid",
                |m: &CPublishedFile_Publish_Request| { &m.appid },
                |m: &mut CPublishedFile_Publish_Request| { &mut m.appid },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeUint32>(
                "consumer_appid",
                |m: &CPublishedFile_Publish_Request| { &m.consumer_appid },
                |m: &mut CPublishedFile_Publish_Request| { &mut m.consumer_appid },
            ));
            fields.push(::protobuf::reflect::accessor::make_singular_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
                "cloudfilename",
                |m: &CPublishedFile_Publish_Request| { &m.cloudfilename },
                |m: &mut CPublishedFile_Publish_Request| { &mut m.cloudfilename },
            ));
            fields.push(::protobuf::reflect::accessor::make_singular_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
                "preview_cloudfilename",
                |m: &CPublishedFile_Publish_Request| { &m.preview_cloudfilename },
                |m: &mut CPublishedFile_Publish_Request| { &mut m.preview_cloudfilename },
            ));
            fields.push(::protobuf::reflect::accessor::make_singular_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
                "title",
                |m: &CPublishedFile_Publish_Request| { &m.title },
                |m: &mut CPublishedFile_Publish_Request| { &mut m.title },
            ));
            fields.push(::protobuf::reflect::accessor::make_singular_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
                "file_description",
                |m: &CPublishedFile_Publish_Request| { &m.file_description },
                |m: &mut CPublishedFile_Publish_Request| { &mut m.file_description },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeUint32>(
                "file_type",
                |m: &CPublishedFile_Publish_Request| { &m.file_type },
                |m: &mut CPublishedFile_Publish_Request| { &mut m.file_type },
            ));
            fields.push(::protobuf::reflect::accessor::make_singular_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
                "consumer_shortcut_name",
                |m: &CPublishedFile_Publish_Request| { &m.consumer_shortcut_name },
                |m: &mut CPublishedFile_Publish_Request| { &mut m.consumer_shortcut_name },
            ));
            fields.push(::protobuf::reflect::accessor::make_singular_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
                "youtube_username",
                |m: &CPublishedFile_Publish_Request| { &m.youtube_username },
                |m: &mut CPublishedFile_Publish_Request| { &mut m.youtube_username },
            ));
            fields.push(::protobuf::reflect::accessor::make_singular_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
                "youtube_videoid",
                |m: &CPublishedFile_Publish_Request| { &m.youtube_videoid },
                |m: &mut CPublishedFile_Publish_Request| { &mut m.youtube_videoid },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeUint32>(
                "visibility",
                |m: &CPublishedFile_Publish_Request| { &m.visibility },
                |m: &mut CPublishedFile_Publish_Request| { &mut m.visibility },
            ));
            fields.push(::protobuf::reflect::accessor::make_singular_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
                "redirect_uri",
                |m: &CPublishedFile_Publish_Request| { &m.redirect_uri },
                |m: &mut CPublishedFile_Publish_Request| { &mut m.redirect_uri },
            ));
            fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
                "tags",
                |m: &CPublishedFile_Publish_Request| { &m.tags },
                |m: &mut CPublishedFile_Publish_Request| { &mut m.tags },
            ));
            fields.push(::protobuf::reflect::accessor::make_singular_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
                "collection_type",
                |m: &CPublishedFile_Publish_Request| { &m.collection_type },
                |m: &mut CPublishedFile_Publish_Request| { &mut m.collection_type },
            ));
            fields.push(::protobuf::reflect::accessor::make_singular_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
                "game_type",
                |m: &CPublishedFile_Publish_Request| { &m.game_type },
                |m: &mut CPublishedFile_Publish_Request| { &mut m.game_type },
            ));
            fields.push(::protobuf::reflect::accessor::make_singular_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
                "url",
                |m: &CPublishedFile_Publish_Request| { &m.url },
                |m: &mut CPublishedFile_Publish_Request| { &mut m.url },
            ));
            ::protobuf::reflect::MessageDescriptor::new_pb_name::<CPublishedFile_Publish_Request>(
                "CPublishedFile_Publish_Request",
                fields,
                file_descriptor_proto()
            )
        })
    }

    fn default_instance() -> &'static CPublishedFile_Publish_Request {
        static instance: ::protobuf::rt::LazyV2<CPublishedFile_Publish_Request> = ::protobuf::rt::LazyV2::INIT;
        instance.get(CPublishedFile_Publish_Request::new)
    }
}

impl ::protobuf::Clear for CPublishedFile_Publish_Request {
    fn clear(&mut self) {
        self.appid = ::std::option::Option::None;
        self.consumer_appid = ::std::option::Option::None;
        self.cloudfilename.clear();
        self.preview_cloudfilename.clear();
        self.title.clear();
        self.file_description.clear();
        self.file_type = ::std::option::Option::None;
        self.consumer_shortcut_name.clear();
        self.youtube_username.clear();
        self.youtube_videoid.clear();
        self.visibility = ::std::option::Option::None;
        self.redirect_uri.clear();
        self.tags.clear();
        self.collection_type.clear();
        self.game_type.clear();
        self.url.clear();
        self.unknown_fields.clear();
    }
}

impl ::std::fmt::Debug for CPublishedFile_Publish_Request {
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
        ::protobuf::text_format::fmt(self, f)
    }
}

impl ::protobuf::reflect::ProtobufValue for CPublishedFile_Publish_Request {
    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
        ::protobuf::reflect::ReflectValueRef::Message(self)
    }
}

#[derive(PartialEq,Clone,Default)]
pub struct CPublishedFile_Publish_Response {
    // message fields
    publishedfileid: ::std::option::Option<u64>,
    redirect_uri: ::protobuf::SingularField<::std::string::String>,
    // special fields
    pub unknown_fields: ::protobuf::UnknownFields,
    pub cached_size: ::protobuf::CachedSize,
}

impl<'a> ::std::default::Default for &'a CPublishedFile_Publish_Response {
    fn default() -> &'a CPublishedFile_Publish_Response {
        <CPublishedFile_Publish_Response as ::protobuf::Message>::default_instance()
    }
}

impl CPublishedFile_Publish_Response {
    pub fn new() -> CPublishedFile_Publish_Response {
        ::std::default::Default::default()
    }

    // optional uint64 publishedfileid = 1;


    pub fn get_publishedfileid(&self) -> u64 {
        self.publishedfileid.unwrap_or(0)
    }
    pub fn clear_publishedfileid(&mut self) {
        self.publishedfileid = ::std::option::Option::None;
    }

    pub fn has_publishedfileid(&self) -> bool {
        self.publishedfileid.is_some()
    }

    // Param is passed by value, moved
    pub fn set_publishedfileid(&mut self, v: u64) {
        self.publishedfileid = ::std::option::Option::Some(v);
    }

    // optional string redirect_uri = 2;


    pub fn get_redirect_uri(&self) -> &str {
        match self.redirect_uri.as_ref() {
            Some(v) => &v,
            None => "",
        }
    }
    pub fn clear_redirect_uri(&mut self) {
        self.redirect_uri.clear();
    }

    pub fn has_redirect_uri(&self) -> bool {
        self.redirect_uri.is_some()
    }

    // Param is passed by value, moved
    pub fn set_redirect_uri(&mut self, v: ::std::string::String) {
        self.redirect_uri = ::protobuf::SingularField::some(v);
    }

    // Mutable pointer to the field.
    // If field is not initialized, it is initialized with default value first.
    pub fn mut_redirect_uri(&mut self) -> &mut ::std::string::String {
        if self.redirect_uri.is_none() {
            self.redirect_uri.set_default();
        }
        self.redirect_uri.as_mut().unwrap()
    }

    // Take field
    pub fn take_redirect_uri(&mut self) -> ::std::string::String {
        self.redirect_uri.take().unwrap_or_else(|| ::std::string::String::new())
    }
}

impl ::protobuf::Message for CPublishedFile_Publish_Response {
    fn is_initialized(&self) -> bool {
        true
    }

    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
        while !is.eof()? {
            let (field_number, wire_type) = is.read_tag_unpack()?;
            match field_number {
                1 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_uint64()?;
                    self.publishedfileid = ::std::option::Option::Some(tmp);
                },
                2 => {
                    ::protobuf::rt::read_singular_string_into(wire_type, is, &mut self.redirect_uri)?;
                },
                _ => {
                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
                },
            };
        }
        ::std::result::Result::Ok(())
    }

    // Compute sizes of nested messages
    #[allow(unused_variables)]
    fn compute_size(&self) -> u32 {
        let mut my_size = 0;
        if let Some(v) = self.publishedfileid {
            my_size += ::protobuf::rt::value_size(1, v, ::protobuf::wire_format::WireTypeVarint);
        }
        if let Some(ref v) = self.redirect_uri.as_ref() {
            my_size += ::protobuf::rt::string_size(2, &v);
        }
        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
        self.cached_size.set(my_size);
        my_size
    }

    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
        if let Some(v) = self.publishedfileid {
            os.write_uint64(1, v)?;
        }
        if let Some(ref v) = self.redirect_uri.as_ref() {
            os.write_string(2, &v)?;
        }
        os.write_unknown_fields(self.get_unknown_fields())?;
        ::std::result::Result::Ok(())
    }

    fn get_cached_size(&self) -> u32 {
        self.cached_size.get()
    }

    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
        &self.unknown_fields
    }

    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
        &mut self.unknown_fields
    }

    fn as_any(&self) -> &dyn (::std::any::Any) {
        self as &dyn (::std::any::Any)
    }
    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
        self as &mut dyn (::std::any::Any)
    }
    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
        self
    }

    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
        Self::descriptor_static()
    }

    fn new() -> CPublishedFile_Publish_Response {
        CPublishedFile_Publish_Response::new()
    }

    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
        descriptor.get(|| {
            let mut fields = ::std::vec::Vec::new();
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeUint64>(
                "publishedfileid",
                |m: &CPublishedFile_Publish_Response| { &m.publishedfileid },
                |m: &mut CPublishedFile_Publish_Response| { &mut m.publishedfileid },
            ));
            fields.push(::protobuf::reflect::accessor::make_singular_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
                "redirect_uri",
                |m: &CPublishedFile_Publish_Response| { &m.redirect_uri },
                |m: &mut CPublishedFile_Publish_Response| { &mut m.redirect_uri },
            ));
            ::protobuf::reflect::MessageDescriptor::new_pb_name::<CPublishedFile_Publish_Response>(
                "CPublishedFile_Publish_Response",
                fields,
                file_descriptor_proto()
            )
        })
    }

    fn default_instance() -> &'static CPublishedFile_Publish_Response {
        static instance: ::protobuf::rt::LazyV2<CPublishedFile_Publish_Response> = ::protobuf::rt::LazyV2::INIT;
        instance.get(CPublishedFile_Publish_Response::new)
    }
}

impl ::protobuf::Clear for CPublishedFile_Publish_Response {
    fn clear(&mut self) {
        self.publishedfileid = ::std::option::Option::None;
        self.redirect_uri.clear();
        self.unknown_fields.clear();
    }
}

impl ::std::fmt::Debug for CPublishedFile_Publish_Response {
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
        ::protobuf::text_format::fmt(self, f)
    }
}

impl ::protobuf::reflect::ProtobufValue for CPublishedFile_Publish_Response {
    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
        ::protobuf::reflect::ReflectValueRef::Message(self)
    }
}

#[derive(PartialEq,Clone,Default)]
pub struct CPublishedFile_GetDetails_Request {
    // message fields
    pub publishedfileids: ::std::vec::Vec<u64>,
    includetags: ::std::option::Option<bool>,
    includeadditionalpreviews: ::std::option::Option<bool>,
    includechildren: ::std::option::Option<bool>,
    includekvtags: ::std::option::Option<bool>,
    includevotes: ::std::option::Option<bool>,
    short_description: ::std::option::Option<bool>,
    includeforsaledata: ::std::option::Option<bool>,
    includemetadata: ::std::option::Option<bool>,
    language: ::std::option::Option<i32>,
    return_playtime_stats: ::std::option::Option<u32>,
    appid: ::std::option::Option<u32>,
    strip_description_bbcode: ::std::option::Option<bool>,
    desired_revision: ::std::option::Option<EPublishedFileRevision>,
    includereactions: ::std::option::Option<bool>,
    // special fields
    pub unknown_fields: ::protobuf::UnknownFields,
    pub cached_size: ::protobuf::CachedSize,
}

impl<'a> ::std::default::Default for &'a CPublishedFile_GetDetails_Request {
    fn default() -> &'a CPublishedFile_GetDetails_Request {
        <CPublishedFile_GetDetails_Request as ::protobuf::Message>::default_instance()
    }
}

impl CPublishedFile_GetDetails_Request {
    pub fn new() -> CPublishedFile_GetDetails_Request {
        ::std::default::Default::default()
    }

    // repeated fixed64 publishedfileids = 1;


    pub fn get_publishedfileids(&self) -> &[u64] {
        &self.publishedfileids
    }
    pub fn clear_publishedfileids(&mut self) {
        self.publishedfileids.clear();
    }

    // Param is passed by value, moved
    pub fn set_publishedfileids(&mut self, v: ::std::vec::Vec<u64>) {
        self.publishedfileids = v;
    }

    // Mutable pointer to the field.
    pub fn mut_publishedfileids(&mut self) -> &mut ::std::vec::Vec<u64> {
        &mut self.publishedfileids
    }

    // Take field
    pub fn take_publishedfileids(&mut self) -> ::std::vec::Vec<u64> {
        ::std::mem::replace(&mut self.publishedfileids, ::std::vec::Vec::new())
    }

    // optional bool includetags = 2;


    pub fn get_includetags(&self) -> bool {
        self.includetags.unwrap_or(false)
    }
    pub fn clear_includetags(&mut self) {
        self.includetags = ::std::option::Option::None;
    }

    pub fn has_includetags(&self) -> bool {
        self.includetags.is_some()
    }

    // Param is passed by value, moved
    pub fn set_includetags(&mut self, v: bool) {
        self.includetags = ::std::option::Option::Some(v);
    }

    // optional bool includeadditionalpreviews = 3;


    pub fn get_includeadditionalpreviews(&self) -> bool {
        self.includeadditionalpreviews.unwrap_or(false)
    }
    pub fn clear_includeadditionalpreviews(&mut self) {
        self.includeadditionalpreviews = ::std::option::Option::None;
    }

    pub fn has_includeadditionalpreviews(&self) -> bool {
        self.includeadditionalpreviews.is_some()
    }

    // Param is passed by value, moved
    pub fn set_includeadditionalpreviews(&mut self, v: bool) {
        self.includeadditionalpreviews = ::std::option::Option::Some(v);
    }

    // optional bool includechildren = 4;


    pub fn get_includechildren(&self) -> bool {
        self.includechildren.unwrap_or(false)
    }
    pub fn clear_includechildren(&mut self) {
        self.includechildren = ::std::option::Option::None;
    }

    pub fn has_includechildren(&self) -> bool {
        self.includechildren.is_some()
    }

    // Param is passed by value, moved
    pub fn set_includechildren(&mut self, v: bool) {
        self.includechildren = ::std::option::Option::Some(v);
    }

    // optional bool includekvtags = 5;


    pub fn get_includekvtags(&self) -> bool {
        self.includekvtags.unwrap_or(false)
    }
    pub fn clear_includekvtags(&mut self) {
        self.includekvtags = ::std::option::Option::None;
    }

    pub fn has_includekvtags(&self) -> bool {
        self.includekvtags.is_some()
    }

    // Param is passed by value, moved
    pub fn set_includekvtags(&mut self, v: bool) {
        self.includekvtags = ::std::option::Option::Some(v);
    }

    // optional bool includevotes = 6;


    pub fn get_includevotes(&self) -> bool {
        self.includevotes.unwrap_or(false)
    }
    pub fn clear_includevotes(&mut self) {
        self.includevotes = ::std::option::Option::None;
    }

    pub fn has_includevotes(&self) -> bool {
        self.includevotes.is_some()
    }

    // Param is passed by value, moved
    pub fn set_includevotes(&mut self, v: bool) {
        self.includevotes = ::std::option::Option::Some(v);
    }

    // optional bool short_description = 8;


    pub fn get_short_description(&self) -> bool {
        self.short_description.unwrap_or(false)
    }
    pub fn clear_short_description(&mut self) {
        self.short_description = ::std::option::Option::None;
    }

    pub fn has_short_description(&self) -> bool {
        self.short_description.is_some()
    }

    // Param is passed by value, moved
    pub fn set_short_description(&mut self, v: bool) {
        self.short_description = ::std::option::Option::Some(v);
    }

    // optional bool includeforsaledata = 10;


    pub fn get_includeforsaledata(&self) -> bool {
        self.includeforsaledata.unwrap_or(false)
    }
    pub fn clear_includeforsaledata(&mut self) {
        self.includeforsaledata = ::std::option::Option::None;
    }

    pub fn has_includeforsaledata(&self) -> bool {
        self.includeforsaledata.is_some()
    }

    // Param is passed by value, moved
    pub fn set_includeforsaledata(&mut self, v: bool) {
        self.includeforsaledata = ::std::option::Option::Some(v);
    }

    // optional bool includemetadata = 11;


    pub fn get_includemetadata(&self) -> bool {
        self.includemetadata.unwrap_or(false)
    }
    pub fn clear_includemetadata(&mut self) {
        self.includemetadata = ::std::option::Option::None;
    }

    pub fn has_includemetadata(&self) -> bool {
        self.includemetadata.is_some()
    }

    // Param is passed by value, moved
    pub fn set_includemetadata(&mut self, v: bool) {
        self.includemetadata = ::std::option::Option::Some(v);
    }

    // optional int32 language = 12;


    pub fn get_language(&self) -> i32 {
        self.language.unwrap_or(0i32)
    }
    pub fn clear_language(&mut self) {
        self.language = ::std::option::Option::None;
    }

    pub fn has_language(&self) -> bool {
        self.language.is_some()
    }

    // Param is passed by value, moved
    pub fn set_language(&mut self, v: i32) {
        self.language = ::std::option::Option::Some(v);
    }

    // optional uint32 return_playtime_stats = 13;


    pub fn get_return_playtime_stats(&self) -> u32 {
        self.return_playtime_stats.unwrap_or(0)
    }
    pub fn clear_return_playtime_stats(&mut self) {
        self.return_playtime_stats = ::std::option::Option::None;
    }

    pub fn has_return_playtime_stats(&self) -> bool {
        self.return_playtime_stats.is_some()
    }

    // Param is passed by value, moved
    pub fn set_return_playtime_stats(&mut self, v: u32) {
        self.return_playtime_stats = ::std::option::Option::Some(v);
    }

    // optional uint32 appid = 14;


    pub fn get_appid(&self) -> u32 {
        self.appid.unwrap_or(0)
    }
    pub fn clear_appid(&mut self) {
        self.appid = ::std::option::Option::None;
    }

    pub fn has_appid(&self) -> bool {
        self.appid.is_some()
    }

    // Param is passed by value, moved
    pub fn set_appid(&mut self, v: u32) {
        self.appid = ::std::option::Option::Some(v);
    }

    // optional bool strip_description_bbcode = 15;


    pub fn get_strip_description_bbcode(&self) -> bool {
        self.strip_description_bbcode.unwrap_or(false)
    }
    pub fn clear_strip_description_bbcode(&mut self) {
        self.strip_description_bbcode = ::std::option::Option::None;
    }

    pub fn has_strip_description_bbcode(&self) -> bool {
        self.strip_description_bbcode.is_some()
    }

    // Param is passed by value, moved
    pub fn set_strip_description_bbcode(&mut self, v: bool) {
        self.strip_description_bbcode = ::std::option::Option::Some(v);
    }

    // optional .EPublishedFileRevision desired_revision = 16;


    pub fn get_desired_revision(&self) -> EPublishedFileRevision {
        self.desired_revision.unwrap_or(EPublishedFileRevision::k_EPublishedFileRevision_Default)
    }
    pub fn clear_desired_revision(&mut self) {
        self.desired_revision = ::std::option::Option::None;
    }

    pub fn has_desired_revision(&self) -> bool {
        self.desired_revision.is_some()
    }

    // Param is passed by value, moved
    pub fn set_desired_revision(&mut self, v: EPublishedFileRevision) {
        self.desired_revision = ::std::option::Option::Some(v);
    }

    // optional bool includereactions = 17;


    pub fn get_includereactions(&self) -> bool {
        self.includereactions.unwrap_or(false)
    }
    pub fn clear_includereactions(&mut self) {
        self.includereactions = ::std::option::Option::None;
    }

    pub fn has_includereactions(&self) -> bool {
        self.includereactions.is_some()
    }

    // Param is passed by value, moved
    pub fn set_includereactions(&mut self, v: bool) {
        self.includereactions = ::std::option::Option::Some(v);
    }
}

impl ::protobuf::Message for CPublishedFile_GetDetails_Request {
    fn is_initialized(&self) -> bool {
        true
    }

    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
        while !is.eof()? {
            let (field_number, wire_type) = is.read_tag_unpack()?;
            match field_number {
                1 => {
                    ::protobuf::rt::read_repeated_fixed64_into(wire_type, is, &mut self.publishedfileids)?;
                },
                2 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_bool()?;
                    self.includetags = ::std::option::Option::Some(tmp);
                },
                3 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_bool()?;
                    self.includeadditionalpreviews = ::std::option::Option::Some(tmp);
                },
                4 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_bool()?;
                    self.includechildren = ::std::option::Option::Some(tmp);
                },
                5 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_bool()?;
                    self.includekvtags = ::std::option::Option::Some(tmp);
                },
                6 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_bool()?;
                    self.includevotes = ::std::option::Option::Some(tmp);
                },
                8 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_bool()?;
                    self.short_description = ::std::option::Option::Some(tmp);
                },
                10 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_bool()?;
                    self.includeforsaledata = ::std::option::Option::Some(tmp);
                },
                11 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_bool()?;
                    self.includemetadata = ::std::option::Option::Some(tmp);
                },
                12 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_int32()?;
                    self.language = ::std::option::Option::Some(tmp);
                },
                13 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_uint32()?;
                    self.return_playtime_stats = ::std::option::Option::Some(tmp);
                },
                14 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_uint32()?;
                    self.appid = ::std::option::Option::Some(tmp);
                },
                15 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_bool()?;
                    self.strip_description_bbcode = ::std::option::Option::Some(tmp);
                },
                16 => {
                    ::protobuf::rt::read_proto2_enum_with_unknown_fields_into(wire_type, is, &mut self.desired_revision, 16, &mut self.unknown_fields)?
                },
                17 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_bool()?;
                    self.includereactions = ::std::option::Option::Some(tmp);
                },
                _ => {
                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
                },
            };
        }
        ::std::result::Result::Ok(())
    }

    // Compute sizes of nested messages
    #[allow(unused_variables)]
    fn compute_size(&self) -> u32 {
        let mut my_size = 0;
        my_size += 9 * self.publishedfileids.len() as u32;
        if let Some(v) = self.includetags {
            my_size += 2;
        }
        if let Some(v) = self.includeadditionalpreviews {
            my_size += 2;
        }
        if let Some(v) = self.includechildren {
            my_size += 2;
        }
        if let Some(v) = self.includekvtags {
            my_size += 2;
        }
        if let Some(v) = self.includevotes {
            my_size += 2;
        }
        if let Some(v) = self.short_description {
            my_size += 2;
        }
        if let Some(v) = self.includeforsaledata {
            my_size += 2;
        }
        if let Some(v) = self.includemetadata {
            my_size += 2;
        }
        if let Some(v) = self.language {
            my_size += ::protobuf::rt::value_size(12, v, ::protobuf::wire_format::WireTypeVarint);
        }
        if let Some(v) = self.return_playtime_stats {
            my_size += ::protobuf::rt::value_size(13, v, ::protobuf::wire_format::WireTypeVarint);
        }
        if let Some(v) = self.appid {
            my_size += ::protobuf::rt::value_size(14, v, ::protobuf::wire_format::WireTypeVarint);
        }
        if let Some(v) = self.strip_description_bbcode {
            my_size += 2;
        }
        if let Some(v) = self.desired_revision {
            my_size += ::protobuf::rt::enum_size(16, v);
        }
        if let Some(v) = self.includereactions {
            my_size += 3;
        }
        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
        self.cached_size.set(my_size);
        my_size
    }

    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
        for v in &self.publishedfileids {
            os.write_fixed64(1, *v)?;
        };
        if let Some(v) = self.includetags {
            os.write_bool(2, v)?;
        }
        if let Some(v) = self.includeadditionalpreviews {
            os.write_bool(3, v)?;
        }
        if let Some(v) = self.includechildren {
            os.write_bool(4, v)?;
        }
        if let Some(v) = self.includekvtags {
            os.write_bool(5, v)?;
        }
        if let Some(v) = self.includevotes {
            os.write_bool(6, v)?;
        }
        if let Some(v) = self.short_description {
            os.write_bool(8, v)?;
        }
        if let Some(v) = self.includeforsaledata {
            os.write_bool(10, v)?;
        }
        if let Some(v) = self.includemetadata {
            os.write_bool(11, v)?;
        }
        if let Some(v) = self.language {
            os.write_int32(12, v)?;
        }
        if let Some(v) = self.return_playtime_stats {
            os.write_uint32(13, v)?;
        }
        if let Some(v) = self.appid {
            os.write_uint32(14, v)?;
        }
        if let Some(v) = self.strip_description_bbcode {
            os.write_bool(15, v)?;
        }
        if let Some(v) = self.desired_revision {
            os.write_enum(16, ::protobuf::ProtobufEnum::value(&v))?;
        }
        if let Some(v) = self.includereactions {
            os.write_bool(17, v)?;
        }
        os.write_unknown_fields(self.get_unknown_fields())?;
        ::std::result::Result::Ok(())
    }

    fn get_cached_size(&self) -> u32 {
        self.cached_size.get()
    }

    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
        &self.unknown_fields
    }

    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
        &mut self.unknown_fields
    }

    fn as_any(&self) -> &dyn (::std::any::Any) {
        self as &dyn (::std::any::Any)
    }
    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
        self as &mut dyn (::std::any::Any)
    }
    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
        self
    }

    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
        Self::descriptor_static()
    }

    fn new() -> CPublishedFile_GetDetails_Request {
        CPublishedFile_GetDetails_Request::new()
    }

    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
        descriptor.get(|| {
            let mut fields = ::std::vec::Vec::new();
            fields.push(::protobuf::reflect::accessor::make_vec_accessor::<_, ::protobuf::types::ProtobufTypeFixed64>(
                "publishedfileids",
                |m: &CPublishedFile_GetDetails_Request| { &m.publishedfileids },
                |m: &mut CPublishedFile_GetDetails_Request| { &mut m.publishedfileids },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeBool>(
                "includetags",
                |m: &CPublishedFile_GetDetails_Request| { &m.includetags },
                |m: &mut CPublishedFile_GetDetails_Request| { &mut m.includetags },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeBool>(
                "includeadditionalpreviews",
                |m: &CPublishedFile_GetDetails_Request| { &m.includeadditionalpreviews },
                |m: &mut CPublishedFile_GetDetails_Request| { &mut m.includeadditionalpreviews },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeBool>(
                "includechildren",
                |m: &CPublishedFile_GetDetails_Request| { &m.includechildren },
                |m: &mut CPublishedFile_GetDetails_Request| { &mut m.includechildren },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeBool>(
                "includekvtags",
                |m: &CPublishedFile_GetDetails_Request| { &m.includekvtags },
                |m: &mut CPublishedFile_GetDetails_Request| { &mut m.includekvtags },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeBool>(
                "includevotes",
                |m: &CPublishedFile_GetDetails_Request| { &m.includevotes },
                |m: &mut CPublishedFile_GetDetails_Request| { &mut m.includevotes },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeBool>(
                "short_description",
                |m: &CPublishedFile_GetDetails_Request| { &m.short_description },
                |m: &mut CPublishedFile_GetDetails_Request| { &mut m.short_description },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeBool>(
                "includeforsaledata",
                |m: &CPublishedFile_GetDetails_Request| { &m.includeforsaledata },
                |m: &mut CPublishedFile_GetDetails_Request| { &mut m.includeforsaledata },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeBool>(
                "includemetadata",
                |m: &CPublishedFile_GetDetails_Request| { &m.includemetadata },
                |m: &mut CPublishedFile_GetDetails_Request| { &mut m.includemetadata },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeInt32>(
                "language",
                |m: &CPublishedFile_GetDetails_Request| { &m.language },
                |m: &mut CPublishedFile_GetDetails_Request| { &mut m.language },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeUint32>(
                "return_playtime_stats",
                |m: &CPublishedFile_GetDetails_Request| { &m.return_playtime_stats },
                |m: &mut CPublishedFile_GetDetails_Request| { &mut m.return_playtime_stats },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeUint32>(
                "appid",
                |m: &CPublishedFile_GetDetails_Request| { &m.appid },
                |m: &mut CPublishedFile_GetDetails_Request| { &mut m.appid },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeBool>(
                "strip_description_bbcode",
                |m: &CPublishedFile_GetDetails_Request| { &m.strip_description_bbcode },
                |m: &mut CPublishedFile_GetDetails_Request| { &mut m.strip_description_bbcode },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeEnum<EPublishedFileRevision>>(
                "desired_revision",
                |m: &CPublishedFile_GetDetails_Request| { &m.desired_revision },
                |m: &mut CPublishedFile_GetDetails_Request| { &mut m.desired_revision },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeBool>(
                "includereactions",
                |m: &CPublishedFile_GetDetails_Request| { &m.includereactions },
                |m: &mut CPublishedFile_GetDetails_Request| { &mut m.includereactions },
            ));
            ::protobuf::reflect::MessageDescriptor::new_pb_name::<CPublishedFile_GetDetails_Request>(
                "CPublishedFile_GetDetails_Request",
                fields,
                file_descriptor_proto()
            )
        })
    }

    fn default_instance() -> &'static CPublishedFile_GetDetails_Request {
        static instance: ::protobuf::rt::LazyV2<CPublishedFile_GetDetails_Request> = ::protobuf::rt::LazyV2::INIT;
        instance.get(CPublishedFile_GetDetails_Request::new)
    }
}

impl ::protobuf::Clear for CPublishedFile_GetDetails_Request {
    fn clear(&mut self) {
        self.publishedfileids.clear();
        self.includetags = ::std::option::Option::None;
        self.includeadditionalpreviews = ::std::option::Option::None;
        self.includechildren = ::std::option::Option::None;
        self.includekvtags = ::std::option::Option::None;
        self.includevotes = ::std::option::Option::None;
        self.short_description = ::std::option::Option::None;
        self.includeforsaledata = ::std::option::Option::None;
        self.includemetadata = ::std::option::Option::None;
        self.language = ::std::option::Option::None;
        self.return_playtime_stats = ::std::option::Option::None;
        self.appid = ::std::option::Option::None;
        self.strip_description_bbcode = ::std::option::Option::None;
        self.desired_revision = ::std::option::Option::None;
        self.includereactions = ::std::option::Option::None;
        self.unknown_fields.clear();
    }
}

impl ::std::fmt::Debug for CPublishedFile_GetDetails_Request {
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
        ::protobuf::text_format::fmt(self, f)
    }
}

impl ::protobuf::reflect::ProtobufValue for CPublishedFile_GetDetails_Request {
    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
        ::protobuf::reflect::ReflectValueRef::Message(self)
    }
}

#[derive(PartialEq,Clone,Default)]
pub struct PublishedFileDetails {
    // message fields
    result: ::std::option::Option<u32>,
    publishedfileid: ::std::option::Option<u64>,
    creator: ::std::option::Option<u64>,
    creator_appid: ::std::option::Option<u32>,
    consumer_appid: ::std::option::Option<u32>,
    consumer_shortcutid: ::std::option::Option<u32>,
    filename: ::protobuf::SingularField<::std::string::String>,
    file_size: ::std::option::Option<u64>,
    preview_file_size: ::std::option::Option<u64>,
    file_url: ::protobuf::SingularField<::std::string::String>,
    preview_url: ::protobuf::SingularField<::std::string::String>,
    youtubevideoid: ::protobuf::SingularField<::std::string::String>,
    url: ::protobuf::SingularField<::std::string::String>,
    hcontent_file: ::std::option::Option<u64>,
    hcontent_preview: ::std::option::Option<u64>,
    title: ::protobuf::SingularField<::std::string::String>,
    file_description: ::protobuf::SingularField<::std::string::String>,
    short_description: ::protobuf::SingularField<::std::string::String>,
    time_created: ::std::option::Option<u32>,
    time_updated: ::std::option::Option<u32>,
    visibility: ::std::option::Option<u32>,
    flags: ::std::option::Option<u32>,
    workshop_file: ::std::option::Option<bool>,
    workshop_accepted: ::std::option::Option<bool>,
    show_subscribe_all: ::std::option::Option<bool>,
    num_comments_developer: ::std::option::Option<i32>,
    num_comments_public: ::std::option::Option<i32>,
    banned: ::std::option::Option<bool>,
    ban_reason: ::protobuf::SingularField<::std::string::String>,
    banner: ::std::option::Option<u64>,
    can_be_deleted: ::std::option::Option<bool>,
    incompatible: ::std::option::Option<bool>,
    app_name: ::protobuf::SingularField<::std::string::String>,
    file_type: ::std::option::Option<u32>,
    can_subscribe: ::std::option::Option<bool>,
    subscriptions: ::std::option::Option<u32>,
    favorited: ::std::option::Option<u32>,
    followers: ::std::option::Option<u32>,
    lifetime_subscriptions: ::std::option::Option<u32>,
    lifetime_favorited: ::std::option::Option<u32>,
    lifetime_followers: ::std::option::Option<u32>,
    lifetime_playtime: ::std::option::Option<u64>,
    lifetime_playtime_sessions: ::std::option::Option<u64>,
    views: ::std::option::Option<u32>,
    image_width: ::std::option::Option<u32>,
    image_height: ::std::option::Option<u32>,
    image_url: ::protobuf::SingularField<::std::string::String>,
    spoiler_tag: ::std::option::Option<bool>,
    shortcutid: ::std::option::Option<u32>,
    shortcutname: ::protobuf::SingularField<::std::string::String>,
    num_children: ::std::option::Option<u32>,
    num_reports: ::std::option::Option<u32>,
    pub previews: ::protobuf::RepeatedField<PublishedFileDetails_Preview>,
    pub tags: ::protobuf::RepeatedField<PublishedFileDetails_Tag>,
    pub children: ::protobuf::RepeatedField<PublishedFileDetails_Child>,
    pub kvtags: ::protobuf::RepeatedField<PublishedFileDetails_KVTag>,
    pub vote_data: ::protobuf::SingularPtrField<PublishedFileDetails_VoteData>,
    pub playtime_stats: ::protobuf::SingularPtrField<PublishedFileDetails_PlaytimeStats>,
    time_subscribed: ::std::option::Option<u32>,
    pub for_sale_data: ::protobuf::SingularPtrField<PublishedFileDetails_ForSaleData>,
    metadata: ::protobuf::SingularField<::std::string::String>,
    language: ::std::option::Option<i32>,
    maybe_inappropriate_sex: ::std::option::Option<bool>,
    maybe_inappropriate_violence: ::std::option::Option<bool>,
    revision_change_number: ::std::option::Option<u64>,
    revision: ::std::option::Option<EPublishedFileRevision>,
    pub available_revisions: ::std::vec::Vec<EPublishedFileRevision>,
    pub reactions: ::protobuf::RepeatedField<PublishedFileDetails_Reaction>,
    ban_text_check_result: ::std::option::Option<super::enums::EBanContentCheckResult>,
    // special fields
    pub unknown_fields: ::protobuf::UnknownFields,
    pub cached_size: ::protobuf::CachedSize,
}

impl<'a> ::std::default::Default for &'a PublishedFileDetails {
    fn default() -> &'a PublishedFileDetails {
        <PublishedFileDetails as ::protobuf::Message>::default_instance()
    }
}

impl PublishedFileDetails {
    pub fn new() -> PublishedFileDetails {
        ::std::default::Default::default()
    }

    // optional uint32 result = 1;


    pub fn get_result(&self) -> u32 {
        self.result.unwrap_or(0)
    }
    pub fn clear_result(&mut self) {
        self.result = ::std::option::Option::None;
    }

    pub fn has_result(&self) -> bool {
        self.result.is_some()
    }

    // Param is passed by value, moved
    pub fn set_result(&mut self, v: u32) {
        self.result = ::std::option::Option::Some(v);
    }

    // optional uint64 publishedfileid = 2;


    pub fn get_publishedfileid(&self) -> u64 {
        self.publishedfileid.unwrap_or(0)
    }
    pub fn clear_publishedfileid(&mut self) {
        self.publishedfileid = ::std::option::Option::None;
    }

    pub fn has_publishedfileid(&self) -> bool {
        self.publishedfileid.is_some()
    }

    // Param is passed by value, moved
    pub fn set_publishedfileid(&mut self, v: u64) {
        self.publishedfileid = ::std::option::Option::Some(v);
    }

    // optional fixed64 creator = 3;


    pub fn get_creator(&self) -> u64 {
        self.creator.unwrap_or(0)
    }
    pub fn clear_creator(&mut self) {
        self.creator = ::std::option::Option::None;
    }

    pub fn has_creator(&self) -> bool {
        self.creator.is_some()
    }

    // Param is passed by value, moved
    pub fn set_creator(&mut self, v: u64) {
        self.creator = ::std::option::Option::Some(v);
    }

    // optional uint32 creator_appid = 4;


    pub fn get_creator_appid(&self) -> u32 {
        self.creator_appid.unwrap_or(0)
    }
    pub fn clear_creator_appid(&mut self) {
        self.creator_appid = ::std::option::Option::None;
    }

    pub fn has_creator_appid(&self) -> bool {
        self.creator_appid.is_some()
    }

    // Param is passed by value, moved
    pub fn set_creator_appid(&mut self, v: u32) {
        self.creator_appid = ::std::option::Option::Some(v);
    }

    // optional uint32 consumer_appid = 5;


    pub fn get_consumer_appid(&self) -> u32 {
        self.consumer_appid.unwrap_or(0)
    }
    pub fn clear_consumer_appid(&mut self) {
        self.consumer_appid = ::std::option::Option::None;
    }

    pub fn has_consumer_appid(&self) -> bool {
        self.consumer_appid.is_some()
    }

    // Param is passed by value, moved
    pub fn set_consumer_appid(&mut self, v: u32) {
        self.consumer_appid = ::std::option::Option::Some(v);
    }

    // optional uint32 consumer_shortcutid = 6;


    pub fn get_consumer_shortcutid(&self) -> u32 {
        self.consumer_shortcutid.unwrap_or(0)
    }
    pub fn clear_consumer_shortcutid(&mut self) {
        self.consumer_shortcutid = ::std::option::Option::None;
    }

    pub fn has_consumer_shortcutid(&self) -> bool {
        self.consumer_shortcutid.is_some()
    }

    // Param is passed by value, moved
    pub fn set_consumer_shortcutid(&mut self, v: u32) {
        self.consumer_shortcutid = ::std::option::Option::Some(v);
    }

    // optional string filename = 7;


    pub fn get_filename(&self) -> &str {
        match self.filename.as_ref() {
            Some(v) => &v,
            None => "",
        }
    }
    pub fn clear_filename(&mut self) {
        self.filename.clear();
    }

    pub fn has_filename(&self) -> bool {
        self.filename.is_some()
    }

    // Param is passed by value, moved
    pub fn set_filename(&mut self, v: ::std::string::String) {
        self.filename = ::protobuf::SingularField::some(v);
    }

    // Mutable pointer to the field.
    // If field is not initialized, it is initialized with default value first.
    pub fn mut_filename(&mut self) -> &mut ::std::string::String {
        if self.filename.is_none() {
            self.filename.set_default();
        }
        self.filename.as_mut().unwrap()
    }

    // Take field
    pub fn take_filename(&mut self) -> ::std::string::String {
        self.filename.take().unwrap_or_else(|| ::std::string::String::new())
    }

    // optional uint64 file_size = 8;


    pub fn get_file_size(&self) -> u64 {
        self.file_size.unwrap_or(0)
    }
    pub fn clear_file_size(&mut self) {
        self.file_size = ::std::option::Option::None;
    }

    pub fn has_file_size(&self) -> bool {
        self.file_size.is_some()
    }

    // Param is passed by value, moved
    pub fn set_file_size(&mut self, v: u64) {
        self.file_size = ::std::option::Option::Some(v);
    }

    // optional uint64 preview_file_size = 9;


    pub fn get_preview_file_size(&self) -> u64 {
        self.preview_file_size.unwrap_or(0)
    }
    pub fn clear_preview_file_size(&mut self) {
        self.preview_file_size = ::std::option::Option::None;
    }

    pub fn has_preview_file_size(&self) -> bool {
        self.preview_file_size.is_some()
    }

    // Param is passed by value, moved
    pub fn set_preview_file_size(&mut self, v: u64) {
        self.preview_file_size = ::std::option::Option::Some(v);
    }

    // optional string file_url = 10;


    pub fn get_file_url(&self) -> &str {
        match self.file_url.as_ref() {
            Some(v) => &v,
            None => "",
        }
    }
    pub fn clear_file_url(&mut self) {
        self.file_url.clear();
    }

    pub fn has_file_url(&self) -> bool {
        self.file_url.is_some()
    }

    // Param is passed by value, moved
    pub fn set_file_url(&mut self, v: ::std::string::String) {
        self.file_url = ::protobuf::SingularField::some(v);
    }

    // Mutable pointer to the field.
    // If field is not initialized, it is initialized with default value first.
    pub fn mut_file_url(&mut self) -> &mut ::std::string::String {
        if self.file_url.is_none() {
            self.file_url.set_default();
        }
        self.file_url.as_mut().unwrap()
    }

    // Take field
    pub fn take_file_url(&mut self) -> ::std::string::String {
        self.file_url.take().unwrap_or_else(|| ::std::string::String::new())
    }

    // optional string preview_url = 11;


    pub fn get_preview_url(&self) -> &str {
        match self.preview_url.as_ref() {
            Some(v) => &v,
            None => "",
        }
    }
    pub fn clear_preview_url(&mut self) {
        self.preview_url.clear();
    }

    pub fn has_preview_url(&self) -> bool {
        self.preview_url.is_some()
    }

    // Param is passed by value, moved
    pub fn set_preview_url(&mut self, v: ::std::string::String) {
        self.preview_url = ::protobuf::SingularField::some(v);
    }

    // Mutable pointer to the field.
    // If field is not initialized, it is initialized with default value first.
    pub fn mut_preview_url(&mut self) -> &mut ::std::string::String {
        if self.preview_url.is_none() {
            self.preview_url.set_default();
        }
        self.preview_url.as_mut().unwrap()
    }

    // Take field
    pub fn take_preview_url(&mut self) -> ::std::string::String {
        self.preview_url.take().unwrap_or_else(|| ::std::string::String::new())
    }

    // optional string youtubevideoid = 12;


    pub fn get_youtubevideoid(&self) -> &str {
        match self.youtubevideoid.as_ref() {
            Some(v) => &v,
            None => "",
        }
    }
    pub fn clear_youtubevideoid(&mut self) {
        self.youtubevideoid.clear();
    }

    pub fn has_youtubevideoid(&self) -> bool {
        self.youtubevideoid.is_some()
    }

    // Param is passed by value, moved
    pub fn set_youtubevideoid(&mut self, v: ::std::string::String) {
        self.youtubevideoid = ::protobuf::SingularField::some(v);
    }

    // Mutable pointer to the field.
    // If field is not initialized, it is initialized with default value first.
    pub fn mut_youtubevideoid(&mut self) -> &mut ::std::string::String {
        if self.youtubevideoid.is_none() {
            self.youtubevideoid.set_default();
        }
        self.youtubevideoid.as_mut().unwrap()
    }

    // Take field
    pub fn take_youtubevideoid(&mut self) -> ::std::string::String {
        self.youtubevideoid.take().unwrap_or_else(|| ::std::string::String::new())
    }

    // optional string url = 13;


    pub fn get_url(&self) -> &str {
        match self.url.as_ref() {
            Some(v) => &v,
            None => "",
        }
    }
    pub fn clear_url(&mut self) {
        self.url.clear();
    }

    pub fn has_url(&self) -> bool {
        self.url.is_some()
    }

    // Param is passed by value, moved
    pub fn set_url(&mut self, v: ::std::string::String) {
        self.url = ::protobuf::SingularField::some(v);
    }

    // Mutable pointer to the field.
    // If field is not initialized, it is initialized with default value first.
    pub fn mut_url(&mut self) -> &mut ::std::string::String {
        if self.url.is_none() {
            self.url.set_default();
        }
        self.url.as_mut().unwrap()
    }

    // Take field
    pub fn take_url(&mut self) -> ::std::string::String {
        self.url.take().unwrap_or_else(|| ::std::string::String::new())
    }

    // optional fixed64 hcontent_file = 14;


    pub fn get_hcontent_file(&self) -> u64 {
        self.hcontent_file.unwrap_or(0)
    }
    pub fn clear_hcontent_file(&mut self) {
        self.hcontent_file = ::std::option::Option::None;
    }

    pub fn has_hcontent_file(&self) -> bool {
        self.hcontent_file.is_some()
    }

    // Param is passed by value, moved
    pub fn set_hcontent_file(&mut self, v: u64) {
        self.hcontent_file = ::std::option::Option::Some(v);
    }

    // optional fixed64 hcontent_preview = 15;


    pub fn get_hcontent_preview(&self) -> u64 {
        self.hcontent_preview.unwrap_or(0)
    }
    pub fn clear_hcontent_preview(&mut self) {
        self.hcontent_preview = ::std::option::Option::None;
    }

    pub fn has_hcontent_preview(&self) -> bool {
        self.hcontent_preview.is_some()
    }

    // Param is passed by value, moved
    pub fn set_hcontent_preview(&mut self, v: u64) {
        self.hcontent_preview = ::std::option::Option::Some(v);
    }

    // optional string title = 16;


    pub fn get_title(&self) -> &str {
        match self.title.as_ref() {
            Some(v) => &v,
            None => "",
        }
    }
    pub fn clear_title(&mut self) {
        self.title.clear();
    }

    pub fn has_title(&self) -> bool {
        self.title.is_some()
    }

    // Param is passed by value, moved
    pub fn set_title(&mut self, v: ::std::string::String) {
        self.title = ::protobuf::SingularField::some(v);
    }

    // Mutable pointer to the field.
    // If field is not initialized, it is initialized with default value first.
    pub fn mut_title(&mut self) -> &mut ::std::string::String {
        if self.title.is_none() {
            self.title.set_default();
        }
        self.title.as_mut().unwrap()
    }

    // Take field
    pub fn take_title(&mut self) -> ::std::string::String {
        self.title.take().unwrap_or_else(|| ::std::string::String::new())
    }

    // optional string file_description = 17;


    pub fn get_file_description(&self) -> &str {
        match self.file_description.as_ref() {
            Some(v) => &v,
            None => "",
        }
    }
    pub fn clear_file_description(&mut self) {
        self.file_description.clear();
    }

    pub fn has_file_description(&self) -> bool {
        self.file_description.is_some()
    }

    // Param is passed by value, moved
    pub fn set_file_description(&mut self, v: ::std::string::String) {
        self.file_description = ::protobuf::SingularField::some(v);
    }

    // Mutable pointer to the field.
    // If field is not initialized, it is initialized with default value first.
    pub fn mut_file_description(&mut self) -> &mut ::std::string::String {
        if self.file_description.is_none() {
            self.file_description.set_default();
        }
        self.file_description.as_mut().unwrap()
    }

    // Take field
    pub fn take_file_description(&mut self) -> ::std::string::String {
        self.file_description.take().unwrap_or_else(|| ::std::string::String::new())
    }

    // optional string short_description = 18;


    pub fn get_short_description(&self) -> &str {
        match self.short_description.as_ref() {
            Some(v) => &v,
            None => "",
        }
    }
    pub fn clear_short_description(&mut self) {
        self.short_description.clear();
    }

    pub fn has_short_description(&self) -> bool {
        self.short_description.is_some()
    }

    // Param is passed by value, moved
    pub fn set_short_description(&mut self, v: ::std::string::String) {
        self.short_description = ::protobuf::SingularField::some(v);
    }

    // Mutable pointer to the field.
    // If field is not initialized, it is initialized with default value first.
    pub fn mut_short_description(&mut self) -> &mut ::std::string::String {
        if self.short_description.is_none() {
            self.short_description.set_default();
        }
        self.short_description.as_mut().unwrap()
    }

    // Take field
    pub fn take_short_description(&mut self) -> ::std::string::String {
        self.short_description.take().unwrap_or_else(|| ::std::string::String::new())
    }

    // optional uint32 time_created = 19;


    pub fn get_time_created(&self) -> u32 {
        self.time_created.unwrap_or(0)
    }
    pub fn clear_time_created(&mut self) {
        self.time_created = ::std::option::Option::None;
    }

    pub fn has_time_created(&self) -> bool {
        self.time_created.is_some()
    }

    // Param is passed by value, moved
    pub fn set_time_created(&mut self, v: u32) {
        self.time_created = ::std::option::Option::Some(v);
    }

    // optional uint32 time_updated = 20;


    pub fn get_time_updated(&self) -> u32 {
        self.time_updated.unwrap_or(0)
    }
    pub fn clear_time_updated(&mut self) {
        self.time_updated = ::std::option::Option::None;
    }

    pub fn has_time_updated(&self) -> bool {
        self.time_updated.is_some()
    }

    // Param is passed by value, moved
    pub fn set_time_updated(&mut self, v: u32) {
        self.time_updated = ::std::option::Option::Some(v);
    }

    // optional uint32 visibility = 21;


    pub fn get_visibility(&self) -> u32 {
        self.visibility.unwrap_or(0)
    }
    pub fn clear_visibility(&mut self) {
        self.visibility = ::std::option::Option::None;
    }

    pub fn has_visibility(&self) -> bool {
        self.visibility.is_some()
    }

    // Param is passed by value, moved
    pub fn set_visibility(&mut self, v: u32) {
        self.visibility = ::std::option::Option::Some(v);
    }

    // optional uint32 flags = 22;


    pub fn get_flags(&self) -> u32 {
        self.flags.unwrap_or(0)
    }
    pub fn clear_flags(&mut self) {
        self.flags = ::std::option::Option::None;
    }

    pub fn has_flags(&self) -> bool {
        self.flags.is_some()
    }

    // Param is passed by value, moved
    pub fn set_flags(&mut self, v: u32) {
        self.flags = ::std::option::Option::Some(v);
    }

    // optional bool workshop_file = 23;


    pub fn get_workshop_file(&self) -> bool {
        self.workshop_file.unwrap_or(false)
    }
    pub fn clear_workshop_file(&mut self) {
        self.workshop_file = ::std::option::Option::None;
    }

    pub fn has_workshop_file(&self) -> bool {
        self.workshop_file.is_some()
    }

    // Param is passed by value, moved
    pub fn set_workshop_file(&mut self, v: bool) {
        self.workshop_file = ::std::option::Option::Some(v);
    }

    // optional bool workshop_accepted = 24;


    pub fn get_workshop_accepted(&self) -> bool {
        self.workshop_accepted.unwrap_or(false)
    }
    pub fn clear_workshop_accepted(&mut self) {
        self.workshop_accepted = ::std::option::Option::None;
    }

    pub fn has_workshop_accepted(&self) -> bool {
        self.workshop_accepted.is_some()
    }

    // Param is passed by value, moved
    pub fn set_workshop_accepted(&mut self, v: bool) {
        self.workshop_accepted = ::std::option::Option::Some(v);
    }

    // optional bool show_subscribe_all = 25;


    pub fn get_show_subscribe_all(&self) -> bool {
        self.show_subscribe_all.unwrap_or(false)
    }
    pub fn clear_show_subscribe_all(&mut self) {
        self.show_subscribe_all = ::std::option::Option::None;
    }

    pub fn has_show_subscribe_all(&self) -> bool {
        self.show_subscribe_all.is_some()
    }

    // Param is passed by value, moved
    pub fn set_show_subscribe_all(&mut self, v: bool) {
        self.show_subscribe_all = ::std::option::Option::Some(v);
    }

    // optional int32 num_comments_developer = 26;


    pub fn get_num_comments_developer(&self) -> i32 {
        self.num_comments_developer.unwrap_or(0)
    }
    pub fn clear_num_comments_developer(&mut self) {
        self.num_comments_developer = ::std::option::Option::None;
    }

    pub fn has_num_comments_developer(&self) -> bool {
        self.num_comments_developer.is_some()
    }

    // Param is passed by value, moved
    pub fn set_num_comments_developer(&mut self, v: i32) {
        self.num_comments_developer = ::std::option::Option::Some(v);
    }

    // optional int32 num_comments_public = 27;


    pub fn get_num_comments_public(&self) -> i32 {
        self.num_comments_public.unwrap_or(0)
    }
    pub fn clear_num_comments_public(&mut self) {
        self.num_comments_public = ::std::option::Option::None;
    }

    pub fn has_num_comments_public(&self) -> bool {
        self.num_comments_public.is_some()
    }

    // Param is passed by value, moved
    pub fn set_num_comments_public(&mut self, v: i32) {
        self.num_comments_public = ::std::option::Option::Some(v);
    }

    // optional bool banned = 28;


    pub fn get_banned(&self) -> bool {
        self.banned.unwrap_or(false)
    }
    pub fn clear_banned(&mut self) {
        self.banned = ::std::option::Option::None;
    }

    pub fn has_banned(&self) -> bool {
        self.banned.is_some()
    }

    // Param is passed by value, moved
    pub fn set_banned(&mut self, v: bool) {
        self.banned = ::std::option::Option::Some(v);
    }

    // optional string ban_reason = 29;


    pub fn get_ban_reason(&self) -> &str {
        match self.ban_reason.as_ref() {
            Some(v) => &v,
            None => "",
        }
    }
    pub fn clear_ban_reason(&mut self) {
        self.ban_reason.clear();
    }

    pub fn has_ban_reason(&self) -> bool {
        self.ban_reason.is_some()
    }

    // Param is passed by value, moved
    pub fn set_ban_reason(&mut self, v: ::std::string::String) {
        self.ban_reason = ::protobuf::SingularField::some(v);
    }

    // Mutable pointer to the field.
    // If field is not initialized, it is initialized with default value first.
    pub fn mut_ban_reason(&mut self) -> &mut ::std::string::String {
        if self.ban_reason.is_none() {
            self.ban_reason.set_default();
        }
        self.ban_reason.as_mut().unwrap()
    }

    // Take field
    pub fn take_ban_reason(&mut self) -> ::std::string::String {
        self.ban_reason.take().unwrap_or_else(|| ::std::string::String::new())
    }

    // optional fixed64 banner = 30;


    pub fn get_banner(&self) -> u64 {
        self.banner.unwrap_or(0)
    }
    pub fn clear_banner(&mut self) {
        self.banner = ::std::option::Option::None;
    }

    pub fn has_banner(&self) -> bool {
        self.banner.is_some()
    }

    // Param is passed by value, moved
    pub fn set_banner(&mut self, v: u64) {
        self.banner = ::std::option::Option::Some(v);
    }

    // optional bool can_be_deleted = 31;


    pub fn get_can_be_deleted(&self) -> bool {
        self.can_be_deleted.unwrap_or(false)
    }
    pub fn clear_can_be_deleted(&mut self) {
        self.can_be_deleted = ::std::option::Option::None;
    }

    pub fn has_can_be_deleted(&self) -> bool {
        self.can_be_deleted.is_some()
    }

    // Param is passed by value, moved
    pub fn set_can_be_deleted(&mut self, v: bool) {
        self.can_be_deleted = ::std::option::Option::Some(v);
    }

    // optional bool incompatible = 32;


    pub fn get_incompatible(&self) -> bool {
        self.incompatible.unwrap_or(false)
    }
    pub fn clear_incompatible(&mut self) {
        self.incompatible = ::std::option::Option::None;
    }

    pub fn has_incompatible(&self) -> bool {
        self.incompatible.is_some()
    }

    // Param is passed by value, moved
    pub fn set_incompatible(&mut self, v: bool) {
        self.incompatible = ::std::option::Option::Some(v);
    }

    // optional string app_name = 33;


    pub fn get_app_name(&self) -> &str {
        match self.app_name.as_ref() {
            Some(v) => &v,
            None => "",
        }
    }
    pub fn clear_app_name(&mut self) {
        self.app_name.clear();
    }

    pub fn has_app_name(&self) -> bool {
        self.app_name.is_some()
    }

    // Param is passed by value, moved
    pub fn set_app_name(&mut self, v: ::std::string::String) {
        self.app_name = ::protobuf::SingularField::some(v);
    }

    // Mutable pointer to the field.
    // If field is not initialized, it is initialized with default value first.
    pub fn mut_app_name(&mut self) -> &mut ::std::string::String {
        if self.app_name.is_none() {
            self.app_name.set_default();
        }
        self.app_name.as_mut().unwrap()
    }

    // Take field
    pub fn take_app_name(&mut self) -> ::std::string::String {
        self.app_name.take().unwrap_or_else(|| ::std::string::String::new())
    }

    // optional uint32 file_type = 34;


    pub fn get_file_type(&self) -> u32 {
        self.file_type.unwrap_or(0)
    }
    pub fn clear_file_type(&mut self) {
        self.file_type = ::std::option::Option::None;
    }

    pub fn has_file_type(&self) -> bool {
        self.file_type.is_some()
    }

    // Param is passed by value, moved
    pub fn set_file_type(&mut self, v: u32) {
        self.file_type = ::std::option::Option::Some(v);
    }

    // optional bool can_subscribe = 35;


    pub fn get_can_subscribe(&self) -> bool {
        self.can_subscribe.unwrap_or(false)
    }
    pub fn clear_can_subscribe(&mut self) {
        self.can_subscribe = ::std::option::Option::None;
    }

    pub fn has_can_subscribe(&self) -> bool {
        self.can_subscribe.is_some()
    }

    // Param is passed by value, moved
    pub fn set_can_subscribe(&mut self, v: bool) {
        self.can_subscribe = ::std::option::Option::Some(v);
    }

    // optional uint32 subscriptions = 36;


    pub fn get_subscriptions(&self) -> u32 {
        self.subscriptions.unwrap_or(0)
    }
    pub fn clear_subscriptions(&mut self) {
        self.subscriptions = ::std::option::Option::None;
    }

    pub fn has_subscriptions(&self) -> bool {
        self.subscriptions.is_some()
    }

    // Param is passed by value, moved
    pub fn set_subscriptions(&mut self, v: u32) {
        self.subscriptions = ::std::option::Option::Some(v);
    }

    // optional uint32 favorited = 37;


    pub fn get_favorited(&self) -> u32 {
        self.favorited.unwrap_or(0)
    }
    pub fn clear_favorited(&mut self) {
        self.favorited = ::std::option::Option::None;
    }

    pub fn has_favorited(&self) -> bool {
        self.favorited.is_some()
    }

    // Param is passed by value, moved
    pub fn set_favorited(&mut self, v: u32) {
        self.favorited = ::std::option::Option::Some(v);
    }

    // optional uint32 followers = 38;


    pub fn get_followers(&self) -> u32 {
        self.followers.unwrap_or(0)
    }
    pub fn clear_followers(&mut self) {
        self.followers = ::std::option::Option::None;
    }

    pub fn has_followers(&self) -> bool {
        self.followers.is_some()
    }

    // Param is passed by value, moved
    pub fn set_followers(&mut self, v: u32) {
        self.followers = ::std::option::Option::Some(v);
    }

    // optional uint32 lifetime_subscriptions = 39;


    pub fn get_lifetime_subscriptions(&self) -> u32 {
        self.lifetime_subscriptions.unwrap_or(0)
    }
    pub fn clear_lifetime_subscriptions(&mut self) {
        self.lifetime_subscriptions = ::std::option::Option::None;
    }

    pub fn has_lifetime_subscriptions(&self) -> bool {
        self.lifetime_subscriptions.is_some()
    }

    // Param is passed by value, moved
    pub fn set_lifetime_subscriptions(&mut self, v: u32) {
        self.lifetime_subscriptions = ::std::option::Option::Some(v);
    }

    // optional uint32 lifetime_favorited = 40;


    pub fn get_lifetime_favorited(&self) -> u32 {
        self.lifetime_favorited.unwrap_or(0)
    }
    pub fn clear_lifetime_favorited(&mut self) {
        self.lifetime_favorited = ::std::option::Option::None;
    }

    pub fn has_lifetime_favorited(&self) -> bool {
        self.lifetime_favorited.is_some()
    }

    // Param is passed by value, moved
    pub fn set_lifetime_favorited(&mut self, v: u32) {
        self.lifetime_favorited = ::std::option::Option::Some(v);
    }

    // optional uint32 lifetime_followers = 41;


    pub fn get_lifetime_followers(&self) -> u32 {
        self.lifetime_followers.unwrap_or(0)
    }
    pub fn clear_lifetime_followers(&mut self) {
        self.lifetime_followers = ::std::option::Option::None;
    }

    pub fn has_lifetime_followers(&self) -> bool {
        self.lifetime_followers.is_some()
    }

    // Param is passed by value, moved
    pub fn set_lifetime_followers(&mut self, v: u32) {
        self.lifetime_followers = ::std::option::Option::Some(v);
    }

    // optional uint64 lifetime_playtime = 62;


    pub fn get_lifetime_playtime(&self) -> u64 {
        self.lifetime_playtime.unwrap_or(0)
    }
    pub fn clear_lifetime_playtime(&mut self) {
        self.lifetime_playtime = ::std::option::Option::None;
    }

    pub fn has_lifetime_playtime(&self) -> bool {
        self.lifetime_playtime.is_some()
    }

    // Param is passed by value, moved
    pub fn set_lifetime_playtime(&mut self, v: u64) {
        self.lifetime_playtime = ::std::option::Option::Some(v);
    }

    // optional uint64 lifetime_playtime_sessions = 63;


    pub fn get_lifetime_playtime_sessions(&self) -> u64 {
        self.lifetime_playtime_sessions.unwrap_or(0)
    }
    pub fn clear_lifetime_playtime_sessions(&mut self) {
        self.lifetime_playtime_sessions = ::std::option::Option::None;
    }

    pub fn has_lifetime_playtime_sessions(&self) -> bool {
        self.lifetime_playtime_sessions.is_some()
    }

    // Param is passed by value, moved
    pub fn set_lifetime_playtime_sessions(&mut self, v: u64) {
        self.lifetime_playtime_sessions = ::std::option::Option::Some(v);
    }

    // optional uint32 views = 42;


    pub fn get_views(&self) -> u32 {
        self.views.unwrap_or(0)
    }
    pub fn clear_views(&mut self) {
        self.views = ::std::option::Option::None;
    }

    pub fn has_views(&self) -> bool {
        self.views.is_some()
    }

    // Param is passed by value, moved
    pub fn set_views(&mut self, v: u32) {
        self.views = ::std::option::Option::Some(v);
    }

    // optional uint32 image_width = 43;


    pub fn get_image_width(&self) -> u32 {
        self.image_width.unwrap_or(0)
    }
    pub fn clear_image_width(&mut self) {
        self.image_width = ::std::option::Option::None;
    }

    pub fn has_image_width(&self) -> bool {
        self.image_width.is_some()
    }

    // Param is passed by value, moved
    pub fn set_image_width(&mut self, v: u32) {
        self.image_width = ::std::option::Option::Some(v);
    }

    // optional uint32 image_height = 44;


    pub fn get_image_height(&self) -> u32 {
        self.image_height.unwrap_or(0)
    }
    pub fn clear_image_height(&mut self) {
        self.image_height = ::std::option::Option::None;
    }

    pub fn has_image_height(&self) -> bool {
        self.image_height.is_some()
    }

    // Param is passed by value, moved
    pub fn set_image_height(&mut self, v: u32) {
        self.image_height = ::std::option::Option::Some(v);
    }

    // optional string image_url = 45;


    pub fn get_image_url(&self) -> &str {
        match self.image_url.as_ref() {
            Some(v) => &v,
            None => "",
        }
    }
    pub fn clear_image_url(&mut self) {
        self.image_url.clear();
    }

    pub fn has_image_url(&self) -> bool {
        self.image_url.is_some()
    }

    // Param is passed by value, moved
    pub fn set_image_url(&mut self, v: ::std::string::String) {
        self.image_url = ::protobuf::SingularField::some(v);
    }

    // Mutable pointer to the field.
    // If field is not initialized, it is initialized with default value first.
    pub fn mut_image_url(&mut self) -> &mut ::std::string::String {
        if self.image_url.is_none() {
            self.image_url.set_default();
        }
        self.image_url.as_mut().unwrap()
    }

    // Take field
    pub fn take_image_url(&mut self) -> ::std::string::String {
        self.image_url.take().unwrap_or_else(|| ::std::string::String::new())
    }

    // optional bool spoiler_tag = 46;


    pub fn get_spoiler_tag(&self) -> bool {
        self.spoiler_tag.unwrap_or(false)
    }
    pub fn clear_spoiler_tag(&mut self) {
        self.spoiler_tag = ::std::option::Option::None;
    }

    pub fn has_spoiler_tag(&self) -> bool {
        self.spoiler_tag.is_some()
    }

    // Param is passed by value, moved
    pub fn set_spoiler_tag(&mut self, v: bool) {
        self.spoiler_tag = ::std::option::Option::Some(v);
    }

    // optional uint32 shortcutid = 47;


    pub fn get_shortcutid(&self) -> u32 {
        self.shortcutid.unwrap_or(0)
    }
    pub fn clear_shortcutid(&mut self) {
        self.shortcutid = ::std::option::Option::None;
    }

    pub fn has_shortcutid(&self) -> bool {
        self.shortcutid.is_some()
    }

    // Param is passed by value, moved
    pub fn set_shortcutid(&mut self, v: u32) {
        self.shortcutid = ::std::option::Option::Some(v);
    }

    // optional string shortcutname = 48;


    pub fn get_shortcutname(&self) -> &str {
        match self.shortcutname.as_ref() {
            Some(v) => &v,
            None => "",
        }
    }
    pub fn clear_shortcutname(&mut self) {
        self.shortcutname.clear();
    }

    pub fn has_shortcutname(&self) -> bool {
        self.shortcutname.is_some()
    }

    // Param is passed by value, moved
    pub fn set_shortcutname(&mut self, v: ::std::string::String) {
        self.shortcutname = ::protobuf::SingularField::some(v);
    }

    // Mutable pointer to the field.
    // If field is not initialized, it is initialized with default value first.
    pub fn mut_shortcutname(&mut self) -> &mut ::std::string::String {
        if self.shortcutname.is_none() {
            self.shortcutname.set_default();
        }
        self.shortcutname.as_mut().unwrap()
    }

    // Take field
    pub fn take_shortcutname(&mut self) -> ::std::string::String {
        self.shortcutname.take().unwrap_or_else(|| ::std::string::String::new())
    }

    // optional uint32 num_children = 49;


    pub fn get_num_children(&self) -> u32 {
        self.num_children.unwrap_or(0)
    }
    pub fn clear_num_children(&mut self) {
        self.num_children = ::std::option::Option::None;
    }

    pub fn has_num_children(&self) -> bool {
        self.num_children.is_some()
    }

    // Param is passed by value, moved
    pub fn set_num_children(&mut self, v: u32) {
        self.num_children = ::std::option::Option::Some(v);
    }

    // optional uint32 num_reports = 50;


    pub fn get_num_reports(&self) -> u32 {
        self.num_reports.unwrap_or(0)
    }
    pub fn clear_num_reports(&mut self) {
        self.num_reports = ::std::option::Option::None;
    }

    pub fn has_num_reports(&self) -> bool {
        self.num_reports.is_some()
    }

    // Param is passed by value, moved
    pub fn set_num_reports(&mut self, v: u32) {
        self.num_reports = ::std::option::Option::Some(v);
    }

    // repeated .PublishedFileDetails.Preview previews = 51;


    pub fn get_previews(&self) -> &[PublishedFileDetails_Preview] {
        &self.previews
    }
    pub fn clear_previews(&mut self) {
        self.previews.clear();
    }

    // Param is passed by value, moved
    pub fn set_previews(&mut self, v: ::protobuf::RepeatedField<PublishedFileDetails_Preview>) {
        self.previews = v;
    }

    // Mutable pointer to the field.
    pub fn mut_previews(&mut self) -> &mut ::protobuf::RepeatedField<PublishedFileDetails_Preview> {
        &mut self.previews
    }

    // Take field
    pub fn take_previews(&mut self) -> ::protobuf::RepeatedField<PublishedFileDetails_Preview> {
        ::std::mem::replace(&mut self.previews, ::protobuf::RepeatedField::new())
    }

    // repeated .PublishedFileDetails.Tag tags = 52;


    pub fn get_tags(&self) -> &[PublishedFileDetails_Tag] {
        &self.tags
    }
    pub fn clear_tags(&mut self) {
        self.tags.clear();
    }

    // Param is passed by value, moved
    pub fn set_tags(&mut self, v: ::protobuf::RepeatedField<PublishedFileDetails_Tag>) {
        self.tags = v;
    }

    // Mutable pointer to the field.
    pub fn mut_tags(&mut self) -> &mut ::protobuf::RepeatedField<PublishedFileDetails_Tag> {
        &mut self.tags
    }

    // Take field
    pub fn take_tags(&mut self) -> ::protobuf::RepeatedField<PublishedFileDetails_Tag> {
        ::std::mem::replace(&mut self.tags, ::protobuf::RepeatedField::new())
    }

    // repeated .PublishedFileDetails.Child children = 53;


    pub fn get_children(&self) -> &[PublishedFileDetails_Child] {
        &self.children
    }
    pub fn clear_children(&mut self) {
        self.children.clear();
    }

    // Param is passed by value, moved
    pub fn set_children(&mut self, v: ::protobuf::RepeatedField<PublishedFileDetails_Child>) {
        self.children = v;
    }

    // Mutable pointer to the field.
    pub fn mut_children(&mut self) -> &mut ::protobuf::RepeatedField<PublishedFileDetails_Child> {
        &mut self.children
    }

    // Take field
    pub fn take_children(&mut self) -> ::protobuf::RepeatedField<PublishedFileDetails_Child> {
        ::std::mem::replace(&mut self.children, ::protobuf::RepeatedField::new())
    }

    // repeated .PublishedFileDetails.KVTag kvtags = 54;


    pub fn get_kvtags(&self) -> &[PublishedFileDetails_KVTag] {
        &self.kvtags
    }
    pub fn clear_kvtags(&mut self) {
        self.kvtags.clear();
    }

    // Param is passed by value, moved
    pub fn set_kvtags(&mut self, v: ::protobuf::RepeatedField<PublishedFileDetails_KVTag>) {
        self.kvtags = v;
    }

    // Mutable pointer to the field.
    pub fn mut_kvtags(&mut self) -> &mut ::protobuf::RepeatedField<PublishedFileDetails_KVTag> {
        &mut self.kvtags
    }

    // Take field
    pub fn take_kvtags(&mut self) -> ::protobuf::RepeatedField<PublishedFileDetails_KVTag> {
        ::std::mem::replace(&mut self.kvtags, ::protobuf::RepeatedField::new())
    }

    // optional .PublishedFileDetails.VoteData vote_data = 55;


    pub fn get_vote_data(&self) -> &PublishedFileDetails_VoteData {
        self.vote_data.as_ref().unwrap_or_else(|| <PublishedFileDetails_VoteData as ::protobuf::Message>::default_instance())
    }
    pub fn clear_vote_data(&mut self) {
        self.vote_data.clear();
    }

    pub fn has_vote_data(&self) -> bool {
        self.vote_data.is_some()
    }

    // Param is passed by value, moved
    pub fn set_vote_data(&mut self, v: PublishedFileDetails_VoteData) {
        self.vote_data = ::protobuf::SingularPtrField::some(v);
    }

    // Mutable pointer to the field.
    // If field is not initialized, it is initialized with default value first.
    pub fn mut_vote_data(&mut self) -> &mut PublishedFileDetails_VoteData {
        if self.vote_data.is_none() {
            self.vote_data.set_default();
        }
        self.vote_data.as_mut().unwrap()
    }

    // Take field
    pub fn take_vote_data(&mut self) -> PublishedFileDetails_VoteData {
        self.vote_data.take().unwrap_or_else(|| PublishedFileDetails_VoteData::new())
    }

    // optional .PublishedFileDetails.PlaytimeStats playtime_stats = 64;


    pub fn get_playtime_stats(&self) -> &PublishedFileDetails_PlaytimeStats {
        self.playtime_stats.as_ref().unwrap_or_else(|| <PublishedFileDetails_PlaytimeStats as ::protobuf::Message>::default_instance())
    }
    pub fn clear_playtime_stats(&mut self) {
        self.playtime_stats.clear();
    }

    pub fn has_playtime_stats(&self) -> bool {
        self.playtime_stats.is_some()
    }

    // Param is passed by value, moved
    pub fn set_playtime_stats(&mut self, v: PublishedFileDetails_PlaytimeStats) {
        self.playtime_stats = ::protobuf::SingularPtrField::some(v);
    }

    // Mutable pointer to the field.
    // If field is not initialized, it is initialized with default value first.
    pub fn mut_playtime_stats(&mut self) -> &mut PublishedFileDetails_PlaytimeStats {
        if self.playtime_stats.is_none() {
            self.playtime_stats.set_default();
        }
        self.playtime_stats.as_mut().unwrap()
    }

    // Take field
    pub fn take_playtime_stats(&mut self) -> PublishedFileDetails_PlaytimeStats {
        self.playtime_stats.take().unwrap_or_else(|| PublishedFileDetails_PlaytimeStats::new())
    }

    // optional uint32 time_subscribed = 56;


    pub fn get_time_subscribed(&self) -> u32 {
        self.time_subscribed.unwrap_or(0)
    }
    pub fn clear_time_subscribed(&mut self) {
        self.time_subscribed = ::std::option::Option::None;
    }

    pub fn has_time_subscribed(&self) -> bool {
        self.time_subscribed.is_some()
    }

    // Param is passed by value, moved
    pub fn set_time_subscribed(&mut self, v: u32) {
        self.time_subscribed = ::std::option::Option::Some(v);
    }

    // optional .PublishedFileDetails.ForSaleData for_sale_data = 57;


    pub fn get_for_sale_data(&self) -> &PublishedFileDetails_ForSaleData {
        self.for_sale_data.as_ref().unwrap_or_else(|| <PublishedFileDetails_ForSaleData as ::protobuf::Message>::default_instance())
    }
    pub fn clear_for_sale_data(&mut self) {
        self.for_sale_data.clear();
    }

    pub fn has_for_sale_data(&self) -> bool {
        self.for_sale_data.is_some()
    }

    // Param is passed by value, moved
    pub fn set_for_sale_data(&mut self, v: PublishedFileDetails_ForSaleData) {
        self.for_sale_data = ::protobuf::SingularPtrField::some(v);
    }

    // Mutable pointer to the field.
    // If field is not initialized, it is initialized with default value first.
    pub fn mut_for_sale_data(&mut self) -> &mut PublishedFileDetails_ForSaleData {
        if self.for_sale_data.is_none() {
            self.for_sale_data.set_default();
        }
        self.for_sale_data.as_mut().unwrap()
    }

    // Take field
    pub fn take_for_sale_data(&mut self) -> PublishedFileDetails_ForSaleData {
        self.for_sale_data.take().unwrap_or_else(|| PublishedFileDetails_ForSaleData::new())
    }

    // optional string metadata = 58;


    pub fn get_metadata(&self) -> &str {
        match self.metadata.as_ref() {
            Some(v) => &v,
            None => "",
        }
    }
    pub fn clear_metadata(&mut self) {
        self.metadata.clear();
    }

    pub fn has_metadata(&self) -> bool {
        self.metadata.is_some()
    }

    // Param is passed by value, moved
    pub fn set_metadata(&mut self, v: ::std::string::String) {
        self.metadata = ::protobuf::SingularField::some(v);
    }

    // Mutable pointer to the field.
    // If field is not initialized, it is initialized with default value first.
    pub fn mut_metadata(&mut self) -> &mut ::std::string::String {
        if self.metadata.is_none() {
            self.metadata.set_default();
        }
        self.metadata.as_mut().unwrap()
    }

    // Take field
    pub fn take_metadata(&mut self) -> ::std::string::String {
        self.metadata.take().unwrap_or_else(|| ::std::string::String::new())
    }

    // optional int32 language = 61;


    pub fn get_language(&self) -> i32 {
        self.language.unwrap_or(0i32)
    }
    pub fn clear_language(&mut self) {
        self.language = ::std::option::Option::None;
    }

    pub fn has_language(&self) -> bool {
        self.language.is_some()
    }

    // Param is passed by value, moved
    pub fn set_language(&mut self, v: i32) {
        self.language = ::std::option::Option::Some(v);
    }

    // optional bool maybe_inappropriate_sex = 65;


    pub fn get_maybe_inappropriate_sex(&self) -> bool {
        self.maybe_inappropriate_sex.unwrap_or(false)
    }
    pub fn clear_maybe_inappropriate_sex(&mut self) {
        self.maybe_inappropriate_sex = ::std::option::Option::None;
    }

    pub fn has_maybe_inappropriate_sex(&self) -> bool {
        self.maybe_inappropriate_sex.is_some()
    }

    // Param is passed by value, moved
    pub fn set_maybe_inappropriate_sex(&mut self, v: bool) {
        self.maybe_inappropriate_sex = ::std::option::Option::Some(v);
    }

    // optional bool maybe_inappropriate_violence = 66;


    pub fn get_maybe_inappropriate_violence(&self) -> bool {
        self.maybe_inappropriate_violence.unwrap_or(false)
    }
    pub fn clear_maybe_inappropriate_violence(&mut self) {
        self.maybe_inappropriate_violence = ::std::option::Option::None;
    }

    pub fn has_maybe_inappropriate_violence(&self) -> bool {
        self.maybe_inappropriate_violence.is_some()
    }

    // Param is passed by value, moved
    pub fn set_maybe_inappropriate_violence(&mut self, v: bool) {
        self.maybe_inappropriate_violence = ::std::option::Option::Some(v);
    }

    // optional uint64 revision_change_number = 67;


    pub fn get_revision_change_number(&self) -> u64 {
        self.revision_change_number.unwrap_or(0)
    }
    pub fn clear_revision_change_number(&mut self) {
        self.revision_change_number = ::std::option::Option::None;
    }

    pub fn has_revision_change_number(&self) -> bool {
        self.revision_change_number.is_some()
    }

    // Param is passed by value, moved
    pub fn set_revision_change_number(&mut self, v: u64) {
        self.revision_change_number = ::std::option::Option::Some(v);
    }

    // optional .EPublishedFileRevision revision = 68;


    pub fn get_revision(&self) -> EPublishedFileRevision {
        self.revision.unwrap_or(EPublishedFileRevision::k_EPublishedFileRevision_Default)
    }
    pub fn clear_revision(&mut self) {
        self.revision = ::std::option::Option::None;
    }

    pub fn has_revision(&self) -> bool {
        self.revision.is_some()
    }

    // Param is passed by value, moved
    pub fn set_revision(&mut self, v: EPublishedFileRevision) {
        self.revision = ::std::option::Option::Some(v);
    }

    // repeated .EPublishedFileRevision available_revisions = 69;


    pub fn get_available_revisions(&self) -> &[EPublishedFileRevision] {
        &self.available_revisions
    }
    pub fn clear_available_revisions(&mut self) {
        self.available_revisions.clear();
    }

    // Param is passed by value, moved
    pub fn set_available_revisions(&mut self, v: ::std::vec::Vec<EPublishedFileRevision>) {
        self.available_revisions = v;
    }

    // Mutable pointer to the field.
    pub fn mut_available_revisions(&mut self) -> &mut ::std::vec::Vec<EPublishedFileRevision> {
        &mut self.available_revisions
    }

    // Take field
    pub fn take_available_revisions(&mut self) -> ::std::vec::Vec<EPublishedFileRevision> {
        ::std::mem::replace(&mut self.available_revisions, ::std::vec::Vec::new())
    }

    // repeated .PublishedFileDetails.Reaction reactions = 70;


    pub fn get_reactions(&self) -> &[PublishedFileDetails_Reaction] {
        &self.reactions
    }
    pub fn clear_reactions(&mut self) {
        self.reactions.clear();
    }

    // Param is passed by value, moved
    pub fn set_reactions(&mut self, v: ::protobuf::RepeatedField<PublishedFileDetails_Reaction>) {
        self.reactions = v;
    }

    // Mutable pointer to the field.
    pub fn mut_reactions(&mut self) -> &mut ::protobuf::RepeatedField<PublishedFileDetails_Reaction> {
        &mut self.reactions
    }

    // Take field
    pub fn take_reactions(&mut self) -> ::protobuf::RepeatedField<PublishedFileDetails_Reaction> {
        ::std::mem::replace(&mut self.reactions, ::protobuf::RepeatedField::new())
    }

    // optional .EBanContentCheckResult ban_text_check_result = 71;


    pub fn get_ban_text_check_result(&self) -> super::enums::EBanContentCheckResult {
        self.ban_text_check_result.unwrap_or(super::enums::EBanContentCheckResult::k_EBanContentCheckResult_NotScanned)
    }
    pub fn clear_ban_text_check_result(&mut self) {
        self.ban_text_check_result = ::std::option::Option::None;
    }

    pub fn has_ban_text_check_result(&self) -> bool {
        self.ban_text_check_result.is_some()
    }

    // Param is passed by value, moved
    pub fn set_ban_text_check_result(&mut self, v: super::enums::EBanContentCheckResult) {
        self.ban_text_check_result = ::std::option::Option::Some(v);
    }
}

impl ::protobuf::Message for PublishedFileDetails {
    fn is_initialized(&self) -> bool {
        for v in &self.previews {
            if !v.is_initialized() {
                return false;
            }
        };
        for v in &self.tags {
            if !v.is_initialized() {
                return false;
            }
        };
        for v in &self.children {
            if !v.is_initialized() {
                return false;
            }
        };
        for v in &self.kvtags {
            if !v.is_initialized() {
                return false;
            }
        };
        for v in &self.vote_data {
            if !v.is_initialized() {
                return false;
            }
        };
        for v in &self.playtime_stats {
            if !v.is_initialized() {
                return false;
            }
        };
        for v in &self.for_sale_data {
            if !v.is_initialized() {
                return false;
            }
        };
        for v in &self.reactions {
            if !v.is_initialized() {
                return false;
            }
        };
        true
    }

    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
        while !is.eof()? {
            let (field_number, wire_type) = is.read_tag_unpack()?;
            match field_number {
                1 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_uint32()?;
                    self.result = ::std::option::Option::Some(tmp);
                },
                2 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_uint64()?;
                    self.publishedfileid = ::std::option::Option::Some(tmp);
                },
                3 => {
                    if wire_type != ::protobuf::wire_format::WireTypeFixed64 {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_fixed64()?;
                    self.creator = ::std::option::Option::Some(tmp);
                },
                4 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_uint32()?;
                    self.creator_appid = ::std::option::Option::Some(tmp);
                },
                5 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_uint32()?;
                    self.consumer_appid = ::std::option::Option::Some(tmp);
                },
                6 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_uint32()?;
                    self.consumer_shortcutid = ::std::option::Option::Some(tmp);
                },
                7 => {
                    ::protobuf::rt::read_singular_string_into(wire_type, is, &mut self.filename)?;
                },
                8 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_uint64()?;
                    self.file_size = ::std::option::Option::Some(tmp);
                },
                9 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_uint64()?;
                    self.preview_file_size = ::std::option::Option::Some(tmp);
                },
                10 => {
                    ::protobuf::rt::read_singular_string_into(wire_type, is, &mut self.file_url)?;
                },
                11 => {
                    ::protobuf::rt::read_singular_string_into(wire_type, is, &mut self.preview_url)?;
                },
                12 => {
                    ::protobuf::rt::read_singular_string_into(wire_type, is, &mut self.youtubevideoid)?;
                },
                13 => {
                    ::protobuf::rt::read_singular_string_into(wire_type, is, &mut self.url)?;
                },
                14 => {
                    if wire_type != ::protobuf::wire_format::WireTypeFixed64 {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_fixed64()?;
                    self.hcontent_file = ::std::option::Option::Some(tmp);
                },
                15 => {
                    if wire_type != ::protobuf::wire_format::WireTypeFixed64 {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_fixed64()?;
                    self.hcontent_preview = ::std::option::Option::Some(tmp);
                },
                16 => {
                    ::protobuf::rt::read_singular_string_into(wire_type, is, &mut self.title)?;
                },
                17 => {
                    ::protobuf::rt::read_singular_string_into(wire_type, is, &mut self.file_description)?;
                },
                18 => {
                    ::protobuf::rt::read_singular_string_into(wire_type, is, &mut self.short_description)?;
                },
                19 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_uint32()?;
                    self.time_created = ::std::option::Option::Some(tmp);
                },
                20 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_uint32()?;
                    self.time_updated = ::std::option::Option::Some(tmp);
                },
                21 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_uint32()?;
                    self.visibility = ::std::option::Option::Some(tmp);
                },
                22 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_uint32()?;
                    self.flags = ::std::option::Option::Some(tmp);
                },
                23 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_bool()?;
                    self.workshop_file = ::std::option::Option::Some(tmp);
                },
                24 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_bool()?;
                    self.workshop_accepted = ::std::option::Option::Some(tmp);
                },
                25 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_bool()?;
                    self.show_subscribe_all = ::std::option::Option::Some(tmp);
                },
                26 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_int32()?;
                    self.num_comments_developer = ::std::option::Option::Some(tmp);
                },
                27 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_int32()?;
                    self.num_comments_public = ::std::option::Option::Some(tmp);
                },
                28 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_bool()?;
                    self.banned = ::std::option::Option::Some(tmp);
                },
                29 => {
                    ::protobuf::rt::read_singular_string_into(wire_type, is, &mut self.ban_reason)?;
                },
                30 => {
                    if wire_type != ::protobuf::wire_format::WireTypeFixed64 {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_fixed64()?;
                    self.banner = ::std::option::Option::Some(tmp);
                },
                31 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_bool()?;
                    self.can_be_deleted = ::std::option::Option::Some(tmp);
                },
                32 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_bool()?;
                    self.incompatible = ::std::option::Option::Some(tmp);
                },
                33 => {
                    ::protobuf::rt::read_singular_string_into(wire_type, is, &mut self.app_name)?;
                },
                34 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_uint32()?;
                    self.file_type = ::std::option::Option::Some(tmp);
                },
                35 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_bool()?;
                    self.can_subscribe = ::std::option::Option::Some(tmp);
                },
                36 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_uint32()?;
                    self.subscriptions = ::std::option::Option::Some(tmp);
                },
                37 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_uint32()?;
                    self.favorited = ::std::option::Option::Some(tmp);
                },
                38 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_uint32()?;
                    self.followers = ::std::option::Option::Some(tmp);
                },
                39 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_uint32()?;
                    self.lifetime_subscriptions = ::std::option::Option::Some(tmp);
                },
                40 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_uint32()?;
                    self.lifetime_favorited = ::std::option::Option::Some(tmp);
                },
                41 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_uint32()?;
                    self.lifetime_followers = ::std::option::Option::Some(tmp);
                },
                62 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_uint64()?;
                    self.lifetime_playtime = ::std::option::Option::Some(tmp);
                },
                63 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_uint64()?;
                    self.lifetime_playtime_sessions = ::std::option::Option::Some(tmp);
                },
                42 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_uint32()?;
                    self.views = ::std::option::Option::Some(tmp);
                },
                43 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_uint32()?;
                    self.image_width = ::std::option::Option::Some(tmp);
                },
                44 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_uint32()?;
                    self.image_height = ::std::option::Option::Some(tmp);
                },
                45 => {
                    ::protobuf::rt::read_singular_string_into(wire_type, is, &mut self.image_url)?;
                },
                46 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_bool()?;
                    self.spoiler_tag = ::std::option::Option::Some(tmp);
                },
                47 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_uint32()?;
                    self.shortcutid = ::std::option::Option::Some(tmp);
                },
                48 => {
                    ::protobuf::rt::read_singular_string_into(wire_type, is, &mut self.shortcutname)?;
                },
                49 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_uint32()?;
                    self.num_children = ::std::option::Option::Some(tmp);
                },
                50 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_uint32()?;
                    self.num_reports = ::std::option::Option::Some(tmp);
                },
                51 => {
                    ::protobuf::rt::read_repeated_message_into(wire_type, is, &mut self.previews)?;
                },
                52 => {
                    ::protobuf::rt::read_repeated_message_into(wire_type, is, &mut self.tags)?;
                },
                53 => {
                    ::protobuf::rt::read_repeated_message_into(wire_type, is, &mut self.children)?;
                },
                54 => {
                    ::protobuf::rt::read_repeated_message_into(wire_type, is, &mut self.kvtags)?;
                },
                55 => {
                    ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.vote_data)?;
                },
                64 => {
                    ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.playtime_stats)?;
                },
                56 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_uint32()?;
                    self.time_subscribed = ::std::option::Option::Some(tmp);
                },
                57 => {
                    ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.for_sale_data)?;
                },
                58 => {
                    ::protobuf::rt::read_singular_string_into(wire_type, is, &mut self.metadata)?;
                },
                61 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_int32()?;
                    self.language = ::std::option::Option::Some(tmp);
                },
                65 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_bool()?;
                    self.maybe_inappropriate_sex = ::std::option::Option::Some(tmp);
                },
                66 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_bool()?;
                    self.maybe_inappropriate_violence = ::std::option::Option::Some(tmp);
                },
                67 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_uint64()?;
                    self.revision_change_number = ::std::option::Option::Some(tmp);
                },
                68 => {
                    ::protobuf::rt::read_proto2_enum_with_unknown_fields_into(wire_type, is, &mut self.revision, 68, &mut self.unknown_fields)?
                },
                69 => {
                    ::protobuf::rt::read_repeated_enum_with_unknown_fields_into(wire_type, is, &mut self.available_revisions, 69, &mut self.unknown_fields)?
                },
                70 => {
                    ::protobuf::rt::read_repeated_message_into(wire_type, is, &mut self.reactions)?;
                },
                71 => {
                    ::protobuf::rt::read_proto2_enum_with_unknown_fields_into(wire_type, is, &mut self.ban_text_check_result, 71, &mut self.unknown_fields)?
                },
                _ => {
                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
                },
            };
        }
        ::std::result::Result::Ok(())
    }

    // Compute sizes of nested messages
    #[allow(unused_variables)]
    fn compute_size(&self) -> u32 {
        let mut my_size = 0;
        if let Some(v) = self.result {
            my_size += ::protobuf::rt::value_size(1, v, ::protobuf::wire_format::WireTypeVarint);
        }
        if let Some(v) = self.publishedfileid {
            my_size += ::protobuf::rt::value_size(2, v, ::protobuf::wire_format::WireTypeVarint);
        }
        if let Some(v) = self.creator {
            my_size += 9;
        }
        if let Some(v) = self.creator_appid {
            my_size += ::protobuf::rt::value_size(4, v, ::protobuf::wire_format::WireTypeVarint);
        }
        if let Some(v) = self.consumer_appid {
            my_size += ::protobuf::rt::value_size(5, v, ::protobuf::wire_format::WireTypeVarint);
        }
        if let Some(v) = self.consumer_shortcutid {
            my_size += ::protobuf::rt::value_size(6, v, ::protobuf::wire_format::WireTypeVarint);
        }
        if let Some(ref v) = self.filename.as_ref() {
            my_size += ::protobuf::rt::string_size(7, &v);
        }
        if let Some(v) = self.file_size {
            my_size += ::protobuf::rt::value_size(8, v, ::protobuf::wire_format::WireTypeVarint);
        }
        if let Some(v) = self.preview_file_size {
            my_size += ::protobuf::rt::value_size(9, v, ::protobuf::wire_format::WireTypeVarint);
        }
        if let Some(ref v) = self.file_url.as_ref() {
            my_size += ::protobuf::rt::string_size(10, &v);
        }
        if let Some(ref v) = self.preview_url.as_ref() {
            my_size += ::protobuf::rt::string_size(11, &v);
        }
        if let Some(ref v) = self.youtubevideoid.as_ref() {
            my_size += ::protobuf::rt::string_size(12, &v);
        }
        if let Some(ref v) = self.url.as_ref() {
            my_size += ::protobuf::rt::string_size(13, &v);
        }
        if let Some(v) = self.hcontent_file {
            my_size += 9;
        }
        if let Some(v) = self.hcontent_preview {
            my_size += 9;
        }
        if let Some(ref v) = self.title.as_ref() {
            my_size += ::protobuf::rt::string_size(16, &v);
        }
        if let Some(ref v) = self.file_description.as_ref() {
            my_size += ::protobuf::rt::string_size(17, &v);
        }
        if let Some(ref v) = self.short_description.as_ref() {
            my_size += ::protobuf::rt::string_size(18, &v);
        }
        if let Some(v) = self.time_created {
            my_size += ::protobuf::rt::value_size(19, v, ::protobuf::wire_format::WireTypeVarint);
        }
        if let Some(v) = self.time_updated {
            my_size += ::protobuf::rt::value_size(20, v, ::protobuf::wire_format::WireTypeVarint);
        }
        if let Some(v) = self.visibility {
            my_size += ::protobuf::rt::value_size(21, v, ::protobuf::wire_format::WireTypeVarint);
        }
        if let Some(v) = self.flags {
            my_size += ::protobuf::rt::value_size(22, v, ::protobuf::wire_format::WireTypeVarint);
        }
        if let Some(v) = self.workshop_file {
            my_size += 3;
        }
        if let Some(v) = self.workshop_accepted {
            my_size += 3;
        }
        if let Some(v) = self.show_subscribe_all {
            my_size += 3;
        }
        if let Some(v) = self.num_comments_developer {
            my_size += ::protobuf::rt::value_size(26, v, ::protobuf::wire_format::WireTypeVarint);
        }
        if let Some(v) = self.num_comments_public {
            my_size += ::protobuf::rt::value_size(27, v, ::protobuf::wire_format::WireTypeVarint);
        }
        if let Some(v) = self.banned {
            my_size += 3;
        }
        if let Some(ref v) = self.ban_reason.as_ref() {
            my_size += ::protobuf::rt::string_size(29, &v);
        }
        if let Some(v) = self.banner {
            my_size += 10;
        }
        if let Some(v) = self.can_be_deleted {
            my_size += 3;
        }
        if let Some(v) = self.incompatible {
            my_size += 3;
        }
        if let Some(ref v) = self.app_name.as_ref() {
            my_size += ::protobuf::rt::string_size(33, &v);
        }
        if let Some(v) = self.file_type {
            my_size += ::protobuf::rt::value_size(34, v, ::protobuf::wire_format::WireTypeVarint);
        }
        if let Some(v) = self.can_subscribe {
            my_size += 3;
        }
        if let Some(v) = self.subscriptions {
            my_size += ::protobuf::rt::value_size(36, v, ::protobuf::wire_format::WireTypeVarint);
        }
        if let Some(v) = self.favorited {
            my_size += ::protobuf::rt::value_size(37, v, ::protobuf::wire_format::WireTypeVarint);
        }
        if let Some(v) = self.followers {
            my_size += ::protobuf::rt::value_size(38, v, ::protobuf::wire_format::WireTypeVarint);
        }
        if let Some(v) = self.lifetime_subscriptions {
            my_size += ::protobuf::rt::value_size(39, v, ::protobuf::wire_format::WireTypeVarint);
        }
        if let Some(v) = self.lifetime_favorited {
            my_size += ::protobuf::rt::value_size(40, v, ::protobuf::wire_format::WireTypeVarint);
        }
        if let Some(v) = self.lifetime_followers {
            my_size += ::protobuf::rt::value_size(41, v, ::protobuf::wire_format::WireTypeVarint);
        }
        if let Some(v) = self.lifetime_playtime {
            my_size += ::protobuf::rt::value_size(62, v, ::protobuf::wire_format::WireTypeVarint);
        }
        if let Some(v) = self.lifetime_playtime_sessions {
            my_size += ::protobuf::rt::value_size(63, v, ::protobuf::wire_format::WireTypeVarint);
        }
        if let Some(v) = self.views {
            my_size += ::protobuf::rt::value_size(42, v, ::protobuf::wire_format::WireTypeVarint);
        }
        if let Some(v) = self.image_width {
            my_size += ::protobuf::rt::value_size(43, v, ::protobuf::wire_format::WireTypeVarint);
        }
        if let Some(v) = self.image_height {
            my_size += ::protobuf::rt::value_size(44, v, ::protobuf::wire_format::WireTypeVarint);
        }
        if let Some(ref v) = self.image_url.as_ref() {
            my_size += ::protobuf::rt::string_size(45, &v);
        }
        if let Some(v) = self.spoiler_tag {
            my_size += 3;
        }
        if let Some(v) = self.shortcutid {
            my_size += ::protobuf::rt::value_size(47, v, ::protobuf::wire_format::WireTypeVarint);
        }
        if let Some(ref v) = self.shortcutname.as_ref() {
            my_size += ::protobuf::rt::string_size(48, &v);
        }
        if let Some(v) = self.num_children {
            my_size += ::protobuf::rt::value_size(49, v, ::protobuf::wire_format::WireTypeVarint);
        }
        if let Some(v) = self.num_reports {
            my_size += ::protobuf::rt::value_size(50, v, ::protobuf::wire_format::WireTypeVarint);
        }
        for value in &self.previews {
            let len = value.compute_size();
            my_size += 2 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
        };
        for value in &self.tags {
            let len = value.compute_size();
            my_size += 2 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
        };
        for value in &self.children {
            let len = value.compute_size();
            my_size += 2 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
        };
        for value in &self.kvtags {
            let len = value.compute_size();
            my_size += 2 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
        };
        if let Some(ref v) = self.vote_data.as_ref() {
            let len = v.compute_size();
            my_size += 2 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
        }
        if let Some(ref v) = self.playtime_stats.as_ref() {
            let len = v.compute_size();
            my_size += 2 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
        }
        if let Some(v) = self.time_subscribed {
            my_size += ::protobuf::rt::value_size(56, v, ::protobuf::wire_format::WireTypeVarint);
        }
        if let Some(ref v) = self.for_sale_data.as_ref() {
            let len = v.compute_size();
            my_size += 2 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
        }
        if let Some(ref v) = self.metadata.as_ref() {
            my_size += ::protobuf::rt::string_size(58, &v);
        }
        if let Some(v) = self.language {
            my_size += ::protobuf::rt::value_size(61, v, ::protobuf::wire_format::WireTypeVarint);
        }
        if let Some(v) = self.maybe_inappropriate_sex {
            my_size += 3;
        }
        if let Some(v) = self.maybe_inappropriate_violence {
            my_size += 3;
        }
        if let Some(v) = self.revision_change_number {
            my_size += ::protobuf::rt::value_size(67, v, ::protobuf::wire_format::WireTypeVarint);
        }
        if let Some(v) = self.revision {
            my_size += ::protobuf::rt::enum_size(68, v);
        }
        for value in &self.available_revisions {
            my_size += ::protobuf::rt::enum_size(69, *value);
        };
        for value in &self.reactions {
            let len = value.compute_size();
            my_size += 2 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
        };
        if let Some(v) = self.ban_text_check_result {
            my_size += ::protobuf::rt::enum_size(71, v);
        }
        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
        self.cached_size.set(my_size);
        my_size
    }

    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
        if let Some(v) = self.result {
            os.write_uint32(1, v)?;
        }
        if let Some(v) = self.publishedfileid {
            os.write_uint64(2, v)?;
        }
        if let Some(v) = self.creator {
            os.write_fixed64(3, v)?;
        }
        if let Some(v) = self.creator_appid {
            os.write_uint32(4, v)?;
        }
        if let Some(v) = self.consumer_appid {
            os.write_uint32(5, v)?;
        }
        if let Some(v) = self.consumer_shortcutid {
            os.write_uint32(6, v)?;
        }
        if let Some(ref v) = self.filename.as_ref() {
            os.write_string(7, &v)?;
        }
        if let Some(v) = self.file_size {
            os.write_uint64(8, v)?;
        }
        if let Some(v) = self.preview_file_size {
            os.write_uint64(9, v)?;
        }
        if let Some(ref v) = self.file_url.as_ref() {
            os.write_string(10, &v)?;
        }
        if let Some(ref v) = self.preview_url.as_ref() {
            os.write_string(11, &v)?;
        }
        if let Some(ref v) = self.youtubevideoid.as_ref() {
            os.write_string(12, &v)?;
        }
        if let Some(ref v) = self.url.as_ref() {
            os.write_string(13, &v)?;
        }
        if let Some(v) = self.hcontent_file {
            os.write_fixed64(14, v)?;
        }
        if let Some(v) = self.hcontent_preview {
            os.write_fixed64(15, v)?;
        }
        if let Some(ref v) = self.title.as_ref() {
            os.write_string(16, &v)?;
        }
        if let Some(ref v) = self.file_description.as_ref() {
            os.write_string(17, &v)?;
        }
        if let Some(ref v) = self.short_description.as_ref() {
            os.write_string(18, &v)?;
        }
        if let Some(v) = self.time_created {
            os.write_uint32(19, v)?;
        }
        if let Some(v) = self.time_updated {
            os.write_uint32(20, v)?;
        }
        if let Some(v) = self.visibility {
            os.write_uint32(21, v)?;
        }
        if let Some(v) = self.flags {
            os.write_uint32(22, v)?;
        }
        if let Some(v) = self.workshop_file {
            os.write_bool(23, v)?;
        }
        if let Some(v) = self.workshop_accepted {
            os.write_bool(24, v)?;
        }
        if let Some(v) = self.show_subscribe_all {
            os.write_bool(25, v)?;
        }
        if let Some(v) = self.num_comments_developer {
            os.write_int32(26, v)?;
        }
        if let Some(v) = self.num_comments_public {
            os.write_int32(27, v)?;
        }
        if let Some(v) = self.banned {
            os.write_bool(28, v)?;
        }
        if let Some(ref v) = self.ban_reason.as_ref() {
            os.write_string(29, &v)?;
        }
        if let Some(v) = self.banner {
            os.write_fixed64(30, v)?;
        }
        if let Some(v) = self.can_be_deleted {
            os.write_bool(31, v)?;
        }
        if let Some(v) = self.incompatible {
            os.write_bool(32, v)?;
        }
        if let Some(ref v) = self.app_name.as_ref() {
            os.write_string(33, &v)?;
        }
        if let Some(v) = self.file_type {
            os.write_uint32(34, v)?;
        }
        if let Some(v) = self.can_subscribe {
            os.write_bool(35, v)?;
        }
        if let Some(v) = self.subscriptions {
            os.write_uint32(36, v)?;
        }
        if let Some(v) = self.favorited {
            os.write_uint32(37, v)?;
        }
        if let Some(v) = self.followers {
            os.write_uint32(38, v)?;
        }
        if let Some(v) = self.lifetime_subscriptions {
            os.write_uint32(39, v)?;
        }
        if let Some(v) = self.lifetime_favorited {
            os.write_uint32(40, v)?;
        }
        if let Some(v) = self.lifetime_followers {
            os.write_uint32(41, v)?;
        }
        if let Some(v) = self.lifetime_playtime {
            os.write_uint64(62, v)?;
        }
        if let Some(v) = self.lifetime_playtime_sessions {
            os.write_uint64(63, v)?;
        }
        if let Some(v) = self.views {
            os.write_uint32(42, v)?;
        }
        if let Some(v) = self.image_width {
            os.write_uint32(43, v)?;
        }
        if let Some(v) = self.image_height {
            os.write_uint32(44, v)?;
        }
        if let Some(ref v) = self.image_url.as_ref() {
            os.write_string(45, &v)?;
        }
        if let Some(v) = self.spoiler_tag {
            os.write_bool(46, v)?;
        }
        if let Some(v) = self.shortcutid {
            os.write_uint32(47, v)?;
        }
        if let Some(ref v) = self.shortcutname.as_ref() {
            os.write_string(48, &v)?;
        }
        if let Some(v) = self.num_children {
            os.write_uint32(49, v)?;
        }
        if let Some(v) = self.num_reports {
            os.write_uint32(50, v)?;
        }
        for v in &self.previews {
            os.write_tag(51, ::protobuf::wire_format::WireTypeLengthDelimited)?;
            os.write_raw_varint32(v.get_cached_size())?;
            v.write_to_with_cached_sizes(os)?;
        };
        for v in &self.tags {
            os.write_tag(52, ::protobuf::wire_format::WireTypeLengthDelimited)?;
            os.write_raw_varint32(v.get_cached_size())?;
            v.write_to_with_cached_sizes(os)?;
        };
        for v in &self.children {
            os.write_tag(53, ::protobuf::wire_format::WireTypeLengthDelimited)?;
            os.write_raw_varint32(v.get_cached_size())?;
            v.write_to_with_cached_sizes(os)?;
        };
        for v in &self.kvtags {
            os.write_tag(54, ::protobuf::wire_format::WireTypeLengthDelimited)?;
            os.write_raw_varint32(v.get_cached_size())?;
            v.write_to_with_cached_sizes(os)?;
        };
        if let Some(ref v) = self.vote_data.as_ref() {
            os.write_tag(55, ::protobuf::wire_format::WireTypeLengthDelimited)?;
            os.write_raw_varint32(v.get_cached_size())?;
            v.write_to_with_cached_sizes(os)?;
        }
        if let Some(ref v) = self.playtime_stats.as_ref() {
            os.write_tag(64, ::protobuf::wire_format::WireTypeLengthDelimited)?;
            os.write_raw_varint32(v.get_cached_size())?;
            v.write_to_with_cached_sizes(os)?;
        }
        if let Some(v) = self.time_subscribed {
            os.write_uint32(56, v)?;
        }
        if let Some(ref v) = self.for_sale_data.as_ref() {
            os.write_tag(57, ::protobuf::wire_format::WireTypeLengthDelimited)?;
            os.write_raw_varint32(v.get_cached_size())?;
            v.write_to_with_cached_sizes(os)?;
        }
        if let Some(ref v) = self.metadata.as_ref() {
            os.write_string(58, &v)?;
        }
        if let Some(v) = self.language {
            os.write_int32(61, v)?;
        }
        if let Some(v) = self.maybe_inappropriate_sex {
            os.write_bool(65, v)?;
        }
        if let Some(v) = self.maybe_inappropriate_violence {
            os.write_bool(66, v)?;
        }
        if let Some(v) = self.revision_change_number {
            os.write_uint64(67, v)?;
        }
        if let Some(v) = self.revision {
            os.write_enum(68, ::protobuf::ProtobufEnum::value(&v))?;
        }
        for v in &self.available_revisions {
            os.write_enum(69, ::protobuf::ProtobufEnum::value(v))?;
        };
        for v in &self.reactions {
            os.write_tag(70, ::protobuf::wire_format::WireTypeLengthDelimited)?;
            os.write_raw_varint32(v.get_cached_size())?;
            v.write_to_with_cached_sizes(os)?;
        };
        if let Some(v) = self.ban_text_check_result {
            os.write_enum(71, ::protobuf::ProtobufEnum::value(&v))?;
        }
        os.write_unknown_fields(self.get_unknown_fields())?;
        ::std::result::Result::Ok(())
    }

    fn get_cached_size(&self) -> u32 {
        self.cached_size.get()
    }

    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
        &self.unknown_fields
    }

    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
        &mut self.unknown_fields
    }

    fn as_any(&self) -> &dyn (::std::any::Any) {
        self as &dyn (::std::any::Any)
    }
    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
        self as &mut dyn (::std::any::Any)
    }
    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
        self
    }

    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
        Self::descriptor_static()
    }

    fn new() -> PublishedFileDetails {
        PublishedFileDetails::new()
    }

    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
        descriptor.get(|| {
            let mut fields = ::std::vec::Vec::new();
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeUint32>(
                "result",
                |m: &PublishedFileDetails| { &m.result },
                |m: &mut PublishedFileDetails| { &mut m.result },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeUint64>(
                "publishedfileid",
                |m: &PublishedFileDetails| { &m.publishedfileid },
                |m: &mut PublishedFileDetails| { &mut m.publishedfileid },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeFixed64>(
                "creator",
                |m: &PublishedFileDetails| { &m.creator },
                |m: &mut PublishedFileDetails| { &mut m.creator },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeUint32>(
                "creator_appid",
                |m: &PublishedFileDetails| { &m.creator_appid },
                |m: &mut PublishedFileDetails| { &mut m.creator_appid },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeUint32>(
                "consumer_appid",
                |m: &PublishedFileDetails| { &m.consumer_appid },
                |m: &mut PublishedFileDetails| { &mut m.consumer_appid },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeUint32>(
                "consumer_shortcutid",
                |m: &PublishedFileDetails| { &m.consumer_shortcutid },
                |m: &mut PublishedFileDetails| { &mut m.consumer_shortcutid },
            ));
            fields.push(::protobuf::reflect::accessor::make_singular_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
                "filename",
                |m: &PublishedFileDetails| { &m.filename },
                |m: &mut PublishedFileDetails| { &mut m.filename },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeUint64>(
                "file_size",
                |m: &PublishedFileDetails| { &m.file_size },
                |m: &mut PublishedFileDetails| { &mut m.file_size },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeUint64>(
                "preview_file_size",
                |m: &PublishedFileDetails| { &m.preview_file_size },
                |m: &mut PublishedFileDetails| { &mut m.preview_file_size },
            ));
            fields.push(::protobuf::reflect::accessor::make_singular_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
                "file_url",
                |m: &PublishedFileDetails| { &m.file_url },
                |m: &mut PublishedFileDetails| { &mut m.file_url },
            ));
            fields.push(::protobuf::reflect::accessor::make_singular_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
                "preview_url",
                |m: &PublishedFileDetails| { &m.preview_url },
                |m: &mut PublishedFileDetails| { &mut m.preview_url },
            ));
            fields.push(::protobuf::reflect::accessor::make_singular_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
                "youtubevideoid",
                |m: &PublishedFileDetails| { &m.youtubevideoid },
                |m: &mut PublishedFileDetails| { &mut m.youtubevideoid },
            ));
            fields.push(::protobuf::reflect::accessor::make_singular_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
                "url",
                |m: &PublishedFileDetails| { &m.url },
                |m: &mut PublishedFileDetails| { &mut m.url },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeFixed64>(
                "hcontent_file",
                |m: &PublishedFileDetails| { &m.hcontent_file },
                |m: &mut PublishedFileDetails| { &mut m.hcontent_file },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeFixed64>(
                "hcontent_preview",
                |m: &PublishedFileDetails| { &m.hcontent_preview },
                |m: &mut PublishedFileDetails| { &mut m.hcontent_preview },
            ));
            fields.push(::protobuf::reflect::accessor::make_singular_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
                "title",
                |m: &PublishedFileDetails| { &m.title },
                |m: &mut PublishedFileDetails| { &mut m.title },
            ));
            fields.push(::protobuf::reflect::accessor::make_singular_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
                "file_description",
                |m: &PublishedFileDetails| { &m.file_description },
                |m: &mut PublishedFileDetails| { &mut m.file_description },
            ));
            fields.push(::protobuf::reflect::accessor::make_singular_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
                "short_description",
                |m: &PublishedFileDetails| { &m.short_description },
                |m: &mut PublishedFileDetails| { &mut m.short_description },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeUint32>(
                "time_created",
                |m: &PublishedFileDetails| { &m.time_created },
                |m: &mut PublishedFileDetails| { &mut m.time_created },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeUint32>(
                "time_updated",
                |m: &PublishedFileDetails| { &m.time_updated },
                |m: &mut PublishedFileDetails| { &mut m.time_updated },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeUint32>(
                "visibility",
                |m: &PublishedFileDetails| { &m.visibility },
                |m: &mut PublishedFileDetails| { &mut m.visibility },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeUint32>(
                "flags",
                |m: &PublishedFileDetails| { &m.flags },
                |m: &mut PublishedFileDetails| { &mut m.flags },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeBool>(
                "workshop_file",
                |m: &PublishedFileDetails| { &m.workshop_file },
                |m: &mut PublishedFileDetails| { &mut m.workshop_file },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeBool>(
                "workshop_accepted",
                |m: &PublishedFileDetails| { &m.workshop_accepted },
                |m: &mut PublishedFileDetails| { &mut m.workshop_accepted },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeBool>(
                "show_subscribe_all",
                |m: &PublishedFileDetails| { &m.show_subscribe_all },
                |m: &mut PublishedFileDetails| { &mut m.show_subscribe_all },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeInt32>(
                "num_comments_developer",
                |m: &PublishedFileDetails| { &m.num_comments_developer },
                |m: &mut PublishedFileDetails| { &mut m.num_comments_developer },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeInt32>(
                "num_comments_public",
                |m: &PublishedFileDetails| { &m.num_comments_public },
                |m: &mut PublishedFileDetails| { &mut m.num_comments_public },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeBool>(
                "banned",
                |m: &PublishedFileDetails| { &m.banned },
                |m: &mut PublishedFileDetails| { &mut m.banned },
            ));
            fields.push(::protobuf::reflect::accessor::make_singular_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
                "ban_reason",
                |m: &PublishedFileDetails| { &m.ban_reason },
                |m: &mut PublishedFileDetails| { &mut m.ban_reason },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeFixed64>(
                "banner",
                |m: &PublishedFileDetails| { &m.banner },
                |m: &mut PublishedFileDetails| { &mut m.banner },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeBool>(
                "can_be_deleted",
                |m: &PublishedFileDetails| { &m.can_be_deleted },
                |m: &mut PublishedFileDetails| { &mut m.can_be_deleted },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeBool>(
                "incompatible",
                |m: &PublishedFileDetails| { &m.incompatible },
                |m: &mut PublishedFileDetails| { &mut m.incompatible },
            ));
            fields.push(::protobuf::reflect::accessor::make_singular_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
                "app_name",
                |m: &PublishedFileDetails| { &m.app_name },
                |m: &mut PublishedFileDetails| { &mut m.app_name },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeUint32>(
                "file_type",
                |m: &PublishedFileDetails| { &m.file_type },
                |m: &mut PublishedFileDetails| { &mut m.file_type },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeBool>(
                "can_subscribe",
                |m: &PublishedFileDetails| { &m.can_subscribe },
                |m: &mut PublishedFileDetails| { &mut m.can_subscribe },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeUint32>(
                "subscriptions",
                |m: &PublishedFileDetails| { &m.subscriptions },
                |m: &mut PublishedFileDetails| { &mut m.subscriptions },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeUint32>(
                "favorited",
                |m: &PublishedFileDetails| { &m.favorited },
                |m: &mut PublishedFileDetails| { &mut m.favorited },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeUint32>(
                "followers",
                |m: &PublishedFileDetails| { &m.followers },
                |m: &mut PublishedFileDetails| { &mut m.followers },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeUint32>(
                "lifetime_subscriptions",
                |m: &PublishedFileDetails| { &m.lifetime_subscriptions },
                |m: &mut PublishedFileDetails| { &mut m.lifetime_subscriptions },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeUint32>(
                "lifetime_favorited",
                |m: &PublishedFileDetails| { &m.lifetime_favorited },
                |m: &mut PublishedFileDetails| { &mut m.lifetime_favorited },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeUint32>(
                "lifetime_followers",
                |m: &PublishedFileDetails| { &m.lifetime_followers },
                |m: &mut PublishedFileDetails| { &mut m.lifetime_followers },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeUint64>(
                "lifetime_playtime",
                |m: &PublishedFileDetails| { &m.lifetime_playtime },
                |m: &mut PublishedFileDetails| { &mut m.lifetime_playtime },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeUint64>(
                "lifetime_playtime_sessions",
                |m: &PublishedFileDetails| { &m.lifetime_playtime_sessions },
                |m: &mut PublishedFileDetails| { &mut m.lifetime_playtime_sessions },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeUint32>(
                "views",
                |m: &PublishedFileDetails| { &m.views },
                |m: &mut PublishedFileDetails| { &mut m.views },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeUint32>(
                "image_width",
                |m: &PublishedFileDetails| { &m.image_width },
                |m: &mut PublishedFileDetails| { &mut m.image_width },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeUint32>(
                "image_height",
                |m: &PublishedFileDetails| { &m.image_height },
                |m: &mut PublishedFileDetails| { &mut m.image_height },
            ));
            fields.push(::protobuf::reflect::accessor::make_singular_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
                "image_url",
                |m: &PublishedFileDetails| { &m.image_url },
                |m: &mut PublishedFileDetails| { &mut m.image_url },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeBool>(
                "spoiler_tag",
                |m: &PublishedFileDetails| { &m.spoiler_tag },
                |m: &mut PublishedFileDetails| { &mut m.spoiler_tag },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeUint32>(
                "shortcutid",
                |m: &PublishedFileDetails| { &m.shortcutid },
                |m: &mut PublishedFileDetails| { &mut m.shortcutid },
            ));
            fields.push(::protobuf::reflect::accessor::make_singular_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
                "shortcutname",
                |m: &PublishedFileDetails| { &m.shortcutname },
                |m: &mut PublishedFileDetails| { &mut m.shortcutname },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeUint32>(
                "num_children",
                |m: &PublishedFileDetails| { &m.num_children },
                |m: &mut PublishedFileDetails| { &mut m.num_children },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeUint32>(
                "num_reports",
                |m: &PublishedFileDetails| { &m.num_reports },
                |m: &mut PublishedFileDetails| { &mut m.num_reports },
            ));
            fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<PublishedFileDetails_Preview>>(
                "previews",
                |m: &PublishedFileDetails| { &m.previews },
                |m: &mut PublishedFileDetails| { &mut m.previews },
            ));
            fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<PublishedFileDetails_Tag>>(
                "tags",
                |m: &PublishedFileDetails| { &m.tags },
                |m: &mut PublishedFileDetails| { &mut m.tags },
            ));
            fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<PublishedFileDetails_Child>>(
                "children",
                |m: &PublishedFileDetails| { &m.children },
                |m: &mut PublishedFileDetails| { &mut m.children },
            ));
            fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<PublishedFileDetails_KVTag>>(
                "kvtags",
                |m: &PublishedFileDetails| { &m.kvtags },
                |m: &mut PublishedFileDetails| { &mut m.kvtags },
            ));
            fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<PublishedFileDetails_VoteData>>(
                "vote_data",
                |m: &PublishedFileDetails| { &m.vote_data },
                |m: &mut PublishedFileDetails| { &mut m.vote_data },
            ));
            fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<PublishedFileDetails_PlaytimeStats>>(
                "playtime_stats",
                |m: &PublishedFileDetails| { &m.playtime_stats },
                |m: &mut PublishedFileDetails| { &mut m.playtime_stats },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeUint32>(
                "time_subscribed",
                |m: &PublishedFileDetails| { &m.time_subscribed },
                |m: &mut PublishedFileDetails| { &mut m.time_subscribed },
            ));
            fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<PublishedFileDetails_ForSaleData>>(
                "for_sale_data",
                |m: &PublishedFileDetails| { &m.for_sale_data },
                |m: &mut PublishedFileDetails| { &mut m.for_sale_data },
            ));
            fields.push(::protobuf::reflect::accessor::make_singular_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
                "metadata",
                |m: &PublishedFileDetails| { &m.metadata },
                |m: &mut PublishedFileDetails| { &mut m.metadata },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeInt32>(
                "language",
                |m: &PublishedFileDetails| { &m.language },
                |m: &mut PublishedFileDetails| { &mut m.language },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeBool>(
                "maybe_inappropriate_sex",
                |m: &PublishedFileDetails| { &m.maybe_inappropriate_sex },
                |m: &mut PublishedFileDetails| { &mut m.maybe_inappropriate_sex },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeBool>(
                "maybe_inappropriate_violence",
                |m: &PublishedFileDetails| { &m.maybe_inappropriate_violence },
                |m: &mut PublishedFileDetails| { &mut m.maybe_inappropriate_violence },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeUint64>(
                "revision_change_number",
                |m: &PublishedFileDetails| { &m.revision_change_number },
                |m: &mut PublishedFileDetails| { &mut m.revision_change_number },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeEnum<EPublishedFileRevision>>(
                "revision",
                |m: &PublishedFileDetails| { &m.revision },
                |m: &mut PublishedFileDetails| { &mut m.revision },
            ));
            fields.push(::protobuf::reflect::accessor::make_vec_accessor::<_, ::protobuf::types::ProtobufTypeEnum<EPublishedFileRevision>>(
                "available_revisions",
                |m: &PublishedFileDetails| { &m.available_revisions },
                |m: &mut PublishedFileDetails| { &mut m.available_revisions },
            ));
            fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<PublishedFileDetails_Reaction>>(
                "reactions",
                |m: &PublishedFileDetails| { &m.reactions },
                |m: &mut PublishedFileDetails| { &mut m.reactions },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeEnum<super::enums::EBanContentCheckResult>>(
                "ban_text_check_result",
                |m: &PublishedFileDetails| { &m.ban_text_check_result },
                |m: &mut PublishedFileDetails| { &mut m.ban_text_check_result },
            ));
            ::protobuf::reflect::MessageDescriptor::new_pb_name::<PublishedFileDetails>(
                "PublishedFileDetails",
                fields,
                file_descriptor_proto()
            )
        })
    }

    fn default_instance() -> &'static PublishedFileDetails {
        static instance: ::protobuf::rt::LazyV2<PublishedFileDetails> = ::protobuf::rt::LazyV2::INIT;
        instance.get(PublishedFileDetails::new)
    }
}

impl ::protobuf::Clear for PublishedFileDetails {
    fn clear(&mut self) {
        self.result = ::std::option::Option::None;
        self.publishedfileid = ::std::option::Option::None;
        self.creator = ::std::option::Option::None;
        self.creator_appid = ::std::option::Option::None;
        self.consumer_appid = ::std::option::Option::None;
        self.consumer_shortcutid = ::std::option::Option::None;
        self.filename.clear();
        self.file_size = ::std::option::Option::None;
        self.preview_file_size = ::std::option::Option::None;
        self.file_url.clear();
        self.preview_url.clear();
        self.youtubevideoid.clear();
        self.url.clear();
        self.hcontent_file = ::std::option::Option::None;
        self.hcontent_preview = ::std::option::Option::None;
        self.title.clear();
        self.file_description.clear();
        self.short_description.clear();
        self.time_created = ::std::option::Option::None;
        self.time_updated = ::std::option::Option::None;
        self.visibility = ::std::option::Option::None;
        self.flags = ::std::option::Option::None;
        self.workshop_file = ::std::option::Option::None;
        self.workshop_accepted = ::std::option::Option::None;
        self.show_subscribe_all = ::std::option::Option::None;
        self.num_comments_developer = ::std::option::Option::None;
        self.num_comments_public = ::std::option::Option::None;
        self.banned = ::std::option::Option::None;
        self.ban_reason.clear();
        self.banner = ::std::option::Option::None;
        self.can_be_deleted = ::std::option::Option::None;
        self.incompatible = ::std::option::Option::None;
        self.app_name.clear();
        self.file_type = ::std::option::Option::None;
        self.can_subscribe = ::std::option::Option::None;
        self.subscriptions = ::std::option::Option::None;
        self.favorited = ::std::option::Option::None;
        self.followers = ::std::option::Option::None;
        self.lifetime_subscriptions = ::std::option::Option::None;
        self.lifetime_favorited = ::std::option::Option::None;
        self.lifetime_followers = ::std::option::Option::None;
        self.lifetime_playtime = ::std::option::Option::None;
        self.lifetime_playtime_sessions = ::std::option::Option::None;
        self.views = ::std::option::Option::None;
        self.image_width = ::std::option::Option::None;
        self.image_height = ::std::option::Option::None;
        self.image_url.clear();
        self.spoiler_tag = ::std::option::Option::None;
        self.shortcutid = ::std::option::Option::None;
        self.shortcutname.clear();
        self.num_children = ::std::option::Option::None;
        self.num_reports = ::std::option::Option::None;
        self.previews.clear();
        self.tags.clear();
        self.children.clear();
        self.kvtags.clear();
        self.vote_data.clear();
        self.playtime_stats.clear();
        self.time_subscribed = ::std::option::Option::None;
        self.for_sale_data.clear();
        self.metadata.clear();
        self.language = ::std::option::Option::None;
        self.maybe_inappropriate_sex = ::std::option::Option::None;
        self.maybe_inappropriate_violence = ::std::option::Option::None;
        self.revision_change_number = ::std::option::Option::None;
        self.revision = ::std::option::Option::None;
        self.available_revisions.clear();
        self.reactions.clear();
        self.ban_text_check_result = ::std::option::Option::None;
        self.unknown_fields.clear();
    }
}

impl ::std::fmt::Debug for PublishedFileDetails {
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
        ::protobuf::text_format::fmt(self, f)
    }
}

impl ::protobuf::reflect::ProtobufValue for PublishedFileDetails {
    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
        ::protobuf::reflect::ReflectValueRef::Message(self)
    }
}

#[derive(PartialEq,Clone,Default)]
pub struct PublishedFileDetails_Tag {
    // message fields
    tag: ::protobuf::SingularField<::std::string::String>,
    adminonly: ::std::option::Option<bool>,
    display_name: ::protobuf::SingularField<::std::string::String>,
    // special fields
    pub unknown_fields: ::protobuf::UnknownFields,
    pub cached_size: ::protobuf::CachedSize,
}

impl<'a> ::std::default::Default for &'a PublishedFileDetails_Tag {
    fn default() -> &'a PublishedFileDetails_Tag {
        <PublishedFileDetails_Tag as ::protobuf::Message>::default_instance()
    }
}

impl PublishedFileDetails_Tag {
    pub fn new() -> PublishedFileDetails_Tag {
        ::std::default::Default::default()
    }

    // optional string tag = 1;


    pub fn get_tag(&self) -> &str {
        match self.tag.as_ref() {
            Some(v) => &v,
            None => "",
        }
    }
    pub fn clear_tag(&mut self) {
        self.tag.clear();
    }

    pub fn has_tag(&self) -> bool {
        self.tag.is_some()
    }

    // Param is passed by value, moved
    pub fn set_tag(&mut self, v: ::std::string::String) {
        self.tag = ::protobuf::SingularField::some(v);
    }

    // Mutable pointer to the field.
    // If field is not initialized, it is initialized with default value first.
    pub fn mut_tag(&mut self) -> &mut ::std::string::String {
        if self.tag.is_none() {
            self.tag.set_default();
        }
        self.tag.as_mut().unwrap()
    }

    // Take field
    pub fn take_tag(&mut self) -> ::std::string::String {
        self.tag.take().unwrap_or_else(|| ::std::string::String::new())
    }

    // optional bool adminonly = 2;


    pub fn get_adminonly(&self) -> bool {
        self.adminonly.unwrap_or(false)
    }
    pub fn clear_adminonly(&mut self) {
        self.adminonly = ::std::option::Option::None;
    }

    pub fn has_adminonly(&self) -> bool {
        self.adminonly.is_some()
    }

    // Param is passed by value, moved
    pub fn set_adminonly(&mut self, v: bool) {
        self.adminonly = ::std::option::Option::Some(v);
    }

    // optional string display_name = 3;


    pub fn get_display_name(&self) -> &str {
        match self.display_name.as_ref() {
            Some(v) => &v,
            None => "",
        }
    }
    pub fn clear_display_name(&mut self) {
        self.display_name.clear();
    }

    pub fn has_display_name(&self) -> bool {
        self.display_name.is_some()
    }

    // Param is passed by value, moved
    pub fn set_display_name(&mut self, v: ::std::string::String) {
        self.display_name = ::protobuf::SingularField::some(v);
    }

    // Mutable pointer to the field.
    // If field is not initialized, it is initialized with default value first.
    pub fn mut_display_name(&mut self) -> &mut ::std::string::String {
        if self.display_name.is_none() {
            self.display_name.set_default();
        }
        self.display_name.as_mut().unwrap()
    }

    // Take field
    pub fn take_display_name(&mut self) -> ::std::string::String {
        self.display_name.take().unwrap_or_else(|| ::std::string::String::new())
    }
}

impl ::protobuf::Message for PublishedFileDetails_Tag {
    fn is_initialized(&self) -> bool {
        true
    }

    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
        while !is.eof()? {
            let (field_number, wire_type) = is.read_tag_unpack()?;
            match field_number {
                1 => {
                    ::protobuf::rt::read_singular_string_into(wire_type, is, &mut self.tag)?;
                },
                2 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_bool()?;
                    self.adminonly = ::std::option::Option::Some(tmp);
                },
                3 => {
                    ::protobuf::rt::read_singular_string_into(wire_type, is, &mut self.display_name)?;
                },
                _ => {
                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
                },
            };
        }
        ::std::result::Result::Ok(())
    }

    // Compute sizes of nested messages
    #[allow(unused_variables)]
    fn compute_size(&self) -> u32 {
        let mut my_size = 0;
        if let Some(ref v) = self.tag.as_ref() {
            my_size += ::protobuf::rt::string_size(1, &v);
        }
        if let Some(v) = self.adminonly {
            my_size += 2;
        }
        if let Some(ref v) = self.display_name.as_ref() {
            my_size += ::protobuf::rt::string_size(3, &v);
        }
        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
        self.cached_size.set(my_size);
        my_size
    }

    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
        if let Some(ref v) = self.tag.as_ref() {
            os.write_string(1, &v)?;
        }
        if let Some(v) = self.adminonly {
            os.write_bool(2, v)?;
        }
        if let Some(ref v) = self.display_name.as_ref() {
            os.write_string(3, &v)?;
        }
        os.write_unknown_fields(self.get_unknown_fields())?;
        ::std::result::Result::Ok(())
    }

    fn get_cached_size(&self) -> u32 {
        self.cached_size.get()
    }

    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
        &self.unknown_fields
    }

    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
        &mut self.unknown_fields
    }

    fn as_any(&self) -> &dyn (::std::any::Any) {
        self as &dyn (::std::any::Any)
    }
    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
        self as &mut dyn (::std::any::Any)
    }
    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
        self
    }

    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
        Self::descriptor_static()
    }

    fn new() -> PublishedFileDetails_Tag {
        PublishedFileDetails_Tag::new()
    }

    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
        descriptor.get(|| {
            let mut fields = ::std::vec::Vec::new();
            fields.push(::protobuf::reflect::accessor::make_singular_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
                "tag",
                |m: &PublishedFileDetails_Tag| { &m.tag },
                |m: &mut PublishedFileDetails_Tag| { &mut m.tag },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeBool>(
                "adminonly",
                |m: &PublishedFileDetails_Tag| { &m.adminonly },
                |m: &mut PublishedFileDetails_Tag| { &mut m.adminonly },
            ));
            fields.push(::protobuf::reflect::accessor::make_singular_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
                "display_name",
                |m: &PublishedFileDetails_Tag| { &m.display_name },
                |m: &mut PublishedFileDetails_Tag| { &mut m.display_name },
            ));
            ::protobuf::reflect::MessageDescriptor::new_pb_name::<PublishedFileDetails_Tag>(
                "PublishedFileDetails.Tag",
                fields,
                file_descriptor_proto()
            )
        })
    }

    fn default_instance() -> &'static PublishedFileDetails_Tag {
        static instance: ::protobuf::rt::LazyV2<PublishedFileDetails_Tag> = ::protobuf::rt::LazyV2::INIT;
        instance.get(PublishedFileDetails_Tag::new)
    }
}

impl ::protobuf::Clear for PublishedFileDetails_Tag {
    fn clear(&mut self) {
        self.tag.clear();
        self.adminonly = ::std::option::Option::None;
        self.display_name.clear();
        self.unknown_fields.clear();
    }
}

impl ::std::fmt::Debug for PublishedFileDetails_Tag {
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
        ::protobuf::text_format::fmt(self, f)
    }
}

impl ::protobuf::reflect::ProtobufValue for PublishedFileDetails_Tag {
    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
        ::protobuf::reflect::ReflectValueRef::Message(self)
    }
}

#[derive(PartialEq,Clone,Default)]
pub struct PublishedFileDetails_Preview {
    // message fields
    previewid: ::std::option::Option<u64>,
    sortorder: ::std::option::Option<u32>,
    url: ::protobuf::SingularField<::std::string::String>,
    size: ::std::option::Option<u32>,
    filename: ::protobuf::SingularField<::std::string::String>,
    youtubevideoid: ::protobuf::SingularField<::std::string::String>,
    preview_type: ::std::option::Option<u32>,
    external_reference: ::protobuf::SingularField<::std::string::String>,
    // special fields
    pub unknown_fields: ::protobuf::UnknownFields,
    pub cached_size: ::protobuf::CachedSize,
}

impl<'a> ::std::default::Default for &'a PublishedFileDetails_Preview {
    fn default() -> &'a PublishedFileDetails_Preview {
        <PublishedFileDetails_Preview as ::protobuf::Message>::default_instance()
    }
}

impl PublishedFileDetails_Preview {
    pub fn new() -> PublishedFileDetails_Preview {
        ::std::default::Default::default()
    }

    // optional uint64 previewid = 1;


    pub fn get_previewid(&self) -> u64 {
        self.previewid.unwrap_or(0)
    }
    pub fn clear_previewid(&mut self) {
        self.previewid = ::std::option::Option::None;
    }

    pub fn has_previewid(&self) -> bool {
        self.previewid.is_some()
    }

    // Param is passed by value, moved
    pub fn set_previewid(&mut self, v: u64) {
        self.previewid = ::std::option::Option::Some(v);
    }

    // optional uint32 sortorder = 2;


    pub fn get_sortorder(&self) -> u32 {
        self.sortorder.unwrap_or(0)
    }
    pub fn clear_sortorder(&mut self) {
        self.sortorder = ::std::option::Option::None;
    }

    pub fn has_sortorder(&self) -> bool {
        self.sortorder.is_some()
    }

    // Param is passed by value, moved
    pub fn set_sortorder(&mut self, v: u32) {
        self.sortorder = ::std::option::Option::Some(v);
    }

    // optional string url = 3;


    pub fn get_url(&self) -> &str {
        match self.url.as_ref() {
            Some(v) => &v,
            None => "",
        }
    }
    pub fn clear_url(&mut self) {
        self.url.clear();
    }

    pub fn has_url(&self) -> bool {
        self.url.is_some()
    }

    // Param is passed by value, moved
    pub fn set_url(&mut self, v: ::std::string::String) {
        self.url = ::protobuf::SingularField::some(v);
    }

    // Mutable pointer to the field.
    // If field is not initialized, it is initialized with default value first.
    pub fn mut_url(&mut self) -> &mut ::std::string::String {
        if self.url.is_none() {
            self.url.set_default();
        }
        self.url.as_mut().unwrap()
    }

    // Take field
    pub fn take_url(&mut self) -> ::std::string::String {
        self.url.take().unwrap_or_else(|| ::std::string::String::new())
    }

    // optional uint32 size = 4;


    pub fn get_size(&self) -> u32 {
        self.size.unwrap_or(0)
    }
    pub fn clear_size(&mut self) {
        self.size = ::std::option::Option::None;
    }

    pub fn has_size(&self) -> bool {
        self.size.is_some()
    }

    // Param is passed by value, moved
    pub fn set_size(&mut self, v: u32) {
        self.size = ::std::option::Option::Some(v);
    }

    // optional string filename = 5;


    pub fn get_filename(&self) -> &str {
        match self.filename.as_ref() {
            Some(v) => &v,
            None => "",
        }
    }
    pub fn clear_filename(&mut self) {
        self.filename.clear();
    }

    pub fn has_filename(&self) -> bool {
        self.filename.is_some()
    }

    // Param is passed by value, moved
    pub fn set_filename(&mut self, v: ::std::string::String) {
        self.filename = ::protobuf::SingularField::some(v);
    }

    // Mutable pointer to the field.
    // If field is not initialized, it is initialized with default value first.
    pub fn mut_filename(&mut self) -> &mut ::std::string::String {
        if self.filename.is_none() {
            self.filename.set_default();
        }
        self.filename.as_mut().unwrap()
    }

    // Take field
    pub fn take_filename(&mut self) -> ::std::string::String {
        self.filename.take().unwrap_or_else(|| ::std::string::String::new())
    }

    // optional string youtubevideoid = 6;


    pub fn get_youtubevideoid(&self) -> &str {
        match self.youtubevideoid.as_ref() {
            Some(v) => &v,
            None => "",
        }
    }
    pub fn clear_youtubevideoid(&mut self) {
        self.youtubevideoid.clear();
    }

    pub fn has_youtubevideoid(&self) -> bool {
        self.youtubevideoid.is_some()
    }

    // Param is passed by value, moved
    pub fn set_youtubevideoid(&mut self, v: ::std::string::String) {
        self.youtubevideoid = ::protobuf::SingularField::some(v);
    }

    // Mutable pointer to the field.
    // If field is not initialized, it is initialized with default value first.
    pub fn mut_youtubevideoid(&mut self) -> &mut ::std::string::String {
        if self.youtubevideoid.is_none() {
            self.youtubevideoid.set_default();
        }
        self.youtubevideoid.as_mut().unwrap()
    }

    // Take field
    pub fn take_youtubevideoid(&mut self) -> ::std::string::String {
        self.youtubevideoid.take().unwrap_or_else(|| ::std::string::String::new())
    }

    // optional uint32 preview_type = 7;


    pub fn get_preview_type(&self) -> u32 {
        self.preview_type.unwrap_or(0)
    }
    pub fn clear_preview_type(&mut self) {
        self.preview_type = ::std::option::Option::None;
    }

    pub fn has_preview_type(&self) -> bool {
        self.preview_type.is_some()
    }

    // Param is passed by value, moved
    pub fn set_preview_type(&mut self, v: u32) {
        self.preview_type = ::std::option::Option::Some(v);
    }

    // optional string external_reference = 8;


    pub fn get_external_reference(&self) -> &str {
        match self.external_reference.as_ref() {
            Some(v) => &v,
            None => "",
        }
    }
    pub fn clear_external_reference(&mut self) {
        self.external_reference.clear();
    }

    pub fn has_external_reference(&self) -> bool {
        self.external_reference.is_some()
    }

    // Param is passed by value, moved
    pub fn set_external_reference(&mut self, v: ::std::string::String) {
        self.external_reference = ::protobuf::SingularField::some(v);
    }

    // Mutable pointer to the field.
    // If field is not initialized, it is initialized with default value first.
    pub fn mut_external_reference(&mut self) -> &mut ::std::string::String {
        if self.external_reference.is_none() {
            self.external_reference.set_default();
        }
        self.external_reference.as_mut().unwrap()
    }

    // Take field
    pub fn take_external_reference(&mut self) -> ::std::string::String {
        self.external_reference.take().unwrap_or_else(|| ::std::string::String::new())
    }
}

impl ::protobuf::Message for PublishedFileDetails_Preview {
    fn is_initialized(&self) -> bool {
        true
    }

    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
        while !is.eof()? {
            let (field_number, wire_type) = is.read_tag_unpack()?;
            match field_number {
                1 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_uint64()?;
                    self.previewid = ::std::option::Option::Some(tmp);
                },
                2 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_uint32()?;
                    self.sortorder = ::std::option::Option::Some(tmp);
                },
                3 => {
                    ::protobuf::rt::read_singular_string_into(wire_type, is, &mut self.url)?;
                },
                4 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_uint32()?;
                    self.size = ::std::option::Option::Some(tmp);
                },
                5 => {
                    ::protobuf::rt::read_singular_string_into(wire_type, is, &mut self.filename)?;
                },
                6 => {
                    ::protobuf::rt::read_singular_string_into(wire_type, is, &mut self.youtubevideoid)?;
                },
                7 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_uint32()?;
                    self.preview_type = ::std::option::Option::Some(tmp);
                },
                8 => {
                    ::protobuf::rt::read_singular_string_into(wire_type, is, &mut self.external_reference)?;
                },
                _ => {
                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
                },
            };
        }
        ::std::result::Result::Ok(())
    }

    // Compute sizes of nested messages
    #[allow(unused_variables)]
    fn compute_size(&self) -> u32 {
        let mut my_size = 0;
        if let Some(v) = self.previewid {
            my_size += ::protobuf::rt::value_size(1, v, ::protobuf::wire_format::WireTypeVarint);
        }
        if let Some(v) = self.sortorder {
            my_size += ::protobuf::rt::value_size(2, v, ::protobuf::wire_format::WireTypeVarint);
        }
        if let Some(ref v) = self.url.as_ref() {
            my_size += ::protobuf::rt::string_size(3, &v);
        }
        if let Some(v) = self.size {
            my_size += ::protobuf::rt::value_size(4, v, ::protobuf::wire_format::WireTypeVarint);
        }
        if let Some(ref v) = self.filename.as_ref() {
            my_size += ::protobuf::rt::string_size(5, &v);
        }
        if let Some(ref v) = self.youtubevideoid.as_ref() {
            my_size += ::protobuf::rt::string_size(6, &v);
        }
        if let Some(v) = self.preview_type {
            my_size += ::protobuf::rt::value_size(7, v, ::protobuf::wire_format::WireTypeVarint);
        }
        if let Some(ref v) = self.external_reference.as_ref() {
            my_size += ::protobuf::rt::string_size(8, &v);
        }
        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
        self.cached_size.set(my_size);
        my_size
    }

    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
        if let Some(v) = self.previewid {
            os.write_uint64(1, v)?;
        }
        if let Some(v) = self.sortorder {
            os.write_uint32(2, v)?;
        }
        if let Some(ref v) = self.url.as_ref() {
            os.write_string(3, &v)?;
        }
        if let Some(v) = self.size {
            os.write_uint32(4, v)?;
        }
        if let Some(ref v) = self.filename.as_ref() {
            os.write_string(5, &v)?;
        }
        if let Some(ref v) = self.youtubevideoid.as_ref() {
            os.write_string(6, &v)?;
        }
        if let Some(v) = self.preview_type {
            os.write_uint32(7, v)?;
        }
        if let Some(ref v) = self.external_reference.as_ref() {
            os.write_string(8, &v)?;
        }
        os.write_unknown_fields(self.get_unknown_fields())?;
        ::std::result::Result::Ok(())
    }

    fn get_cached_size(&self) -> u32 {
        self.cached_size.get()
    }

    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
        &self.unknown_fields
    }

    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
        &mut self.unknown_fields
    }

    fn as_any(&self) -> &dyn (::std::any::Any) {
        self as &dyn (::std::any::Any)
    }
    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
        self as &mut dyn (::std::any::Any)
    }
    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
        self
    }

    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
        Self::descriptor_static()
    }

    fn new() -> PublishedFileDetails_Preview {
        PublishedFileDetails_Preview::new()
    }

    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
        descriptor.get(|| {
            let mut fields = ::std::vec::Vec::new();
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeUint64>(
                "previewid",
                |m: &PublishedFileDetails_Preview| { &m.previewid },
                |m: &mut PublishedFileDetails_Preview| { &mut m.previewid },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeUint32>(
                "sortorder",
                |m: &PublishedFileDetails_Preview| { &m.sortorder },
                |m: &mut PublishedFileDetails_Preview| { &mut m.sortorder },
            ));
            fields.push(::protobuf::reflect::accessor::make_singular_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
                "url",
                |m: &PublishedFileDetails_Preview| { &m.url },
                |m: &mut PublishedFileDetails_Preview| { &mut m.url },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeUint32>(
                "size",
                |m: &PublishedFileDetails_Preview| { &m.size },
                |m: &mut PublishedFileDetails_Preview| { &mut m.size },
            ));
            fields.push(::protobuf::reflect::accessor::make_singular_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
                "filename",
                |m: &PublishedFileDetails_Preview| { &m.filename },
                |m: &mut PublishedFileDetails_Preview| { &mut m.filename },
            ));
            fields.push(::protobuf::reflect::accessor::make_singular_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
                "youtubevideoid",
                |m: &PublishedFileDetails_Preview| { &m.youtubevideoid },
                |m: &mut PublishedFileDetails_Preview| { &mut m.youtubevideoid },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeUint32>(
                "preview_type",
                |m: &PublishedFileDetails_Preview| { &m.preview_type },
                |m: &mut PublishedFileDetails_Preview| { &mut m.preview_type },
            ));
            fields.push(::protobuf::reflect::accessor::make_singular_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
                "external_reference",
                |m: &PublishedFileDetails_Preview| { &m.external_reference },
                |m: &mut PublishedFileDetails_Preview| { &mut m.external_reference },
            ));
            ::protobuf::reflect::MessageDescriptor::new_pb_name::<PublishedFileDetails_Preview>(
                "PublishedFileDetails.Preview",
                fields,
                file_descriptor_proto()
            )
        })
    }

    fn default_instance() -> &'static PublishedFileDetails_Preview {
        static instance: ::protobuf::rt::LazyV2<PublishedFileDetails_Preview> = ::protobuf::rt::LazyV2::INIT;
        instance.get(PublishedFileDetails_Preview::new)
    }
}

impl ::protobuf::Clear for PublishedFileDetails_Preview {
    fn clear(&mut self) {
        self.previewid = ::std::option::Option::None;
        self.sortorder = ::std::option::Option::None;
        self.url.clear();
        self.size = ::std::option::Option::None;
        self.filename.clear();
        self.youtubevideoid.clear();
        self.preview_type = ::std::option::Option::None;
        self.external_reference.clear();
        self.unknown_fields.clear();
    }
}

impl ::std::fmt::Debug for PublishedFileDetails_Preview {
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
        ::protobuf::text_format::fmt(self, f)
    }
}

impl ::protobuf::reflect::ProtobufValue for PublishedFileDetails_Preview {
    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
        ::protobuf::reflect::ReflectValueRef::Message(self)
    }
}

#[derive(PartialEq,Clone,Default)]
pub struct PublishedFileDetails_Child {
    // message fields
    publishedfileid: ::std::option::Option<u64>,
    sortorder: ::std::option::Option<u32>,
    file_type: ::std::option::Option<u32>,
    // special fields
    pub unknown_fields: ::protobuf::UnknownFields,
    pub cached_size: ::protobuf::CachedSize,
}

impl<'a> ::std::default::Default for &'a PublishedFileDetails_Child {
    fn default() -> &'a PublishedFileDetails_Child {
        <PublishedFileDetails_Child as ::protobuf::Message>::default_instance()
    }
}

impl PublishedFileDetails_Child {
    pub fn new() -> PublishedFileDetails_Child {
        ::std::default::Default::default()
    }

    // optional uint64 publishedfileid = 1;


    pub fn get_publishedfileid(&self) -> u64 {
        self.publishedfileid.unwrap_or(0)
    }
    pub fn clear_publishedfileid(&mut self) {
        self.publishedfileid = ::std::option::Option::None;
    }

    pub fn has_publishedfileid(&self) -> bool {
        self.publishedfileid.is_some()
    }

    // Param is passed by value, moved
    pub fn set_publishedfileid(&mut self, v: u64) {
        self.publishedfileid = ::std::option::Option::Some(v);
    }

    // optional uint32 sortorder = 2;


    pub fn get_sortorder(&self) -> u32 {
        self.sortorder.unwrap_or(0)
    }
    pub fn clear_sortorder(&mut self) {
        self.sortorder = ::std::option::Option::None;
    }

    pub fn has_sortorder(&self) -> bool {
        self.sortorder.is_some()
    }

    // Param is passed by value, moved
    pub fn set_sortorder(&mut self, v: u32) {
        self.sortorder = ::std::option::Option::Some(v);
    }

    // optional uint32 file_type = 3;


    pub fn get_file_type(&self) -> u32 {
        self.file_type.unwrap_or(0)
    }
    pub fn clear_file_type(&mut self) {
        self.file_type = ::std::option::Option::None;
    }

    pub fn has_file_type(&self) -> bool {
        self.file_type.is_some()
    }

    // Param is passed by value, moved
    pub fn set_file_type(&mut self, v: u32) {
        self.file_type = ::std::option::Option::Some(v);
    }
}

impl ::protobuf::Message for PublishedFileDetails_Child {
    fn is_initialized(&self) -> bool {
        true
    }

    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
        while !is.eof()? {
            let (field_number, wire_type) = is.read_tag_unpack()?;
            match field_number {
                1 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_uint64()?;
                    self.publishedfileid = ::std::option::Option::Some(tmp);
                },
                2 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_uint32()?;
                    self.sortorder = ::std::option::Option::Some(tmp);
                },
                3 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_uint32()?;
                    self.file_type = ::std::option::Option::Some(tmp);
                },
                _ => {
                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
                },
            };
        }
        ::std::result::Result::Ok(())
    }

    // Compute sizes of nested messages
    #[allow(unused_variables)]
    fn compute_size(&self) -> u32 {
        let mut my_size = 0;
        if let Some(v) = self.publishedfileid {
            my_size += ::protobuf::rt::value_size(1, v, ::protobuf::wire_format::WireTypeVarint);
        }
        if let Some(v) = self.sortorder {
            my_size += ::protobuf::rt::value_size(2, v, ::protobuf::wire_format::WireTypeVarint);
        }
        if let Some(v) = self.file_type {
            my_size += ::protobuf::rt::value_size(3, v, ::protobuf::wire_format::WireTypeVarint);
        }
        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
        self.cached_size.set(my_size);
        my_size
    }

    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
        if let Some(v) = self.publishedfileid {
            os.write_uint64(1, v)?;
        }
        if let Some(v) = self.sortorder {
            os.write_uint32(2, v)?;
        }
        if let Some(v) = self.file_type {
            os.write_uint32(3, v)?;
        }
        os.write_unknown_fields(self.get_unknown_fields())?;
        ::std::result::Result::Ok(())
    }

    fn get_cached_size(&self) -> u32 {
        self.cached_size.get()
    }

    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
        &self.unknown_fields
    }

    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
        &mut self.unknown_fields
    }

    fn as_any(&self) -> &dyn (::std::any::Any) {
        self as &dyn (::std::any::Any)
    }
    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
        self as &mut dyn (::std::any::Any)
    }
    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
        self
    }

    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
        Self::descriptor_static()
    }

    fn new() -> PublishedFileDetails_Child {
        PublishedFileDetails_Child::new()
    }

    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
        descriptor.get(|| {
            let mut fields = ::std::vec::Vec::new();
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeUint64>(
                "publishedfileid",
                |m: &PublishedFileDetails_Child| { &m.publishedfileid },
                |m: &mut PublishedFileDetails_Child| { &mut m.publishedfileid },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeUint32>(
                "sortorder",
                |m: &PublishedFileDetails_Child| { &m.sortorder },
                |m: &mut PublishedFileDetails_Child| { &mut m.sortorder },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeUint32>(
                "file_type",
                |m: &PublishedFileDetails_Child| { &m.file_type },
                |m: &mut PublishedFileDetails_Child| { &mut m.file_type },
            ));
            ::protobuf::reflect::MessageDescriptor::new_pb_name::<PublishedFileDetails_Child>(
                "PublishedFileDetails.Child",
                fields,
                file_descriptor_proto()
            )
        })
    }

    fn default_instance() -> &'static PublishedFileDetails_Child {
        static instance: ::protobuf::rt::LazyV2<PublishedFileDetails_Child> = ::protobuf::rt::LazyV2::INIT;
        instance.get(PublishedFileDetails_Child::new)
    }
}

impl ::protobuf::Clear for PublishedFileDetails_Child {
    fn clear(&mut self) {
        self.publishedfileid = ::std::option::Option::None;
        self.sortorder = ::std::option::Option::None;
        self.file_type = ::std::option::Option::None;
        self.unknown_fields.clear();
    }
}

impl ::std::fmt::Debug for PublishedFileDetails_Child {
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
        ::protobuf::text_format::fmt(self, f)
    }
}

impl ::protobuf::reflect::ProtobufValue for PublishedFileDetails_Child {
    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
        ::protobuf::reflect::ReflectValueRef::Message(self)
    }
}

#[derive(PartialEq,Clone,Default)]
pub struct PublishedFileDetails_KVTag {
    // message fields
    key: ::protobuf::SingularField<::std::string::String>,
    value: ::protobuf::SingularField<::std::string::String>,
    // special fields
    pub unknown_fields: ::protobuf::UnknownFields,
    pub cached_size: ::protobuf::CachedSize,
}

impl<'a> ::std::default::Default for &'a PublishedFileDetails_KVTag {
    fn default() -> &'a PublishedFileDetails_KVTag {
        <PublishedFileDetails_KVTag as ::protobuf::Message>::default_instance()
    }
}

impl PublishedFileDetails_KVTag {
    pub fn new() -> PublishedFileDetails_KVTag {
        ::std::default::Default::default()
    }

    // optional string key = 1;


    pub fn get_key(&self) -> &str {
        match self.key.as_ref() {
            Some(v) => &v,
            None => "",
        }
    }
    pub fn clear_key(&mut self) {
        self.key.clear();
    }

    pub fn has_key(&self) -> bool {
        self.key.is_some()
    }

    // Param is passed by value, moved
    pub fn set_key(&mut self, v: ::std::string::String) {
        self.key = ::protobuf::SingularField::some(v);
    }

    // Mutable pointer to the field.
    // If field is not initialized, it is initialized with default value first.
    pub fn mut_key(&mut self) -> &mut ::std::string::String {
        if self.key.is_none() {
            self.key.set_default();
        }
        self.key.as_mut().unwrap()
    }

    // Take field
    pub fn take_key(&mut self) -> ::std::string::String {
        self.key.take().unwrap_or_else(|| ::std::string::String::new())
    }

    // optional string value = 2;


    pub fn get_value(&self) -> &str {
        match self.value.as_ref() {
            Some(v) => &v,
            None => "",
        }
    }
    pub fn clear_value(&mut self) {
        self.value.clear();
    }

    pub fn has_value(&self) -> bool {
        self.value.is_some()
    }

    // Param is passed by value, moved
    pub fn set_value(&mut self, v: ::std::string::String) {
        self.value = ::protobuf::SingularField::some(v);
    }

    // Mutable pointer to the field.
    // If field is not initialized, it is initialized with default value first.
    pub fn mut_value(&mut self) -> &mut ::std::string::String {
        if self.value.is_none() {
            self.value.set_default();
        }
        self.value.as_mut().unwrap()
    }

    // Take field
    pub fn take_value(&mut self) -> ::std::string::String {
        self.value.take().unwrap_or_else(|| ::std::string::String::new())
    }
}

impl ::protobuf::Message for PublishedFileDetails_KVTag {
    fn is_initialized(&self) -> bool {
        true
    }

    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
        while !is.eof()? {
            let (field_number, wire_type) = is.read_tag_unpack()?;
            match field_number {
                1 => {
                    ::protobuf::rt::read_singular_string_into(wire_type, is, &mut self.key)?;
                },
                2 => {
                    ::protobuf::rt::read_singular_string_into(wire_type, is, &mut self.value)?;
                },
                _ => {
                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
                },
            };
        }
        ::std::result::Result::Ok(())
    }

    // Compute sizes of nested messages
    #[allow(unused_variables)]
    fn compute_size(&self) -> u32 {
        let mut my_size = 0;
        if let Some(ref v) = self.key.as_ref() {
            my_size += ::protobuf::rt::string_size(1, &v);
        }
        if let Some(ref v) = self.value.as_ref() {
            my_size += ::protobuf::rt::string_size(2, &v);
        }
        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
        self.cached_size.set(my_size);
        my_size
    }

    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
        if let Some(ref v) = self.key.as_ref() {
            os.write_string(1, &v)?;
        }
        if let Some(ref v) = self.value.as_ref() {
            os.write_string(2, &v)?;
        }
        os.write_unknown_fields(self.get_unknown_fields())?;
        ::std::result::Result::Ok(())
    }

    fn get_cached_size(&self) -> u32 {
        self.cached_size.get()
    }

    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
        &self.unknown_fields
    }

    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
        &mut self.unknown_fields
    }

    fn as_any(&self) -> &dyn (::std::any::Any) {
        self as &dyn (::std::any::Any)
    }
    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
        self as &mut dyn (::std::any::Any)
    }
    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
        self
    }

    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
        Self::descriptor_static()
    }

    fn new() -> PublishedFileDetails_KVTag {
        PublishedFileDetails_KVTag::new()
    }

    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
        descriptor.get(|| {
            let mut fields = ::std::vec::Vec::new();
            fields.push(::protobuf::reflect::accessor::make_singular_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
                "key",
                |m: &PublishedFileDetails_KVTag| { &m.key },
                |m: &mut PublishedFileDetails_KVTag| { &mut m.key },
            ));
            fields.push(::protobuf::reflect::accessor::make_singular_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
                "value",
                |m: &PublishedFileDetails_KVTag| { &m.value },
                |m: &mut PublishedFileDetails_KVTag| { &mut m.value },
            ));
            ::protobuf::reflect::MessageDescriptor::new_pb_name::<PublishedFileDetails_KVTag>(
                "PublishedFileDetails.KVTag",
                fields,
                file_descriptor_proto()
            )
        })
    }

    fn default_instance() -> &'static PublishedFileDetails_KVTag {
        static instance: ::protobuf::rt::LazyV2<PublishedFileDetails_KVTag> = ::protobuf::rt::LazyV2::INIT;
        instance.get(PublishedFileDetails_KVTag::new)
    }
}

impl ::protobuf::Clear for PublishedFileDetails_KVTag {
    fn clear(&mut self) {
        self.key.clear();
        self.value.clear();
        self.unknown_fields.clear();
    }
}

impl ::std::fmt::Debug for PublishedFileDetails_KVTag {
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
        ::protobuf::text_format::fmt(self, f)
    }
}

impl ::protobuf::reflect::ProtobufValue for PublishedFileDetails_KVTag {
    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
        ::protobuf::reflect::ReflectValueRef::Message(self)
    }
}

#[derive(PartialEq,Clone,Default)]
pub struct PublishedFileDetails_VoteData {
    // message fields
    score: ::std::option::Option<f32>,
    votes_up: ::std::option::Option<u32>,
    votes_down: ::std::option::Option<u32>,
    // special fields
    pub unknown_fields: ::protobuf::UnknownFields,
    pub cached_size: ::protobuf::CachedSize,
}

impl<'a> ::std::default::Default for &'a PublishedFileDetails_VoteData {
    fn default() -> &'a PublishedFileDetails_VoteData {
        <PublishedFileDetails_VoteData as ::protobuf::Message>::default_instance()
    }
}

impl PublishedFileDetails_VoteData {
    pub fn new() -> PublishedFileDetails_VoteData {
        ::std::default::Default::default()
    }

    // optional float score = 1;


    pub fn get_score(&self) -> f32 {
        self.score.unwrap_or(0.)
    }
    pub fn clear_score(&mut self) {
        self.score = ::std::option::Option::None;
    }

    pub fn has_score(&self) -> bool {
        self.score.is_some()
    }

    // Param is passed by value, moved
    pub fn set_score(&mut self, v: f32) {
        self.score = ::std::option::Option::Some(v);
    }

    // optional uint32 votes_up = 2;


    pub fn get_votes_up(&self) -> u32 {
        self.votes_up.unwrap_or(0)
    }
    pub fn clear_votes_up(&mut self) {
        self.votes_up = ::std::option::Option::None;
    }

    pub fn has_votes_up(&self) -> bool {
        self.votes_up.is_some()
    }

    // Param is passed by value, moved
    pub fn set_votes_up(&mut self, v: u32) {
        self.votes_up = ::std::option::Option::Some(v);
    }

    // optional uint32 votes_down = 3;


    pub fn get_votes_down(&self) -> u32 {
        self.votes_down.unwrap_or(0)
    }
    pub fn clear_votes_down(&mut self) {
        self.votes_down = ::std::option::Option::None;
    }

    pub fn has_votes_down(&self) -> bool {
        self.votes_down.is_some()
    }

    // Param is passed by value, moved
    pub fn set_votes_down(&mut self, v: u32) {
        self.votes_down = ::std::option::Option::Some(v);
    }
}

impl ::protobuf::Message for PublishedFileDetails_VoteData {
    fn is_initialized(&self) -> bool {
        true
    }

    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
        while !is.eof()? {
            let (field_number, wire_type) = is.read_tag_unpack()?;
            match field_number {
                1 => {
                    if wire_type != ::protobuf::wire_format::WireTypeFixed32 {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_float()?;
                    self.score = ::std::option::Option::Some(tmp);
                },
                2 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_uint32()?;
                    self.votes_up = ::std::option::Option::Some(tmp);
                },
                3 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_uint32()?;
                    self.votes_down = ::std::option::Option::Some(tmp);
                },
                _ => {
                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
                },
            };
        }
        ::std::result::Result::Ok(())
    }

    // Compute sizes of nested messages
    #[allow(unused_variables)]
    fn compute_size(&self) -> u32 {
        let mut my_size = 0;
        if let Some(v) = self.score {
            my_size += 5;
        }
        if let Some(v) = self.votes_up {
            my_size += ::protobuf::rt::value_size(2, v, ::protobuf::wire_format::WireTypeVarint);
        }
        if let Some(v) = self.votes_down {
            my_size += ::protobuf::rt::value_size(3, v, ::protobuf::wire_format::WireTypeVarint);
        }
        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
        self.cached_size.set(my_size);
        my_size
    }

    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
        if let Some(v) = self.score {
            os.write_float(1, v)?;
        }
        if let Some(v) = self.votes_up {
            os.write_uint32(2, v)?;
        }
        if let Some(v) = self.votes_down {
            os.write_uint32(3, v)?;
        }
        os.write_unknown_fields(self.get_unknown_fields())?;
        ::std::result::Result::Ok(())
    }

    fn get_cached_size(&self) -> u32 {
        self.cached_size.get()
    }

    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
        &self.unknown_fields
    }

    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
        &mut self.unknown_fields
    }

    fn as_any(&self) -> &dyn (::std::any::Any) {
        self as &dyn (::std::any::Any)
    }
    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
        self as &mut dyn (::std::any::Any)
    }
    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
        self
    }

    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
        Self::descriptor_static()
    }

    fn new() -> PublishedFileDetails_VoteData {
        PublishedFileDetails_VoteData::new()
    }

    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
        descriptor.get(|| {
            let mut fields = ::std::vec::Vec::new();
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeFloat>(
                "score",
                |m: &PublishedFileDetails_VoteData| { &m.score },
                |m: &mut PublishedFileDetails_VoteData| { &mut m.score },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeUint32>(
                "votes_up",
                |m: &PublishedFileDetails_VoteData| { &m.votes_up },
                |m: &mut PublishedFileDetails_VoteData| { &mut m.votes_up },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeUint32>(
                "votes_down",
                |m: &PublishedFileDetails_VoteData| { &m.votes_down },
                |m: &mut PublishedFileDetails_VoteData| { &mut m.votes_down },
            ));
            ::protobuf::reflect::MessageDescriptor::new_pb_name::<PublishedFileDetails_VoteData>(
                "PublishedFileDetails.VoteData",
                fields,
                file_descriptor_proto()
            )
        })
    }

    fn default_instance() -> &'static PublishedFileDetails_VoteData {
        static instance: ::protobuf::rt::LazyV2<PublishedFileDetails_VoteData> = ::protobuf::rt::LazyV2::INIT;
        instance.get(PublishedFileDetails_VoteData::new)
    }
}

impl ::protobuf::Clear for PublishedFileDetails_VoteData {
    fn clear(&mut self) {
        self.score = ::std::option::Option::None;
        self.votes_up = ::std::option::Option::None;
        self.votes_down = ::std::option::Option::None;
        self.unknown_fields.clear();
    }
}

impl ::std::fmt::Debug for PublishedFileDetails_VoteData {
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
        ::protobuf::text_format::fmt(self, f)
    }
}

impl ::protobuf::reflect::ProtobufValue for PublishedFileDetails_VoteData {
    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
        ::protobuf::reflect::ReflectValueRef::Message(self)
    }
}

#[derive(PartialEq,Clone,Default)]
pub struct PublishedFileDetails_ForSaleData {
    // message fields
    is_for_sale: ::std::option::Option<bool>,
    price_category: ::std::option::Option<u32>,
    estatus: ::std::option::Option<EPublishedFileForSaleStatus>,
    price_category_floor: ::std::option::Option<u32>,
    price_is_pay_what_you_want: ::std::option::Option<bool>,
    discount_percentage: ::std::option::Option<u32>,
    // special fields
    pub unknown_fields: ::protobuf::UnknownFields,
    pub cached_size: ::protobuf::CachedSize,
}

impl<'a> ::std::default::Default for &'a PublishedFileDetails_ForSaleData {
    fn default() -> &'a PublishedFileDetails_ForSaleData {
        <PublishedFileDetails_ForSaleData as ::protobuf::Message>::default_instance()
    }
}

impl PublishedFileDetails_ForSaleData {
    pub fn new() -> PublishedFileDetails_ForSaleData {
        ::std::default::Default::default()
    }

    // optional bool is_for_sale = 1;


    pub fn get_is_for_sale(&self) -> bool {
        self.is_for_sale.unwrap_or(false)
    }
    pub fn clear_is_for_sale(&mut self) {
        self.is_for_sale = ::std::option::Option::None;
    }

    pub fn has_is_for_sale(&self) -> bool {
        self.is_for_sale.is_some()
    }

    // Param is passed by value, moved
    pub fn set_is_for_sale(&mut self, v: bool) {
        self.is_for_sale = ::std::option::Option::Some(v);
    }

    // optional uint32 price_category = 2;


    pub fn get_price_category(&self) -> u32 {
        self.price_category.unwrap_or(0)
    }
    pub fn clear_price_category(&mut self) {
        self.price_category = ::std::option::Option::None;
    }

    pub fn has_price_category(&self) -> bool {
        self.price_category.is_some()
    }

    // Param is passed by value, moved
    pub fn set_price_category(&mut self, v: u32) {
        self.price_category = ::std::option::Option::Some(v);
    }

    // optional .EPublishedFileForSaleStatus estatus = 3;


    pub fn get_estatus(&self) -> EPublishedFileForSaleStatus {
        self.estatus.unwrap_or(EPublishedFileForSaleStatus::k_PFFSS_NotForSale)
    }
    pub fn clear_estatus(&mut self) {
        self.estatus = ::std::option::Option::None;
    }

    pub fn has_estatus(&self) -> bool {
        self.estatus.is_some()
    }

    // Param is passed by value, moved
    pub fn set_estatus(&mut self, v: EPublishedFileForSaleStatus) {
        self.estatus = ::std::option::Option::Some(v);
    }

    // optional uint32 price_category_floor = 4;


    pub fn get_price_category_floor(&self) -> u32 {
        self.price_category_floor.unwrap_or(0)
    }
    pub fn clear_price_category_floor(&mut self) {
        self.price_category_floor = ::std::option::Option::None;
    }

    pub fn has_price_category_floor(&self) -> bool {
        self.price_category_floor.is_some()
    }

    // Param is passed by value, moved
    pub fn set_price_category_floor(&mut self, v: u32) {
        self.price_category_floor = ::std::option::Option::Some(v);
    }

    // optional bool price_is_pay_what_you_want = 5;


    pub fn get_price_is_pay_what_you_want(&self) -> bool {
        self.price_is_pay_what_you_want.unwrap_or(false)
    }
    pub fn clear_price_is_pay_what_you_want(&mut self) {
        self.price_is_pay_what_you_want = ::std::option::Option::None;
    }

    pub fn has_price_is_pay_what_you_want(&self) -> bool {
        self.price_is_pay_what_you_want.is_some()
    }

    // Param is passed by value, moved
    pub fn set_price_is_pay_what_you_want(&mut self, v: bool) {
        self.price_is_pay_what_you_want = ::std::option::Option::Some(v);
    }

    // optional uint32 discount_percentage = 6;


    pub fn get_discount_percentage(&self) -> u32 {
        self.discount_percentage.unwrap_or(0)
    }
    pub fn clear_discount_percentage(&mut self) {
        self.discount_percentage = ::std::option::Option::None;
    }

    pub fn has_discount_percentage(&self) -> bool {
        self.discount_percentage.is_some()
    }

    // Param is passed by value, moved
    pub fn set_discount_percentage(&mut self, v: u32) {
        self.discount_percentage = ::std::option::Option::Some(v);
    }
}

impl ::protobuf::Message for PublishedFileDetails_ForSaleData {
    fn is_initialized(&self) -> bool {
        true
    }

    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
        while !is.eof()? {
            let (field_number, wire_type) = is.read_tag_unpack()?;
            match field_number {
                1 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_bool()?;
                    self.is_for_sale = ::std::option::Option::Some(tmp);
                },
                2 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_uint32()?;
                    self.price_category = ::std::option::Option::Some(tmp);
                },
                3 => {
                    ::protobuf::rt::read_proto2_enum_with_unknown_fields_into(wire_type, is, &mut self.estatus, 3, &mut self.unknown_fields)?
                },
                4 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_uint32()?;
                    self.price_category_floor = ::std::option::Option::Some(tmp);
                },
                5 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_bool()?;
                    self.price_is_pay_what_you_want = ::std::option::Option::Some(tmp);
                },
                6 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_uint32()?;
                    self.discount_percentage = ::std::option::Option::Some(tmp);
                },
                _ => {
                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
                },
            };
        }
        ::std::result::Result::Ok(())
    }

    // Compute sizes of nested messages
    #[allow(unused_variables)]
    fn compute_size(&self) -> u32 {
        let mut my_size = 0;
        if let Some(v) = self.is_for_sale {
            my_size += 2;
        }
        if let Some(v) = self.price_category {
            my_size += ::protobuf::rt::value_size(2, v, ::protobuf::wire_format::WireTypeVarint);
        }
        if let Some(v) = self.estatus {
            my_size += ::protobuf::rt::enum_size(3, v);
        }
        if let Some(v) = self.price_category_floor {
            my_size += ::protobuf::rt::value_size(4, v, ::protobuf::wire_format::WireTypeVarint);
        }
        if let Some(v) = self.price_is_pay_what_you_want {
            my_size += 2;
        }
        if let Some(v) = self.discount_percentage {
            my_size += ::protobuf::rt::value_size(6, v, ::protobuf::wire_format::WireTypeVarint);
        }
        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
        self.cached_size.set(my_size);
        my_size
    }

    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
        if let Some(v) = self.is_for_sale {
            os.write_bool(1, v)?;
        }
        if let Some(v) = self.price_category {
            os.write_uint32(2, v)?;
        }
        if let Some(v) = self.estatus {
            os.write_enum(3, ::protobuf::ProtobufEnum::value(&v))?;
        }
        if let Some(v) = self.price_category_floor {
            os.write_uint32(4, v)?;
        }
        if let Some(v) = self.price_is_pay_what_you_want {
            os.write_bool(5, v)?;
        }
        if let Some(v) = self.discount_percentage {
            os.write_uint32(6, v)?;
        }
        os.write_unknown_fields(self.get_unknown_fields())?;
        ::std::result::Result::Ok(())
    }

    fn get_cached_size(&self) -> u32 {
        self.cached_size.get()
    }

    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
        &self.unknown_fields
    }

    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
        &mut self.unknown_fields
    }

    fn as_any(&self) -> &dyn (::std::any::Any) {
        self as &dyn (::std::any::Any)
    }
    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
        self as &mut dyn (::std::any::Any)
    }
    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
        self
    }

    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
        Self::descriptor_static()
    }

    fn new() -> PublishedFileDetails_ForSaleData {
        PublishedFileDetails_ForSaleData::new()
    }

    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
        descriptor.get(|| {
            let mut fields = ::std::vec::Vec::new();
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeBool>(
                "is_for_sale",
                |m: &PublishedFileDetails_ForSaleData| { &m.is_for_sale },
                |m: &mut PublishedFileDetails_ForSaleData| { &mut m.is_for_sale },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeUint32>(
                "price_category",
                |m: &PublishedFileDetails_ForSaleData| { &m.price_category },
                |m: &mut PublishedFileDetails_ForSaleData| { &mut m.price_category },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeEnum<EPublishedFileForSaleStatus>>(
                "estatus",
                |m: &PublishedFileDetails_ForSaleData| { &m.estatus },
                |m: &mut PublishedFileDetails_ForSaleData| { &mut m.estatus },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeUint32>(
                "price_category_floor",
                |m: &PublishedFileDetails_ForSaleData| { &m.price_category_floor },
                |m: &mut PublishedFileDetails_ForSaleData| { &mut m.price_category_floor },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeBool>(
                "price_is_pay_what_you_want",
                |m: &PublishedFileDetails_ForSaleData| { &m.price_is_pay_what_you_want },
                |m: &mut PublishedFileDetails_ForSaleData| { &mut m.price_is_pay_what_you_want },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeUint32>(
                "discount_percentage",
                |m: &PublishedFileDetails_ForSaleData| { &m.discount_percentage },
                |m: &mut PublishedFileDetails_ForSaleData| { &mut m.discount_percentage },
            ));
            ::protobuf::reflect::MessageDescriptor::new_pb_name::<PublishedFileDetails_ForSaleData>(
                "PublishedFileDetails.ForSaleData",
                fields,
                file_descriptor_proto()
            )
        })
    }

    fn default_instance() -> &'static PublishedFileDetails_ForSaleData {
        static instance: ::protobuf::rt::LazyV2<PublishedFileDetails_ForSaleData> = ::protobuf::rt::LazyV2::INIT;
        instance.get(PublishedFileDetails_ForSaleData::new)
    }
}

impl ::protobuf::Clear for PublishedFileDetails_ForSaleData {
    fn clear(&mut self) {
        self.is_for_sale = ::std::option::Option::None;
        self.price_category = ::std::option::Option::None;
        self.estatus = ::std::option::Option::None;
        self.price_category_floor = ::std::option::Option::None;
        self.price_is_pay_what_you_want = ::std::option::Option::None;
        self.discount_percentage = ::std::option::Option::None;
        self.unknown_fields.clear();
    }
}

impl ::std::fmt::Debug for PublishedFileDetails_ForSaleData {
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
        ::protobuf::text_format::fmt(self, f)
    }
}

impl ::protobuf::reflect::ProtobufValue for PublishedFileDetails_ForSaleData {
    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
        ::protobuf::reflect::ReflectValueRef::Message(self)
    }
}

#[derive(PartialEq,Clone,Default)]
pub struct PublishedFileDetails_PlaytimeStats {
    // message fields
    playtime_seconds: ::std::option::Option<u64>,
    num_sessions: ::std::option::Option<u64>,
    // special fields
    pub unknown_fields: ::protobuf::UnknownFields,
    pub cached_size: ::protobuf::CachedSize,
}

impl<'a> ::std::default::Default for &'a PublishedFileDetails_PlaytimeStats {
    fn default() -> &'a PublishedFileDetails_PlaytimeStats {
        <PublishedFileDetails_PlaytimeStats as ::protobuf::Message>::default_instance()
    }
}

impl PublishedFileDetails_PlaytimeStats {
    pub fn new() -> PublishedFileDetails_PlaytimeStats {
        ::std::default::Default::default()
    }

    // optional uint64 playtime_seconds = 1;


    pub fn get_playtime_seconds(&self) -> u64 {
        self.playtime_seconds.unwrap_or(0)
    }
    pub fn clear_playtime_seconds(&mut self) {
        self.playtime_seconds = ::std::option::Option::None;
    }

    pub fn has_playtime_seconds(&self) -> bool {
        self.playtime_seconds.is_some()
    }

    // Param is passed by value, moved
    pub fn set_playtime_seconds(&mut self, v: u64) {
        self.playtime_seconds = ::std::option::Option::Some(v);
    }

    // optional uint64 num_sessions = 2;


    pub fn get_num_sessions(&self) -> u64 {
        self.num_sessions.unwrap_or(0)
    }
    pub fn clear_num_sessions(&mut self) {
        self.num_sessions = ::std::option::Option::None;
    }

    pub fn has_num_sessions(&self) -> bool {
        self.num_sessions.is_some()
    }

    // Param is passed by value, moved
    pub fn set_num_sessions(&mut self, v: u64) {
        self.num_sessions = ::std::option::Option::Some(v);
    }
}

impl ::protobuf::Message for PublishedFileDetails_PlaytimeStats {
    fn is_initialized(&self) -> bool {
        true
    }

    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
        while !is.eof()? {
            let (field_number, wire_type) = is.read_tag_unpack()?;
            match field_number {
                1 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_uint64()?;
                    self.playtime_seconds = ::std::option::Option::Some(tmp);
                },
                2 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_uint64()?;
                    self.num_sessions = ::std::option::Option::Some(tmp);
                },
                _ => {
                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
                },
            };
        }
        ::std::result::Result::Ok(())
    }

    // Compute sizes of nested messages
    #[allow(unused_variables)]
    fn compute_size(&self) -> u32 {
        let mut my_size = 0;
        if let Some(v) = self.playtime_seconds {
            my_size += ::protobuf::rt::value_size(1, v, ::protobuf::wire_format::WireTypeVarint);
        }
        if let Some(v) = self.num_sessions {
            my_size += ::protobuf::rt::value_size(2, v, ::protobuf::wire_format::WireTypeVarint);
        }
        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
        self.cached_size.set(my_size);
        my_size
    }

    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
        if let Some(v) = self.playtime_seconds {
            os.write_uint64(1, v)?;
        }
        if let Some(v) = self.num_sessions {
            os.write_uint64(2, v)?;
        }
        os.write_unknown_fields(self.get_unknown_fields())?;
        ::std::result::Result::Ok(())
    }

    fn get_cached_size(&self) -> u32 {
        self.cached_size.get()
    }

    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
        &self.unknown_fields
    }

    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
        &mut self.unknown_fields
    }

    fn as_any(&self) -> &dyn (::std::any::Any) {
        self as &dyn (::std::any::Any)
    }
    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
        self as &mut dyn (::std::any::Any)
    }
    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
        self
    }

    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
        Self::descriptor_static()
    }

    fn new() -> PublishedFileDetails_PlaytimeStats {
        PublishedFileDetails_PlaytimeStats::new()
    }

    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
        descriptor.get(|| {
            let mut fields = ::std::vec::Vec::new();
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeUint64>(
                "playtime_seconds",
                |m: &PublishedFileDetails_PlaytimeStats| { &m.playtime_seconds },
                |m: &mut PublishedFileDetails_PlaytimeStats| { &mut m.playtime_seconds },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeUint64>(
                "num_sessions",
                |m: &PublishedFileDetails_PlaytimeStats| { &m.num_sessions },
                |m: &mut PublishedFileDetails_PlaytimeStats| { &mut m.num_sessions },
            ));
            ::protobuf::reflect::MessageDescriptor::new_pb_name::<PublishedFileDetails_PlaytimeStats>(
                "PublishedFileDetails.PlaytimeStats",
                fields,
                file_descriptor_proto()
            )
        })
    }

    fn default_instance() -> &'static PublishedFileDetails_PlaytimeStats {
        static instance: ::protobuf::rt::LazyV2<PublishedFileDetails_PlaytimeStats> = ::protobuf::rt::LazyV2::INIT;
        instance.get(PublishedFileDetails_PlaytimeStats::new)
    }
}

impl ::protobuf::Clear for PublishedFileDetails_PlaytimeStats {
    fn clear(&mut self) {
        self.playtime_seconds = ::std::option::Option::None;
        self.num_sessions = ::std::option::Option::None;
        self.unknown_fields.clear();
    }
}

impl ::std::fmt::Debug for PublishedFileDetails_PlaytimeStats {
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
        ::protobuf::text_format::fmt(self, f)
    }
}

impl ::protobuf::reflect::ProtobufValue for PublishedFileDetails_PlaytimeStats {
    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
        ::protobuf::reflect::ReflectValueRef::Message(self)
    }
}

#[derive(PartialEq,Clone,Default)]
pub struct PublishedFileDetails_Reaction {
    // message fields
    reactionid: ::std::option::Option<u32>,
    count: ::std::option::Option<u32>,
    // special fields
    pub unknown_fields: ::protobuf::UnknownFields,
    pub cached_size: ::protobuf::CachedSize,
}

impl<'a> ::std::default::Default for &'a PublishedFileDetails_Reaction {
    fn default() -> &'a PublishedFileDetails_Reaction {
        <PublishedFileDetails_Reaction as ::protobuf::Message>::default_instance()
    }
}

impl PublishedFileDetails_Reaction {
    pub fn new() -> PublishedFileDetails_Reaction {
        ::std::default::Default::default()
    }

    // optional uint32 reactionid = 1;


    pub fn get_reactionid(&self) -> u32 {
        self.reactionid.unwrap_or(0)
    }
    pub fn clear_reactionid(&mut self) {
        self.reactionid = ::std::option::Option::None;
    }

    pub fn has_reactionid(&self) -> bool {
        self.reactionid.is_some()
    }

    // Param is passed by value, moved
    pub fn set_reactionid(&mut self, v: u32) {
        self.reactionid = ::std::option::Option::Some(v);
    }

    // optional uint32 count = 2;


    pub fn get_count(&self) -> u32 {
        self.count.unwrap_or(0)
    }
    pub fn clear_count(&mut self) {
        self.count = ::std::option::Option::None;
    }

    pub fn has_count(&self) -> bool {
        self.count.is_some()
    }

    // Param is passed by value, moved
    pub fn set_count(&mut self, v: u32) {
        self.count = ::std::option::Option::Some(v);
    }
}

impl ::protobuf::Message for PublishedFileDetails_Reaction {
    fn is_initialized(&self) -> bool {
        true
    }

    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
        while !is.eof()? {
            let (field_number, wire_type) = is.read_tag_unpack()?;
            match field_number {
                1 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_uint32()?;
                    self.reactionid = ::std::option::Option::Some(tmp);
                },
                2 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_uint32()?;
                    self.count = ::std::option::Option::Some(tmp);
                },
                _ => {
                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
                },
            };
        }
        ::std::result::Result::Ok(())
    }

    // Compute sizes of nested messages
    #[allow(unused_variables)]
    fn compute_size(&self) -> u32 {
        let mut my_size = 0;
        if let Some(v) = self.reactionid {
            my_size += ::protobuf::rt::value_size(1, v, ::protobuf::wire_format::WireTypeVarint);
        }
        if let Some(v) = self.count {
            my_size += ::protobuf::rt::value_size(2, v, ::protobuf::wire_format::WireTypeVarint);
        }
        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
        self.cached_size.set(my_size);
        my_size
    }

    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
        if let Some(v) = self.reactionid {
            os.write_uint32(1, v)?;
        }
        if let Some(v) = self.count {
            os.write_uint32(2, v)?;
        }
        os.write_unknown_fields(self.get_unknown_fields())?;
        ::std::result::Result::Ok(())
    }

    fn get_cached_size(&self) -> u32 {
        self.cached_size.get()
    }

    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
        &self.unknown_fields
    }

    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
        &mut self.unknown_fields
    }

    fn as_any(&self) -> &dyn (::std::any::Any) {
        self as &dyn (::std::any::Any)
    }
    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
        self as &mut dyn (::std::any::Any)
    }
    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
        self
    }

    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
        Self::descriptor_static()
    }

    fn new() -> PublishedFileDetails_Reaction {
        PublishedFileDetails_Reaction::new()
    }

    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
        descriptor.get(|| {
            let mut fields = ::std::vec::Vec::new();
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeUint32>(
                "reactionid",
                |m: &PublishedFileDetails_Reaction| { &m.reactionid },
                |m: &mut PublishedFileDetails_Reaction| { &mut m.reactionid },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeUint32>(
                "count",
                |m: &PublishedFileDetails_Reaction| { &m.count },
                |m: &mut PublishedFileDetails_Reaction| { &mut m.count },
            ));
            ::protobuf::reflect::MessageDescriptor::new_pb_name::<PublishedFileDetails_Reaction>(
                "PublishedFileDetails.Reaction",
                fields,
                file_descriptor_proto()
            )
        })
    }

    fn default_instance() -> &'static PublishedFileDetails_Reaction {
        static instance: ::protobuf::rt::LazyV2<PublishedFileDetails_Reaction> = ::protobuf::rt::LazyV2::INIT;
        instance.get(PublishedFileDetails_Reaction::new)
    }
}

impl ::protobuf::Clear for PublishedFileDetails_Reaction {
    fn clear(&mut self) {
        self.reactionid = ::std::option::Option::None;
        self.count = ::std::option::Option::None;
        self.unknown_fields.clear();
    }
}

impl ::std::fmt::Debug for PublishedFileDetails_Reaction {
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
        ::protobuf::text_format::fmt(self, f)
    }
}

impl ::protobuf::reflect::ProtobufValue for PublishedFileDetails_Reaction {
    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
        ::protobuf::reflect::ReflectValueRef::Message(self)
    }
}

#[derive(PartialEq,Clone,Default)]
pub struct CPublishedFile_GetDetails_Response {
    // message fields
    pub publishedfiledetails: ::protobuf::RepeatedField<PublishedFileDetails>,
    // special fields
    pub unknown_fields: ::protobuf::UnknownFields,
    pub cached_size: ::protobuf::CachedSize,
}

impl<'a> ::std::default::Default for &'a CPublishedFile_GetDetails_Response {
    fn default() -> &'a CPublishedFile_GetDetails_Response {
        <CPublishedFile_GetDetails_Response as ::protobuf::Message>::default_instance()
    }
}

impl CPublishedFile_GetDetails_Response {
    pub fn new() -> CPublishedFile_GetDetails_Response {
        ::std::default::Default::default()
    }

    // repeated .PublishedFileDetails publishedfiledetails = 1;


    pub fn get_publishedfiledetails(&self) -> &[PublishedFileDetails] {
        &self.publishedfiledetails
    }
    pub fn clear_publishedfiledetails(&mut self) {
        self.publishedfiledetails.clear();
    }

    // Param is passed by value, moved
    pub fn set_publishedfiledetails(&mut self, v: ::protobuf::RepeatedField<PublishedFileDetails>) {
        self.publishedfiledetails = v;
    }

    // Mutable pointer to the field.
    pub fn mut_publishedfiledetails(&mut self) -> &mut ::protobuf::RepeatedField<PublishedFileDetails> {
        &mut self.publishedfiledetails
    }

    // Take field
    pub fn take_publishedfiledetails(&mut self) -> ::protobuf::RepeatedField<PublishedFileDetails> {
        ::std::mem::replace(&mut self.publishedfiledetails, ::protobuf::RepeatedField::new())
    }
}

impl ::protobuf::Message for CPublishedFile_GetDetails_Response {
    fn is_initialized(&self) -> bool {
        for v in &self.publishedfiledetails {
            if !v.is_initialized() {
                return false;
            }
        };
        true
    }

    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
        while !is.eof()? {
            let (field_number, wire_type) = is.read_tag_unpack()?;
            match field_number {
                1 => {
                    ::protobuf::rt::read_repeated_message_into(wire_type, is, &mut self.publishedfiledetails)?;
                },
                _ => {
                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
                },
            };
        }
        ::std::result::Result::Ok(())
    }

    // Compute sizes of nested messages
    #[allow(unused_variables)]
    fn compute_size(&self) -> u32 {
        let mut my_size = 0;
        for value in &self.publishedfiledetails {
            let len = value.compute_size();
            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
        };
        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
        self.cached_size.set(my_size);
        my_size
    }

    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
        for v in &self.publishedfiledetails {
            os.write_tag(1, ::protobuf::wire_format::WireTypeLengthDelimited)?;
            os.write_raw_varint32(v.get_cached_size())?;
            v.write_to_with_cached_sizes(os)?;
        };
        os.write_unknown_fields(self.get_unknown_fields())?;
        ::std::result::Result::Ok(())
    }

    fn get_cached_size(&self) -> u32 {
        self.cached_size.get()
    }

    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
        &self.unknown_fields
    }

    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
        &mut self.unknown_fields
    }

    fn as_any(&self) -> &dyn (::std::any::Any) {
        self as &dyn (::std::any::Any)
    }
    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
        self as &mut dyn (::std::any::Any)
    }
    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
        self
    }

    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
        Self::descriptor_static()
    }

    fn new() -> CPublishedFile_GetDetails_Response {
        CPublishedFile_GetDetails_Response::new()
    }

    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
        descriptor.get(|| {
            let mut fields = ::std::vec::Vec::new();
            fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<PublishedFileDetails>>(
                "publishedfiledetails",
                |m: &CPublishedFile_GetDetails_Response| { &m.publishedfiledetails },
                |m: &mut CPublishedFile_GetDetails_Response| { &mut m.publishedfiledetails },
            ));
            ::protobuf::reflect::MessageDescriptor::new_pb_name::<CPublishedFile_GetDetails_Response>(
                "CPublishedFile_GetDetails_Response",
                fields,
                file_descriptor_proto()
            )
        })
    }

    fn default_instance() -> &'static CPublishedFile_GetDetails_Response {
        static instance: ::protobuf::rt::LazyV2<CPublishedFile_GetDetails_Response> = ::protobuf::rt::LazyV2::INIT;
        instance.get(CPublishedFile_GetDetails_Response::new)
    }
}

impl ::protobuf::Clear for CPublishedFile_GetDetails_Response {
    fn clear(&mut self) {
        self.publishedfiledetails.clear();
        self.unknown_fields.clear();
    }
}

impl ::std::fmt::Debug for CPublishedFile_GetDetails_Response {
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
        ::protobuf::text_format::fmt(self, f)
    }
}

impl ::protobuf::reflect::ProtobufValue for CPublishedFile_GetDetails_Response {
    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
        ::protobuf::reflect::ReflectValueRef::Message(self)
    }
}

#[derive(PartialEq,Clone,Default)]
pub struct CPublishedFile_GetItemInfo_Request {
    // message fields
    app_id: ::std::option::Option<u32>,
    last_time_updated: ::std::option::Option<u32>,
    pub workshop_items: ::protobuf::RepeatedField<CPublishedFile_GetItemInfo_Request_WorkshopItem>,
    // special fields
    pub unknown_fields: ::protobuf::UnknownFields,
    pub cached_size: ::protobuf::CachedSize,
}

impl<'a> ::std::default::Default for &'a CPublishedFile_GetItemInfo_Request {
    fn default() -> &'a CPublishedFile_GetItemInfo_Request {
        <CPublishedFile_GetItemInfo_Request as ::protobuf::Message>::default_instance()
    }
}

impl CPublishedFile_GetItemInfo_Request {
    pub fn new() -> CPublishedFile_GetItemInfo_Request {
        ::std::default::Default::default()
    }

    // optional uint32 app_id = 1;


    pub fn get_app_id(&self) -> u32 {
        self.app_id.unwrap_or(0)
    }
    pub fn clear_app_id(&mut self) {
        self.app_id = ::std::option::Option::None;
    }

    pub fn has_app_id(&self) -> bool {
        self.app_id.is_some()
    }

    // Param is passed by value, moved
    pub fn set_app_id(&mut self, v: u32) {
        self.app_id = ::std::option::Option::Some(v);
    }

    // optional uint32 last_time_updated = 2;


    pub fn get_last_time_updated(&self) -> u32 {
        self.last_time_updated.unwrap_or(0)
    }
    pub fn clear_last_time_updated(&mut self) {
        self.last_time_updated = ::std::option::Option::None;
    }

    pub fn has_last_time_updated(&self) -> bool {
        self.last_time_updated.is_some()
    }

    // Param is passed by value, moved
    pub fn set_last_time_updated(&mut self, v: u32) {
        self.last_time_updated = ::std::option::Option::Some(v);
    }

    // repeated .CPublishedFile_GetItemInfo_Request.WorkshopItem workshop_items = 3;


    pub fn get_workshop_items(&self) -> &[CPublishedFile_GetItemInfo_Request_WorkshopItem] {
        &self.workshop_items
    }
    pub fn clear_workshop_items(&mut self) {
        self.workshop_items.clear();
    }

    // Param is passed by value, moved
    pub fn set_workshop_items(&mut self, v: ::protobuf::RepeatedField<CPublishedFile_GetItemInfo_Request_WorkshopItem>) {
        self.workshop_items = v;
    }

    // Mutable pointer to the field.
    pub fn mut_workshop_items(&mut self) -> &mut ::protobuf::RepeatedField<CPublishedFile_GetItemInfo_Request_WorkshopItem> {
        &mut self.workshop_items
    }

    // Take field
    pub fn take_workshop_items(&mut self) -> ::protobuf::RepeatedField<CPublishedFile_GetItemInfo_Request_WorkshopItem> {
        ::std::mem::replace(&mut self.workshop_items, ::protobuf::RepeatedField::new())
    }
}

impl ::protobuf::Message for CPublishedFile_GetItemInfo_Request {
    fn is_initialized(&self) -> bool {
        for v in &self.workshop_items {
            if !v.is_initialized() {
                return false;
            }
        };
        true
    }

    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
        while !is.eof()? {
            let (field_number, wire_type) = is.read_tag_unpack()?;
            match field_number {
                1 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_uint32()?;
                    self.app_id = ::std::option::Option::Some(tmp);
                },
                2 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_uint32()?;
                    self.last_time_updated = ::std::option::Option::Some(tmp);
                },
                3 => {
                    ::protobuf::rt::read_repeated_message_into(wire_type, is, &mut self.workshop_items)?;
                },
                _ => {
                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
                },
            };
        }
        ::std::result::Result::Ok(())
    }

    // Compute sizes of nested messages
    #[allow(unused_variables)]
    fn compute_size(&self) -> u32 {
        let mut my_size = 0;
        if let Some(v) = self.app_id {
            my_size += ::protobuf::rt::value_size(1, v, ::protobuf::wire_format::WireTypeVarint);
        }
        if let Some(v) = self.last_time_updated {
            my_size += ::protobuf::rt::value_size(2, v, ::protobuf::wire_format::WireTypeVarint);
        }
        for value in &self.workshop_items {
            let len = value.compute_size();
            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
        };
        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
        self.cached_size.set(my_size);
        my_size
    }

    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
        if let Some(v) = self.app_id {
            os.write_uint32(1, v)?;
        }
        if let Some(v) = self.last_time_updated {
            os.write_uint32(2, v)?;
        }
        for v in &self.workshop_items {
            os.write_tag(3, ::protobuf::wire_format::WireTypeLengthDelimited)?;
            os.write_raw_varint32(v.get_cached_size())?;
            v.write_to_with_cached_sizes(os)?;
        };
        os.write_unknown_fields(self.get_unknown_fields())?;
        ::std::result::Result::Ok(())
    }

    fn get_cached_size(&self) -> u32 {
        self.cached_size.get()
    }

    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
        &self.unknown_fields
    }

    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
        &mut self.unknown_fields
    }

    fn as_any(&self) -> &dyn (::std::any::Any) {
        self as &dyn (::std::any::Any)
    }
    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
        self as &mut dyn (::std::any::Any)
    }
    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
        self
    }

    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
        Self::descriptor_static()
    }

    fn new() -> CPublishedFile_GetItemInfo_Request {
        CPublishedFile_GetItemInfo_Request::new()
    }

    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
        descriptor.get(|| {
            let mut fields = ::std::vec::Vec::new();
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeUint32>(
                "app_id",
                |m: &CPublishedFile_GetItemInfo_Request| { &m.app_id },
                |m: &mut CPublishedFile_GetItemInfo_Request| { &mut m.app_id },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeUint32>(
                "last_time_updated",
                |m: &CPublishedFile_GetItemInfo_Request| { &m.last_time_updated },
                |m: &mut CPublishedFile_GetItemInfo_Request| { &mut m.last_time_updated },
            ));
            fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<CPublishedFile_GetItemInfo_Request_WorkshopItem>>(
                "workshop_items",
                |m: &CPublishedFile_GetItemInfo_Request| { &m.workshop_items },
                |m: &mut CPublishedFile_GetItemInfo_Request| { &mut m.workshop_items },
            ));
            ::protobuf::reflect::MessageDescriptor::new_pb_name::<CPublishedFile_GetItemInfo_Request>(
                "CPublishedFile_GetItemInfo_Request",
                fields,
                file_descriptor_proto()
            )
        })
    }

    fn default_instance() -> &'static CPublishedFile_GetItemInfo_Request {
        static instance: ::protobuf::rt::LazyV2<CPublishedFile_GetItemInfo_Request> = ::protobuf::rt::LazyV2::INIT;
        instance.get(CPublishedFile_GetItemInfo_Request::new)
    }
}

impl ::protobuf::Clear for CPublishedFile_GetItemInfo_Request {
    fn clear(&mut self) {
        self.app_id = ::std::option::Option::None;
        self.last_time_updated = ::std::option::Option::None;
        self.workshop_items.clear();
        self.unknown_fields.clear();
    }
}

impl ::std::fmt::Debug for CPublishedFile_GetItemInfo_Request {
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
        ::protobuf::text_format::fmt(self, f)
    }
}

impl ::protobuf::reflect::ProtobufValue for CPublishedFile_GetItemInfo_Request {
    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
        ::protobuf::reflect::ReflectValueRef::Message(self)
    }
}

#[derive(PartialEq,Clone,Default)]
pub struct CPublishedFile_GetItemInfo_Request_WorkshopItem {
    // message fields
    published_file_id: ::std::option::Option<u64>,
    time_updated: ::std::option::Option<u32>,
    desired_revision: ::std::option::Option<EPublishedFileRevision>,
    // special fields
    pub unknown_fields: ::protobuf::UnknownFields,
    pub cached_size: ::protobuf::CachedSize,
}

impl<'a> ::std::default::Default for &'a CPublishedFile_GetItemInfo_Request_WorkshopItem {
    fn default() -> &'a CPublishedFile_GetItemInfo_Request_WorkshopItem {
        <CPublishedFile_GetItemInfo_Request_WorkshopItem as ::protobuf::Message>::default_instance()
    }
}

impl CPublishedFile_GetItemInfo_Request_WorkshopItem {
    pub fn new() -> CPublishedFile_GetItemInfo_Request_WorkshopItem {
        ::std::default::Default::default()
    }

    // optional fixed64 published_file_id = 1;


    pub fn get_published_file_id(&self) -> u64 {
        self.published_file_id.unwrap_or(0)
    }
    pub fn clear_published_file_id(&mut self) {
        self.published_file_id = ::std::option::Option::None;
    }

    pub fn has_published_file_id(&self) -> bool {
        self.published_file_id.is_some()
    }

    // Param is passed by value, moved
    pub fn set_published_file_id(&mut self, v: u64) {
        self.published_file_id = ::std::option::Option::Some(v);
    }

    // optional uint32 time_updated = 2;


    pub fn get_time_updated(&self) -> u32 {
        self.time_updated.unwrap_or(0)
    }
    pub fn clear_time_updated(&mut self) {
        self.time_updated = ::std::option::Option::None;
    }

    pub fn has_time_updated(&self) -> bool {
        self.time_updated.is_some()
    }

    // Param is passed by value, moved
    pub fn set_time_updated(&mut self, v: u32) {
        self.time_updated = ::std::option::Option::Some(v);
    }

    // optional .EPublishedFileRevision desired_revision = 3;


    pub fn get_desired_revision(&self) -> EPublishedFileRevision {
        self.desired_revision.unwrap_or(EPublishedFileRevision::k_EPublishedFileRevision_Default)
    }
    pub fn clear_desired_revision(&mut self) {
        self.desired_revision = ::std::option::Option::None;
    }

    pub fn has_desired_revision(&self) -> bool {
        self.desired_revision.is_some()
    }

    // Param is passed by value, moved
    pub fn set_desired_revision(&mut self, v: EPublishedFileRevision) {
        self.desired_revision = ::std::option::Option::Some(v);
    }
}

impl ::protobuf::Message for CPublishedFile_GetItemInfo_Request_WorkshopItem {
    fn is_initialized(&self) -> bool {
        true
    }

    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
        while !is.eof()? {
            let (field_number, wire_type) = is.read_tag_unpack()?;
            match field_number {
                1 => {
                    if wire_type != ::protobuf::wire_format::WireTypeFixed64 {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_fixed64()?;
                    self.published_file_id = ::std::option::Option::Some(tmp);
                },
                2 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_uint32()?;
                    self.time_updated = ::std::option::Option::Some(tmp);
                },
                3 => {
                    ::protobuf::rt::read_proto2_enum_with_unknown_fields_into(wire_type, is, &mut self.desired_revision, 3, &mut self.unknown_fields)?
                },
                _ => {
                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
                },
            };
        }
        ::std::result::Result::Ok(())
    }

    // Compute sizes of nested messages
    #[allow(unused_variables)]
    fn compute_size(&self) -> u32 {
        let mut my_size = 0;
        if let Some(v) = self.published_file_id {
            my_size += 9;
        }
        if let Some(v) = self.time_updated {
            my_size += ::protobuf::rt::value_size(2, v, ::protobuf::wire_format::WireTypeVarint);
        }
        if let Some(v) = self.desired_revision {
            my_size += ::protobuf::rt::enum_size(3, v);
        }
        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
        self.cached_size.set(my_size);
        my_size
    }

    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
        if let Some(v) = self.published_file_id {
            os.write_fixed64(1, v)?;
        }
        if let Some(v) = self.time_updated {
            os.write_uint32(2, v)?;
        }
        if let Some(v) = self.desired_revision {
            os.write_enum(3, ::protobuf::ProtobufEnum::value(&v))?;
        }
        os.write_unknown_fields(self.get_unknown_fields())?;
        ::std::result::Result::Ok(())
    }

    fn get_cached_size(&self) -> u32 {
        self.cached_size.get()
    }

    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
        &self.unknown_fields
    }

    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
        &mut self.unknown_fields
    }

    fn as_any(&self) -> &dyn (::std::any::Any) {
        self as &dyn (::std::any::Any)
    }
    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
        self as &mut dyn (::std::any::Any)
    }
    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
        self
    }

    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
        Self::descriptor_static()
    }

    fn new() -> CPublishedFile_GetItemInfo_Request_WorkshopItem {
        CPublishedFile_GetItemInfo_Request_WorkshopItem::new()
    }

    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
        descriptor.get(|| {
            let mut fields = ::std::vec::Vec::new();
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeFixed64>(
                "published_file_id",
                |m: &CPublishedFile_GetItemInfo_Request_WorkshopItem| { &m.published_file_id },
                |m: &mut CPublishedFile_GetItemInfo_Request_WorkshopItem| { &mut m.published_file_id },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeUint32>(
                "time_updated",
                |m: &CPublishedFile_GetItemInfo_Request_WorkshopItem| { &m.time_updated },
                |m: &mut CPublishedFile_GetItemInfo_Request_WorkshopItem| { &mut m.time_updated },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeEnum<EPublishedFileRevision>>(
                "desired_revision",
                |m: &CPublishedFile_GetItemInfo_Request_WorkshopItem| { &m.desired_revision },
                |m: &mut CPublishedFile_GetItemInfo_Request_WorkshopItem| { &mut m.desired_revision },
            ));
            ::protobuf::reflect::MessageDescriptor::new_pb_name::<CPublishedFile_GetItemInfo_Request_WorkshopItem>(
                "CPublishedFile_GetItemInfo_Request.WorkshopItem",
                fields,
                file_descriptor_proto()
            )
        })
    }

    fn default_instance() -> &'static CPublishedFile_GetItemInfo_Request_WorkshopItem {
        static instance: ::protobuf::rt::LazyV2<CPublishedFile_GetItemInfo_Request_WorkshopItem> = ::protobuf::rt::LazyV2::INIT;
        instance.get(CPublishedFile_GetItemInfo_Request_WorkshopItem::new)
    }
}

impl ::protobuf::Clear for CPublishedFile_GetItemInfo_Request_WorkshopItem {
    fn clear(&mut self) {
        self.published_file_id = ::std::option::Option::None;
        self.time_updated = ::std::option::Option::None;
        self.desired_revision = ::std::option::Option::None;
        self.unknown_fields.clear();
    }
}

impl ::std::fmt::Debug for CPublishedFile_GetItemInfo_Request_WorkshopItem {
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
        ::protobuf::text_format::fmt(self, f)
    }
}

impl ::protobuf::reflect::ProtobufValue for CPublishedFile_GetItemInfo_Request_WorkshopItem {
    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
        ::protobuf::reflect::ReflectValueRef::Message(self)
    }
}

#[derive(PartialEq,Clone,Default)]
pub struct CPublishedFile_GetItemInfo_Response {
    // message fields
    update_time: ::std::option::Option<u32>,
    pub workshop_items: ::protobuf::RepeatedField<CPublishedFile_GetItemInfo_Response_WorkshopItemInfo>,
    pub private_items: ::std::vec::Vec<u64>,
    // special fields
    pub unknown_fields: ::protobuf::UnknownFields,
    pub cached_size: ::protobuf::CachedSize,
}

impl<'a> ::std::default::Default for &'a CPublishedFile_GetItemInfo_Response {
    fn default() -> &'a CPublishedFile_GetItemInfo_Response {
        <CPublishedFile_GetItemInfo_Response as ::protobuf::Message>::default_instance()
    }
}

impl CPublishedFile_GetItemInfo_Response {
    pub fn new() -> CPublishedFile_GetItemInfo_Response {
        ::std::default::Default::default()
    }

    // optional uint32 update_time = 1;


    pub fn get_update_time(&self) -> u32 {
        self.update_time.unwrap_or(0)
    }
    pub fn clear_update_time(&mut self) {
        self.update_time = ::std::option::Option::None;
    }

    pub fn has_update_time(&self) -> bool {
        self.update_time.is_some()
    }

    // Param is passed by value, moved
    pub fn set_update_time(&mut self, v: u32) {
        self.update_time = ::std::option::Option::Some(v);
    }

    // repeated .CPublishedFile_GetItemInfo_Response.WorkshopItemInfo workshop_items = 2;


    pub fn get_workshop_items(&self) -> &[CPublishedFile_GetItemInfo_Response_WorkshopItemInfo] {
        &self.workshop_items
    }
    pub fn clear_workshop_items(&mut self) {
        self.workshop_items.clear();
    }

    // Param is passed by value, moved
    pub fn set_workshop_items(&mut self, v: ::protobuf::RepeatedField<CPublishedFile_GetItemInfo_Response_WorkshopItemInfo>) {
        self.workshop_items = v;
    }

    // Mutable pointer to the field.
    pub fn mut_workshop_items(&mut self) -> &mut ::protobuf::RepeatedField<CPublishedFile_GetItemInfo_Response_WorkshopItemInfo> {
        &mut self.workshop_items
    }

    // Take field
    pub fn take_workshop_items(&mut self) -> ::protobuf::RepeatedField<CPublishedFile_GetItemInfo_Response_WorkshopItemInfo> {
        ::std::mem::replace(&mut self.workshop_items, ::protobuf::RepeatedField::new())
    }

    // repeated fixed64 private_items = 3;


    pub fn get_private_items(&self) -> &[u64] {
        &self.private_items
    }
    pub fn clear_private_items(&mut self) {
        self.private_items.clear();
    }

    // Param is passed by value, moved
    pub fn set_private_items(&mut self, v: ::std::vec::Vec<u64>) {
        self.private_items = v;
    }

    // Mutable pointer to the field.
    pub fn mut_private_items(&mut self) -> &mut ::std::vec::Vec<u64> {
        &mut self.private_items
    }

    // Take field
    pub fn take_private_items(&mut self) -> ::std::vec::Vec<u64> {
        ::std::mem::replace(&mut self.private_items, ::std::vec::Vec::new())
    }
}

impl ::protobuf::Message for CPublishedFile_GetItemInfo_Response {
    fn is_initialized(&self) -> bool {
        for v in &self.workshop_items {
            if !v.is_initialized() {
                return false;
            }
        };
        true
    }

    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
        while !is.eof()? {
            let (field_number, wire_type) = is.read_tag_unpack()?;
            match field_number {
                1 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_uint32()?;
                    self.update_time = ::std::option::Option::Some(tmp);
                },
                2 => {
                    ::protobuf::rt::read_repeated_message_into(wire_type, is, &mut self.workshop_items)?;
                },
                3 => {
                    ::protobuf::rt::read_repeated_fixed64_into(wire_type, is, &mut self.private_items)?;
                },
                _ => {
                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
                },
            };
        }
        ::std::result::Result::Ok(())
    }

    // Compute sizes of nested messages
    #[allow(unused_variables)]
    fn compute_size(&self) -> u32 {
        let mut my_size = 0;
        if let Some(v) = self.update_time {
            my_size += ::protobuf::rt::value_size(1, v, ::protobuf::wire_format::WireTypeVarint);
        }
        for value in &self.workshop_items {
            let len = value.compute_size();
            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
        };
        my_size += 9 * self.private_items.len() as u32;
        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
        self.cached_size.set(my_size);
        my_size
    }

    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
        if let Some(v) = self.update_time {
            os.write_uint32(1, v)?;
        }
        for v in &self.workshop_items {
            os.write_tag(2, ::protobuf::wire_format::WireTypeLengthDelimited)?;
            os.write_raw_varint32(v.get_cached_size())?;
            v.write_to_with_cached_sizes(os)?;
        };
        for v in &self.private_items {
            os.write_fixed64(3, *v)?;
        };
        os.write_unknown_fields(self.get_unknown_fields())?;
        ::std::result::Result::Ok(())
    }

    fn get_cached_size(&self) -> u32 {
        self.cached_size.get()
    }

    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
        &self.unknown_fields
    }

    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
        &mut self.unknown_fields
    }

    fn as_any(&self) -> &dyn (::std::any::Any) {
        self as &dyn (::std::any::Any)
    }
    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
        self as &mut dyn (::std::any::Any)
    }
    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
        self
    }

    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
        Self::descriptor_static()
    }

    fn new() -> CPublishedFile_GetItemInfo_Response {
        CPublishedFile_GetItemInfo_Response::new()
    }

    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
        descriptor.get(|| {
            let mut fields = ::std::vec::Vec::new();
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeUint32>(
                "update_time",
                |m: &CPublishedFile_GetItemInfo_Response| { &m.update_time },
                |m: &mut CPublishedFile_GetItemInfo_Response| { &mut m.update_time },
            ));
            fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<CPublishedFile_GetItemInfo_Response_WorkshopItemInfo>>(
                "workshop_items",
                |m: &CPublishedFile_GetItemInfo_Response| { &m.workshop_items },
                |m: &mut CPublishedFile_GetItemInfo_Response| { &mut m.workshop_items },
            ));
            fields.push(::protobuf::reflect::accessor::make_vec_accessor::<_, ::protobuf::types::ProtobufTypeFixed64>(
                "private_items",
                |m: &CPublishedFile_GetItemInfo_Response| { &m.private_items },
                |m: &mut CPublishedFile_GetItemInfo_Response| { &mut m.private_items },
            ));
            ::protobuf::reflect::MessageDescriptor::new_pb_name::<CPublishedFile_GetItemInfo_Response>(
                "CPublishedFile_GetItemInfo_Response",
                fields,
                file_descriptor_proto()
            )
        })
    }

    fn default_instance() -> &'static CPublishedFile_GetItemInfo_Response {
        static instance: ::protobuf::rt::LazyV2<CPublishedFile_GetItemInfo_Response> = ::protobuf::rt::LazyV2::INIT;
        instance.get(CPublishedFile_GetItemInfo_Response::new)
    }
}

impl ::protobuf::Clear for CPublishedFile_GetItemInfo_Response {
    fn clear(&mut self) {
        self.update_time = ::std::option::Option::None;
        self.workshop_items.clear();
        self.private_items.clear();
        self.unknown_fields.clear();
    }
}

impl ::std::fmt::Debug for CPublishedFile_GetItemInfo_Response {
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
        ::protobuf::text_format::fmt(self, f)
    }
}

impl ::protobuf::reflect::ProtobufValue for CPublishedFile_GetItemInfo_Response {
    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
        ::protobuf::reflect::ReflectValueRef::Message(self)
    }
}

#[derive(PartialEq,Clone,Default)]
pub struct CPublishedFile_GetItemInfo_Response_WorkshopItemInfo {
    // message fields
    published_file_id: ::std::option::Option<u64>,
    time_updated: ::std::option::Option<u32>,
    manifest_id: ::std::option::Option<u64>,
    flags: ::std::option::Option<u32>,
    // special fields
    pub unknown_fields: ::protobuf::UnknownFields,
    pub cached_size: ::protobuf::CachedSize,
}

impl<'a> ::std::default::Default for &'a CPublishedFile_GetItemInfo_Response_WorkshopItemInfo {
    fn default() -> &'a CPublishedFile_GetItemInfo_Response_WorkshopItemInfo {
        <CPublishedFile_GetItemInfo_Response_WorkshopItemInfo as ::protobuf::Message>::default_instance()
    }
}

impl CPublishedFile_GetItemInfo_Response_WorkshopItemInfo {
    pub fn new() -> CPublishedFile_GetItemInfo_Response_WorkshopItemInfo {
        ::std::default::Default::default()
    }

    // optional fixed64 published_file_id = 1;


    pub fn get_published_file_id(&self) -> u64 {
        self.published_file_id.unwrap_or(0)
    }
    pub fn clear_published_file_id(&mut self) {
        self.published_file_id = ::std::option::Option::None;
    }

    pub fn has_published_file_id(&self) -> bool {
        self.published_file_id.is_some()
    }

    // Param is passed by value, moved
    pub fn set_published_file_id(&mut self, v: u64) {
        self.published_file_id = ::std::option::Option::Some(v);
    }

    // optional uint32 time_updated = 2;


    pub fn get_time_updated(&self) -> u32 {
        self.time_updated.unwrap_or(0)
    }
    pub fn clear_time_updated(&mut self) {
        self.time_updated = ::std::option::Option::None;
    }

    pub fn has_time_updated(&self) -> bool {
        self.time_updated.is_some()
    }

    // Param is passed by value, moved
    pub fn set_time_updated(&mut self, v: u32) {
        self.time_updated = ::std::option::Option::Some(v);
    }

    // optional fixed64 manifest_id = 3;


    pub fn get_manifest_id(&self) -> u64 {
        self.manifest_id.unwrap_or(0)
    }
    pub fn clear_manifest_id(&mut self) {
        self.manifest_id = ::std::option::Option::None;
    }

    pub fn has_manifest_id(&self) -> bool {
        self.manifest_id.is_some()
    }

    // Param is passed by value, moved
    pub fn set_manifest_id(&mut self, v: u64) {
        self.manifest_id = ::std::option::Option::Some(v);
    }

    // optional uint32 flags = 4;


    pub fn get_flags(&self) -> u32 {
        self.flags.unwrap_or(0)
    }
    pub fn clear_flags(&mut self) {
        self.flags = ::std::option::Option::None;
    }

    pub fn has_flags(&self) -> bool {
        self.flags.is_some()
    }

    // Param is passed by value, moved
    pub fn set_flags(&mut self, v: u32) {
        self.flags = ::std::option::Option::Some(v);
    }
}

impl ::protobuf::Message for CPublishedFile_GetItemInfo_Response_WorkshopItemInfo {
    fn is_initialized(&self) -> bool {
        true
    }

    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
        while !is.eof()? {
            let (field_number, wire_type) = is.read_tag_unpack()?;
            match field_number {
                1 => {
                    if wire_type != ::protobuf::wire_format::WireTypeFixed64 {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_fixed64()?;
                    self.published_file_id = ::std::option::Option::Some(tmp);
                },
                2 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_uint32()?;
                    self.time_updated = ::std::option::Option::Some(tmp);
                },
                3 => {
                    if wire_type != ::protobuf::wire_format::WireTypeFixed64 {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_fixed64()?;
                    self.manifest_id = ::std::option::Option::Some(tmp);
                },
                4 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_uint32()?;
                    self.flags = ::std::option::Option::Some(tmp);
                },
                _ => {
                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
                },
            };
        }
        ::std::result::Result::Ok(())
    }

    // Compute sizes of nested messages
    #[allow(unused_variables)]
    fn compute_size(&self) -> u32 {
        let mut my_size = 0;
        if let Some(v) = self.published_file_id {
            my_size += 9;
        }
        if let Some(v) = self.time_updated {
            my_size += ::protobuf::rt::value_size(2, v, ::protobuf::wire_format::WireTypeVarint);
        }
        if let Some(v) = self.manifest_id {
            my_size += 9;
        }
        if let Some(v) = self.flags {
            my_size += ::protobuf::rt::value_size(4, v, ::protobuf::wire_format::WireTypeVarint);
        }
        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
        self.cached_size.set(my_size);
        my_size
    }

    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
        if let Some(v) = self.published_file_id {
            os.write_fixed64(1, v)?;
        }
        if let Some(v) = self.time_updated {
            os.write_uint32(2, v)?;
        }
        if let Some(v) = self.manifest_id {
            os.write_fixed64(3, v)?;
        }
        if let Some(v) = self.flags {
            os.write_uint32(4, v)?;
        }
        os.write_unknown_fields(self.get_unknown_fields())?;
        ::std::result::Result::Ok(())
    }

    fn get_cached_size(&self) -> u32 {
        self.cached_size.get()
    }

    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
        &self.unknown_fields
    }

    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
        &mut self.unknown_fields
    }

    fn as_any(&self) -> &dyn (::std::any::Any) {
        self as &dyn (::std::any::Any)
    }
    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
        self as &mut dyn (::std::any::Any)
    }
    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
        self
    }

    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
        Self::descriptor_static()
    }

    fn new() -> CPublishedFile_GetItemInfo_Response_WorkshopItemInfo {
        CPublishedFile_GetItemInfo_Response_WorkshopItemInfo::new()
    }

    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
        descriptor.get(|| {
            let mut fields = ::std::vec::Vec::new();
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeFixed64>(
                "published_file_id",
                |m: &CPublishedFile_GetItemInfo_Response_WorkshopItemInfo| { &m.published_file_id },
                |m: &mut CPublishedFile_GetItemInfo_Response_WorkshopItemInfo| { &mut m.published_file_id },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeUint32>(
                "time_updated",
                |m: &CPublishedFile_GetItemInfo_Response_WorkshopItemInfo| { &m.time_updated },
                |m: &mut CPublishedFile_GetItemInfo_Response_WorkshopItemInfo| { &mut m.time_updated },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeFixed64>(
                "manifest_id",
                |m: &CPublishedFile_GetItemInfo_Response_WorkshopItemInfo| { &m.manifest_id },
                |m: &mut CPublishedFile_GetItemInfo_Response_WorkshopItemInfo| { &mut m.manifest_id },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeUint32>(
                "flags",
                |m: &CPublishedFile_GetItemInfo_Response_WorkshopItemInfo| { &m.flags },
                |m: &mut CPublishedFile_GetItemInfo_Response_WorkshopItemInfo| { &mut m.flags },
            ));
            ::protobuf::reflect::MessageDescriptor::new_pb_name::<CPublishedFile_GetItemInfo_Response_WorkshopItemInfo>(
                "CPublishedFile_GetItemInfo_Response.WorkshopItemInfo",
                fields,
                file_descriptor_proto()
            )
        })
    }

    fn default_instance() -> &'static CPublishedFile_GetItemInfo_Response_WorkshopItemInfo {
        static instance: ::protobuf::rt::LazyV2<CPublishedFile_GetItemInfo_Response_WorkshopItemInfo> = ::protobuf::rt::LazyV2::INIT;
        instance.get(CPublishedFile_GetItemInfo_Response_WorkshopItemInfo::new)
    }
}

impl ::protobuf::Clear for CPublishedFile_GetItemInfo_Response_WorkshopItemInfo {
    fn clear(&mut self) {
        self.published_file_id = ::std::option::Option::None;
        self.time_updated = ::std::option::Option::None;
        self.manifest_id = ::std::option::Option::None;
        self.flags = ::std::option::Option::None;
        self.unknown_fields.clear();
    }
}

impl ::std::fmt::Debug for CPublishedFile_GetItemInfo_Response_WorkshopItemInfo {
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
        ::protobuf::text_format::fmt(self, f)
    }
}

impl ::protobuf::reflect::ProtobufValue for CPublishedFile_GetItemInfo_Response_WorkshopItemInfo {
    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
        ::protobuf::reflect::ReflectValueRef::Message(self)
    }
}

#[derive(PartialEq,Clone,Default)]
pub struct CPublishedFile_GetUserFiles_Request {
    // message fields
    steamid: ::std::option::Option<u64>,
    appid: ::std::option::Option<u32>,
    page: ::std::option::Option<u32>,
    numperpage: ::std::option::Option<u32>,
    field_type: ::protobuf::SingularField<::std::string::String>,
    sortmethod: ::protobuf::SingularField<::std::string::String>,
    privacy: ::std::option::Option<u32>,
    pub requiredtags: ::protobuf::RepeatedField<::std::string::String>,
    pub excludedtags: ::protobuf::RepeatedField<::std::string::String>,
    pub required_kv_tags: ::protobuf::RepeatedField<CPublishedFile_GetUserFiles_Request_KVTag>,
    filetype: ::std::option::Option<u32>,
    creator_appid: ::std::option::Option<u32>,
    match_cloud_filename: ::protobuf::SingularField<::std::string::String>,
    cache_max_age_seconds: ::std::option::Option<u32>,
    language: ::std::option::Option<i32>,
    pub taggroups: ::protobuf::RepeatedField<CPublishedFile_GetUserFiles_Request_TagGroup>,
    totalonly: ::std::option::Option<bool>,
    ids_only: ::std::option::Option<bool>,
    return_vote_data: ::std::option::Option<bool>,
    return_tags: ::std::option::Option<bool>,
    return_kv_tags: ::std::option::Option<bool>,
    return_previews: ::std::option::Option<bool>,
    return_children: ::std::option::Option<bool>,
    return_short_description: ::std::option::Option<bool>,
    return_for_sale_data: ::std::option::Option<bool>,
    return_metadata: ::std::option::Option<bool>,
    return_playtime_stats: ::std::option::Option<u32>,
    strip_description_bbcode: ::std::option::Option<bool>,
    return_reactions: ::std::option::Option<bool>,
    startindex_override: ::std::option::Option<u32>,
    desired_revision: ::std::option::Option<EPublishedFileRevision>,
    // special fields
    pub unknown_fields: ::protobuf::UnknownFields,
    pub cached_size: ::protobuf::CachedSize,
}

impl<'a> ::std::default::Default for &'a CPublishedFile_GetUserFiles_Request {
    fn default() -> &'a CPublishedFile_GetUserFiles_Request {
        <CPublishedFile_GetUserFiles_Request as ::protobuf::Message>::default_instance()
    }
}

impl CPublishedFile_GetUserFiles_Request {
    pub fn new() -> CPublishedFile_GetUserFiles_Request {
        ::std::default::Default::default()
    }

    // optional fixed64 steamid = 1;


    pub fn get_steamid(&self) -> u64 {
        self.steamid.unwrap_or(0)
    }
    pub fn clear_steamid(&mut self) {
        self.steamid = ::std::option::Option::None;
    }

    pub fn has_steamid(&self) -> bool {
        self.steamid.is_some()
    }

    // Param is passed by value, moved
    pub fn set_steamid(&mut self, v: u64) {
        self.steamid = ::std::option::Option::Some(v);
    }

    // optional uint32 appid = 2;


    pub fn get_appid(&self) -> u32 {
        self.appid.unwrap_or(0)
    }
    pub fn clear_appid(&mut self) {
        self.appid = ::std::option::Option::None;
    }

    pub fn has_appid(&self) -> bool {
        self.appid.is_some()
    }

    // Param is passed by value, moved
    pub fn set_appid(&mut self, v: u32) {
        self.appid = ::std::option::Option::Some(v);
    }

    // optional uint32 page = 4;


    pub fn get_page(&self) -> u32 {
        self.page.unwrap_or(1u32)
    }
    pub fn clear_page(&mut self) {
        self.page = ::std::option::Option::None;
    }

    pub fn has_page(&self) -> bool {
        self.page.is_some()
    }

    // Param is passed by value, moved
    pub fn set_page(&mut self, v: u32) {
        self.page = ::std::option::Option::Some(v);
    }

    // optional uint32 numperpage = 5;


    pub fn get_numperpage(&self) -> u32 {
        self.numperpage.unwrap_or(1u32)
    }
    pub fn clear_numperpage(&mut self) {
        self.numperpage = ::std::option::Option::None;
    }

    pub fn has_numperpage(&self) -> bool {
        self.numperpage.is_some()
    }

    // Param is passed by value, moved
    pub fn set_numperpage(&mut self, v: u32) {
        self.numperpage = ::std::option::Option::Some(v);
    }

    // optional string type = 6;


    pub fn get_field_type(&self) -> &str {
        match self.field_type.as_ref() {
            Some(v) => &v,
            None => "myfiles",
        }
    }
    pub fn clear_field_type(&mut self) {
        self.field_type.clear();
    }

    pub fn has_field_type(&self) -> bool {
        self.field_type.is_some()
    }

    // Param is passed by value, moved
    pub fn set_field_type(&mut self, v: ::std::string::String) {
        self.field_type = ::protobuf::SingularField::some(v);
    }

    // Mutable pointer to the field.
    // If field is not initialized, it is initialized with default value first.
    pub fn mut_field_type(&mut self) -> &mut ::std::string::String {
        if self.field_type.is_none() {
            self.field_type.set_default();
        }
        self.field_type.as_mut().unwrap()
    }

    // Take field
    pub fn take_field_type(&mut self) -> ::std::string::String {
        self.field_type.take().unwrap_or_else(|| ::std::string::String::new())
    }

    // optional string sortmethod = 7;


    pub fn get_sortmethod(&self) -> &str {
        match self.sortmethod.as_ref() {
            Some(v) => &v,
            None => "lastupdated",
        }
    }
    pub fn clear_sortmethod(&mut self) {
        self.sortmethod.clear();
    }

    pub fn has_sortmethod(&self) -> bool {
        self.sortmethod.is_some()
    }

    // Param is passed by value, moved
    pub fn set_sortmethod(&mut self, v: ::std::string::String) {
        self.sortmethod = ::protobuf::SingularField::some(v);
    }

    // Mutable pointer to the field.
    // If field is not initialized, it is initialized with default value first.
    pub fn mut_sortmethod(&mut self) -> &mut ::std::string::String {
        if self.sortmethod.is_none() {
            self.sortmethod.set_default();
        }
        self.sortmethod.as_mut().unwrap()
    }

    // Take field
    pub fn take_sortmethod(&mut self) -> ::std::string::String {
        self.sortmethod.take().unwrap_or_else(|| ::std::string::String::new())
    }

    // optional uint32 privacy = 9;


    pub fn get_privacy(&self) -> u32 {
        self.privacy.unwrap_or(0)
    }
    pub fn clear_privacy(&mut self) {
        self.privacy = ::std::option::Option::None;
    }

    pub fn has_privacy(&self) -> bool {
        self.privacy.is_some()
    }

    // Param is passed by value, moved
    pub fn set_privacy(&mut self, v: u32) {
        self.privacy = ::std::option::Option::Some(v);
    }

    // repeated string requiredtags = 10;


    pub fn get_requiredtags(&self) -> &[::std::string::String] {
        &self.requiredtags
    }
    pub fn clear_requiredtags(&mut self) {
        self.requiredtags.clear();
    }

    // Param is passed by value, moved
    pub fn set_requiredtags(&mut self, v: ::protobuf::RepeatedField<::std::string::String>) {
        self.requiredtags = v;
    }

    // Mutable pointer to the field.
    pub fn mut_requiredtags(&mut self) -> &mut ::protobuf::RepeatedField<::std::string::String> {
        &mut self.requiredtags
    }

    // Take field
    pub fn take_requiredtags(&mut self) -> ::protobuf::RepeatedField<::std::string::String> {
        ::std::mem::replace(&mut self.requiredtags, ::protobuf::RepeatedField::new())
    }

    // repeated string excludedtags = 11;


    pub fn get_excludedtags(&self) -> &[::std::string::String] {
        &self.excludedtags
    }
    pub fn clear_excludedtags(&mut self) {
        self.excludedtags.clear();
    }

    // Param is passed by value, moved
    pub fn set_excludedtags(&mut self, v: ::protobuf::RepeatedField<::std::string::String>) {
        self.excludedtags = v;
    }

    // Mutable pointer to the field.
    pub fn mut_excludedtags(&mut self) -> &mut ::protobuf::RepeatedField<::std::string::String> {
        &mut self.excludedtags
    }

    // Take field
    pub fn take_excludedtags(&mut self) -> ::protobuf::RepeatedField<::std::string::String> {
        ::std::mem::replace(&mut self.excludedtags, ::protobuf::RepeatedField::new())
    }

    // repeated .CPublishedFile_GetUserFiles_Request.KVTag required_kv_tags = 30;


    pub fn get_required_kv_tags(&self) -> &[CPublishedFile_GetUserFiles_Request_KVTag] {
        &self.required_kv_tags
    }
    pub fn clear_required_kv_tags(&mut self) {
        self.required_kv_tags.clear();
    }

    // Param is passed by value, moved
    pub fn set_required_kv_tags(&mut self, v: ::protobuf::RepeatedField<CPublishedFile_GetUserFiles_Request_KVTag>) {
        self.required_kv_tags = v;
    }

    // Mutable pointer to the field.
    pub fn mut_required_kv_tags(&mut self) -> &mut ::protobuf::RepeatedField<CPublishedFile_GetUserFiles_Request_KVTag> {
        &mut self.required_kv_tags
    }

    // Take field
    pub fn take_required_kv_tags(&mut self) -> ::protobuf::RepeatedField<CPublishedFile_GetUserFiles_Request_KVTag> {
        ::std::mem::replace(&mut self.required_kv_tags, ::protobuf::RepeatedField::new())
    }

    // optional uint32 filetype = 14;


    pub fn get_filetype(&self) -> u32 {
        self.filetype.unwrap_or(0)
    }
    pub fn clear_filetype(&mut self) {
        self.filetype = ::std::option::Option::None;
    }

    pub fn has_filetype(&self) -> bool {
        self.filetype.is_some()
    }

    // Param is passed by value, moved
    pub fn set_filetype(&mut self, v: u32) {
        self.filetype = ::std::option::Option::Some(v);
    }

    // optional uint32 creator_appid = 15;


    pub fn get_creator_appid(&self) -> u32 {
        self.creator_appid.unwrap_or(0)
    }
    pub fn clear_creator_appid(&mut self) {
        self.creator_appid = ::std::option::Option::None;
    }

    pub fn has_creator_appid(&self) -> bool {
        self.creator_appid.is_some()
    }

    // Param is passed by value, moved
    pub fn set_creator_appid(&mut self, v: u32) {
        self.creator_appid = ::std::option::Option::Some(v);
    }

    // optional string match_cloud_filename = 16;


    pub fn get_match_cloud_filename(&self) -> &str {
        match self.match_cloud_filename.as_ref() {
            Some(v) => &v,
            None => "",
        }
    }
    pub fn clear_match_cloud_filename(&mut self) {
        self.match_cloud_filename.clear();
    }

    pub fn has_match_cloud_filename(&self) -> bool {
        self.match_cloud_filename.is_some()
    }

    // Param is passed by value, moved
    pub fn set_match_cloud_filename(&mut self, v: ::std::string::String) {
        self.match_cloud_filename = ::protobuf::SingularField::some(v);
    }

    // Mutable pointer to the field.
    // If field is not initialized, it is initialized with default value first.
    pub fn mut_match_cloud_filename(&mut self) -> &mut ::std::string::String {
        if self.match_cloud_filename.is_none() {
            self.match_cloud_filename.set_default();
        }
        self.match_cloud_filename.as_mut().unwrap()
    }

    // Take field
    pub fn take_match_cloud_filename(&mut self) -> ::std::string::String {
        self.match_cloud_filename.take().unwrap_or_else(|| ::std::string::String::new())
    }

    // optional uint32 cache_max_age_seconds = 27;


    pub fn get_cache_max_age_seconds(&self) -> u32 {
        self.cache_max_age_seconds.unwrap_or(0u32)
    }
    pub fn clear_cache_max_age_seconds(&mut self) {
        self.cache_max_age_seconds = ::std::option::Option::None;
    }

    pub fn has_cache_max_age_seconds(&self) -> bool {
        self.cache_max_age_seconds.is_some()
    }

    // Param is passed by value, moved
    pub fn set_cache_max_age_seconds(&mut self, v: u32) {
        self.cache_max_age_seconds = ::std::option::Option::Some(v);
    }

    // optional int32 language = 29;


    pub fn get_language(&self) -> i32 {
        self.language.unwrap_or(0i32)
    }
    pub fn clear_language(&mut self) {
        self.language = ::std::option::Option::None;
    }

    pub fn has_language(&self) -> bool {
        self.language.is_some()
    }

    // Param is passed by value, moved
    pub fn set_language(&mut self, v: i32) {
        self.language = ::std::option::Option::Some(v);
    }

    // repeated .CPublishedFile_GetUserFiles_Request.TagGroup taggroups = 34;


    pub fn get_taggroups(&self) -> &[CPublishedFile_GetUserFiles_Request_TagGroup] {
        &self.taggroups
    }
    pub fn clear_taggroups(&mut self) {
        self.taggroups.clear();
    }

    // Param is passed by value, moved
    pub fn set_taggroups(&mut self, v: ::protobuf::RepeatedField<CPublishedFile_GetUserFiles_Request_TagGroup>) {
        self.taggroups = v;
    }

    // Mutable pointer to the field.
    pub fn mut_taggroups(&mut self) -> &mut ::protobuf::RepeatedField<CPublishedFile_GetUserFiles_Request_TagGroup> {
        &mut self.taggroups
    }

    // Take field
    pub fn take_taggroups(&mut self) -> ::protobuf::RepeatedField<CPublishedFile_GetUserFiles_Request_TagGroup> {
        ::std::mem::replace(&mut self.taggroups, ::protobuf::RepeatedField::new())
    }

    // optional bool totalonly = 17;


    pub fn get_totalonly(&self) -> bool {
        self.totalonly.unwrap_or(false)
    }
    pub fn clear_totalonly(&mut self) {
        self.totalonly = ::std::option::Option::None;
    }

    pub fn has_totalonly(&self) -> bool {
        self.totalonly.is_some()
    }

    // Param is passed by value, moved
    pub fn set_totalonly(&mut self, v: bool) {
        self.totalonly = ::std::option::Option::Some(v);
    }

    // optional bool ids_only = 18;


    pub fn get_ids_only(&self) -> bool {
        self.ids_only.unwrap_or(false)
    }
    pub fn clear_ids_only(&mut self) {
        self.ids_only = ::std::option::Option::None;
    }

    pub fn has_ids_only(&self) -> bool {
        self.ids_only.is_some()
    }

    // Param is passed by value, moved
    pub fn set_ids_only(&mut self, v: bool) {
        self.ids_only = ::std::option::Option::Some(v);
    }

    // optional bool return_vote_data = 19;


    pub fn get_return_vote_data(&self) -> bool {
        self.return_vote_data.unwrap_or(true)
    }
    pub fn clear_return_vote_data(&mut self) {
        self.return_vote_data = ::std::option::Option::None;
    }

    pub fn has_return_vote_data(&self) -> bool {
        self.return_vote_data.is_some()
    }

    // Param is passed by value, moved
    pub fn set_return_vote_data(&mut self, v: bool) {
        self.return_vote_data = ::std::option::Option::Some(v);
    }

    // optional bool return_tags = 20;


    pub fn get_return_tags(&self) -> bool {
        self.return_tags.unwrap_or(false)
    }
    pub fn clear_return_tags(&mut self) {
        self.return_tags = ::std::option::Option::None;
    }

    pub fn has_return_tags(&self) -> bool {
        self.return_tags.is_some()
    }

    // Param is passed by value, moved
    pub fn set_return_tags(&mut self, v: bool) {
        self.return_tags = ::std::option::Option::Some(v);
    }

    // optional bool return_kv_tags = 21;


    pub fn get_return_kv_tags(&self) -> bool {
        self.return_kv_tags.unwrap_or(true)
    }
    pub fn clear_return_kv_tags(&mut self) {
        self.return_kv_tags = ::std::option::Option::None;
    }

    pub fn has_return_kv_tags(&self) -> bool {
        self.return_kv_tags.is_some()
    }

    // Param is passed by value, moved
    pub fn set_return_kv_tags(&mut self, v: bool) {
        self.return_kv_tags = ::std::option::Option::Some(v);
    }

    // optional bool return_previews = 22;


    pub fn get_return_previews(&self) -> bool {
        self.return_previews.unwrap_or(false)
    }
    pub fn clear_return_previews(&mut self) {
        self.return_previews = ::std::option::Option::None;
    }

    pub fn has_return_previews(&self) -> bool {
        self.return_previews.is_some()
    }

    // Param is passed by value, moved
    pub fn set_return_previews(&mut self, v: bool) {
        self.return_previews = ::std::option::Option::Some(v);
    }

    // optional bool return_children = 23;


    pub fn get_return_children(&self) -> bool {
        self.return_children.unwrap_or(false)
    }
    pub fn clear_return_children(&mut self) {
        self.return_children = ::std::option::Option::None;
    }

    pub fn has_return_children(&self) -> bool {
        self.return_children.is_some()
    }

    // Param is passed by value, moved
    pub fn set_return_children(&mut self, v: bool) {
        self.return_children = ::std::option::Option::Some(v);
    }

    // optional bool return_short_description = 24;


    pub fn get_return_short_description(&self) -> bool {
        self.return_short_description.unwrap_or(true)
    }
    pub fn clear_return_short_description(&mut self) {
        self.return_short_description = ::std::option::Option::None;
    }

    pub fn has_return_short_description(&self) -> bool {
        self.return_short_description.is_some()
    }

    // Param is passed by value, moved
    pub fn set_return_short_description(&mut self, v: bool) {
        self.return_short_description = ::std::option::Option::Some(v);
    }

    // optional bool return_for_sale_data = 26;


    pub fn get_return_for_sale_data(&self) -> bool {
        self.return_for_sale_data.unwrap_or(false)
    }
    pub fn clear_return_for_sale_data(&mut self) {
        self.return_for_sale_data = ::std::option::Option::None;
    }

    pub fn has_return_for_sale_data(&self) -> bool {
        self.return_for_sale_data.is_some()
    }

    // Param is passed by value, moved
    pub fn set_return_for_sale_data(&mut self, v: bool) {
        self.return_for_sale_data = ::std::option::Option::Some(v);
    }

    // optional bool return_metadata = 28;


    pub fn get_return_metadata(&self) -> bool {
        self.return_metadata.unwrap_or(false)
    }
    pub fn clear_return_metadata(&mut self) {
        self.return_metadata = ::std::option::Option::None;
    }

    pub fn has_return_metadata(&self) -> bool {
        self.return_metadata.is_some()
    }

    // Param is passed by value, moved
    pub fn set_return_metadata(&mut self, v: bool) {
        self.return_metadata = ::std::option::Option::Some(v);
    }

    // optional uint32 return_playtime_stats = 31;


    pub fn get_return_playtime_stats(&self) -> u32 {
        self.return_playtime_stats.unwrap_or(0)
    }
    pub fn clear_return_playtime_stats(&mut self) {
        self.return_playtime_stats = ::std::option::Option::None;
    }

    pub fn has_return_playtime_stats(&self) -> bool {
        self.return_playtime_stats.is_some()
    }

    // Param is passed by value, moved
    pub fn set_return_playtime_stats(&mut self, v: u32) {
        self.return_playtime_stats = ::std::option::Option::Some(v);
    }

    // optional bool strip_description_bbcode = 32;


    pub fn get_strip_description_bbcode(&self) -> bool {
        self.strip_description_bbcode.unwrap_or(false)
    }
    pub fn clear_strip_description_bbcode(&mut self) {
        self.strip_description_bbcode = ::std::option::Option::None;
    }

    pub fn has_strip_description_bbcode(&self) -> bool {
        self.strip_description_bbcode.is_some()
    }

    // Param is passed by value, moved
    pub fn set_strip_description_bbcode(&mut self, v: bool) {
        self.strip_description_bbcode = ::std::option::Option::Some(v);
    }

    // optional bool return_reactions = 35;


    pub fn get_return_reactions(&self) -> bool {
        self.return_reactions.unwrap_or(false)
    }
    pub fn clear_return_reactions(&mut self) {
        self.return_reactions = ::std::option::Option::None;
    }

    pub fn has_return_reactions(&self) -> bool {
        self.return_reactions.is_some()
    }

    // Param is passed by value, moved
    pub fn set_return_reactions(&mut self, v: bool) {
        self.return_reactions = ::std::option::Option::Some(v);
    }

    // optional uint32 startindex_override = 25;


    pub fn get_startindex_override(&self) -> u32 {
        self.startindex_override.unwrap_or(0)
    }
    pub fn clear_startindex_override(&mut self) {
        self.startindex_override = ::std::option::Option::None;
    }

    pub fn has_startindex_override(&self) -> bool {
        self.startindex_override.is_some()
    }

    // Param is passed by value, moved
    pub fn set_startindex_override(&mut self, v: u32) {
        self.startindex_override = ::std::option::Option::Some(v);
    }

    // optional .EPublishedFileRevision desired_revision = 33;


    pub fn get_desired_revision(&self) -> EPublishedFileRevision {
        self.desired_revision.unwrap_or(EPublishedFileRevision::k_EPublishedFileRevision_Default)
    }
    pub fn clear_desired_revision(&mut self) {
        self.desired_revision = ::std::option::Option::None;
    }

    pub fn has_desired_revision(&self) -> bool {
        self.desired_revision.is_some()
    }

    // Param is passed by value, moved
    pub fn set_desired_revision(&mut self, v: EPublishedFileRevision) {
        self.desired_revision = ::std::option::Option::Some(v);
    }
}

impl ::protobuf::Message for CPublishedFile_GetUserFiles_Request {
    fn is_initialized(&self) -> bool {
        for v in &self.required_kv_tags {
            if !v.is_initialized() {
                return false;
            }
        };
        for v in &self.taggroups {
            if !v.is_initialized() {
                return false;
            }
        };
        true
    }

    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
        while !is.eof()? {
            let (field_number, wire_type) = is.read_tag_unpack()?;
            match field_number {
                1 => {
                    if wire_type != ::protobuf::wire_format::WireTypeFixed64 {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_fixed64()?;
                    self.steamid = ::std::option::Option::Some(tmp);
                },
                2 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_uint32()?;
                    self.appid = ::std::option::Option::Some(tmp);
                },
                4 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_uint32()?;
                    self.page = ::std::option::Option::Some(tmp);
                },
                5 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_uint32()?;
                    self.numperpage = ::std::option::Option::Some(tmp);
                },
                6 => {
                    ::protobuf::rt::read_singular_string_into(wire_type, is, &mut self.field_type)?;
                },
                7 => {
                    ::protobuf::rt::read_singular_string_into(wire_type, is, &mut self.sortmethod)?;
                },
                9 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_uint32()?;
                    self.privacy = ::std::option::Option::Some(tmp);
                },
                10 => {
                    ::protobuf::rt::read_repeated_string_into(wire_type, is, &mut self.requiredtags)?;
                },
                11 => {
                    ::protobuf::rt::read_repeated_string_into(wire_type, is, &mut self.excludedtags)?;
                },
                30 => {
                    ::protobuf::rt::read_repeated_message_into(wire_type, is, &mut self.required_kv_tags)?;
                },
                14 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_uint32()?;
                    self.filetype = ::std::option::Option::Some(tmp);
                },
                15 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_uint32()?;
                    self.creator_appid = ::std::option::Option::Some(tmp);
                },
                16 => {
                    ::protobuf::rt::read_singular_string_into(wire_type, is, &mut self.match_cloud_filename)?;
                },
                27 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_uint32()?;
                    self.cache_max_age_seconds = ::std::option::Option::Some(tmp);
                },
                29 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_int32()?;
                    self.language = ::std::option::Option::Some(tmp);
                },
                34 => {
                    ::protobuf::rt::read_repeated_message_into(wire_type, is, &mut self.taggroups)?;
                },
                17 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_bool()?;
                    self.totalonly = ::std::option::Option::Some(tmp);
                },
                18 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_bool()?;
                    self.ids_only = ::std::option::Option::Some(tmp);
                },
                19 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_bool()?;
                    self.return_vote_data = ::std::option::Option::Some(tmp);
                },
                20 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_bool()?;
                    self.return_tags = ::std::option::Option::Some(tmp);
                },
                21 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_bool()?;
                    self.return_kv_tags = ::std::option::Option::Some(tmp);
                },
                22 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_bool()?;
                    self.return_previews = ::std::option::Option::Some(tmp);
                },
                23 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_bool()?;
                    self.return_children = ::std::option::Option::Some(tmp);
                },
                24 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_bool()?;
                    self.return_short_description = ::std::option::Option::Some(tmp);
                },
                26 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_bool()?;
                    self.return_for_sale_data = ::std::option::Option::Some(tmp);
                },
                28 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_bool()?;
                    self.return_metadata = ::std::option::Option::Some(tmp);
                },
                31 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_uint32()?;
                    self.return_playtime_stats = ::std::option::Option::Some(tmp);
                },
                32 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_bool()?;
                    self.strip_description_bbcode = ::std::option::Option::Some(tmp);
                },
                35 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_bool()?;
                    self.return_reactions = ::std::option::Option::Some(tmp);
                },
                25 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_uint32()?;
                    self.startindex_override = ::std::option::Option::Some(tmp);
                },
                33 => {
                    ::protobuf::rt::read_proto2_enum_with_unknown_fields_into(wire_type, is, &mut self.desired_revision, 33, &mut self.unknown_fields)?
                },
                _ => {
                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
                },
            };
        }
        ::std::result::Result::Ok(())
    }

    // Compute sizes of nested messages
    #[allow(unused_variables)]
    fn compute_size(&self) -> u32 {
        let mut my_size = 0;
        if let Some(v) = self.steamid {
            my_size += 9;
        }
        if let Some(v) = self.appid {
            my_size += ::protobuf::rt::value_size(2, v, ::protobuf::wire_format::WireTypeVarint);
        }
        if let Some(v) = self.page {
            my_size += ::protobuf::rt::value_size(4, v, ::protobuf::wire_format::WireTypeVarint);
        }
        if let Some(v) = self.numperpage {
            my_size += ::protobuf::rt::value_size(5, v, ::protobuf::wire_format::WireTypeVarint);
        }
        if let Some(ref v) = self.field_type.as_ref() {
            my_size += ::protobuf::rt::string_size(6, &v);
        }
        if let Some(ref v) = self.sortmethod.as_ref() {
            my_size += ::protobuf::rt::string_size(7, &v);
        }
        if let Some(v) = self.privacy {
            my_size += ::protobuf::rt::value_size(9, v, ::protobuf::wire_format::WireTypeVarint);
        }
        for value in &self.requiredtags {
            my_size += ::protobuf::rt::string_size(10, &value);
        };
        for value in &self.excludedtags {
            my_size += ::protobuf::rt::string_size(11, &value);
        };
        for value in &self.required_kv_tags {
            let len = value.compute_size();
            my_size += 2 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
        };
        if let Some(v) = self.filetype {
            my_size += ::protobuf::rt::value_size(14, v, ::protobuf::wire_format::WireTypeVarint);
        }
        if let Some(v) = self.creator_appid {
            my_size += ::protobuf::rt::value_size(15, v, ::protobuf::wire_format::WireTypeVarint);
        }
        if let Some(ref v) = self.match_cloud_filename.as_ref() {
            my_size += ::protobuf::rt::string_size(16, &v);
        }
        if let Some(v) = self.cache_max_age_seconds {
            my_size += ::protobuf::rt::value_size(27, v, ::protobuf::wire_format::WireTypeVarint);
        }
        if let Some(v) = self.language {
            my_size += ::protobuf::rt::value_size(29, v, ::protobuf::wire_format::WireTypeVarint);
        }
        for value in &self.taggroups {
            let len = value.compute_size();
            my_size += 2 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
        };
        if let Some(v) = self.totalonly {
            my_size += 3;
        }
        if let Some(v) = self.ids_only {
            my_size += 3;
        }
        if let Some(v) = self.return_vote_data {
            my_size += 3;
        }
        if let Some(v) = self.return_tags {
            my_size += 3;
        }
        if let Some(v) = self.return_kv_tags {
            my_size += 3;
        }
        if let Some(v) = self.return_previews {
            my_size += 3;
        }
        if let Some(v) = self.return_children {
            my_size += 3;
        }
        if let Some(v) = self.return_short_description {
            my_size += 3;
        }
        if let Some(v) = self.return_for_sale_data {
            my_size += 3;
        }
        if let Some(v) = self.return_metadata {
            my_size += 3;
        }
        if let Some(v) = self.return_playtime_stats {
            my_size += ::protobuf::rt::value_size(31, v, ::protobuf::wire_format::WireTypeVarint);
        }
        if let Some(v) = self.strip_description_bbcode {
            my_size += 3;
        }
        if let Some(v) = self.return_reactions {
            my_size += 3;
        }
        if let Some(v) = self.startindex_override {
            my_size += ::protobuf::rt::value_size(25, v, ::protobuf::wire_format::WireTypeVarint);
        }
        if let Some(v) = self.desired_revision {
            my_size += ::protobuf::rt::enum_size(33, v);
        }
        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
        self.cached_size.set(my_size);
        my_size
    }

    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
        if let Some(v) = self.steamid {
            os.write_fixed64(1, v)?;
        }
        if let Some(v) = self.appid {
            os.write_uint32(2, v)?;
        }
        if let Some(v) = self.page {
            os.write_uint32(4, v)?;
        }
        if let Some(v) = self.numperpage {
            os.write_uint32(5, v)?;
        }
        if let Some(ref v) = self.field_type.as_ref() {
            os.write_string(6, &v)?;
        }
        if let Some(ref v) = self.sortmethod.as_ref() {
            os.write_string(7, &v)?;
        }
        if let Some(v) = self.privacy {
            os.write_uint32(9, v)?;
        }
        for v in &self.requiredtags {
            os.write_string(10, &v)?;
        };
        for v in &self.excludedtags {
            os.write_string(11, &v)?;
        };
        for v in &self.required_kv_tags {
            os.write_tag(30, ::protobuf::wire_format::WireTypeLengthDelimited)?;
            os.write_raw_varint32(v.get_cached_size())?;
            v.write_to_with_cached_sizes(os)?;
        };
        if let Some(v) = self.filetype {
            os.write_uint32(14, v)?;
        }
        if let Some(v) = self.creator_appid {
            os.write_uint32(15, v)?;
        }
        if let Some(ref v) = self.match_cloud_filename.as_ref() {
            os.write_string(16, &v)?;
        }
        if let Some(v) = self.cache_max_age_seconds {
            os.write_uint32(27, v)?;
        }
        if let Some(v) = self.language {
            os.write_int32(29, v)?;
        }
        for v in &self.taggroups {
            os.write_tag(34, ::protobuf::wire_format::WireTypeLengthDelimited)?;
            os.write_raw_varint32(v.get_cached_size())?;
            v.write_to_with_cached_sizes(os)?;
        };
        if let Some(v) = self.totalonly {
            os.write_bool(17, v)?;
        }
        if let Some(v) = self.ids_only {
            os.write_bool(18, v)?;
        }
        if let Some(v) = self.return_vote_data {
            os.write_bool(19, v)?;
        }
        if let Some(v) = self.return_tags {
            os.write_bool(20, v)?;
        }
        if let Some(v) = self.return_kv_tags {
            os.write_bool(21, v)?;
        }
        if let Some(v) = self.return_previews {
            os.write_bool(22, v)?;
        }
        if let Some(v) = self.return_children {
            os.write_bool(23, v)?;
        }
        if let Some(v) = self.return_short_description {
            os.write_bool(24, v)?;
        }
        if let Some(v) = self.return_for_sale_data {
            os.write_bool(26, v)?;
        }
        if let Some(v) = self.return_metadata {
            os.write_bool(28, v)?;
        }
        if let Some(v) = self.return_playtime_stats {
            os.write_uint32(31, v)?;
        }
        if let Some(v) = self.strip_description_bbcode {
            os.write_bool(32, v)?;
        }
        if let Some(v) = self.return_reactions {
            os.write_bool(35, v)?;
        }
        if let Some(v) = self.startindex_override {
            os.write_uint32(25, v)?;
        }
        if let Some(v) = self.desired_revision {
            os.write_enum(33, ::protobuf::ProtobufEnum::value(&v))?;
        }
        os.write_unknown_fields(self.get_unknown_fields())?;
        ::std::result::Result::Ok(())
    }

    fn get_cached_size(&self) -> u32 {
        self.cached_size.get()
    }

    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
        &self.unknown_fields
    }

    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
        &mut self.unknown_fields
    }

    fn as_any(&self) -> &dyn (::std::any::Any) {
        self as &dyn (::std::any::Any)
    }
    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
        self as &mut dyn (::std::any::Any)
    }
    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
        self
    }

    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
        Self::descriptor_static()
    }

    fn new() -> CPublishedFile_GetUserFiles_Request {
        CPublishedFile_GetUserFiles_Request::new()
    }

    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
        descriptor.get(|| {
            let mut fields = ::std::vec::Vec::new();
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeFixed64>(
                "steamid",
                |m: &CPublishedFile_GetUserFiles_Request| { &m.steamid },
                |m: &mut CPublishedFile_GetUserFiles_Request| { &mut m.steamid },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeUint32>(
                "appid",
                |m: &CPublishedFile_GetUserFiles_Request| { &m.appid },
                |m: &mut CPublishedFile_GetUserFiles_Request| { &mut m.appid },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeUint32>(
                "page",
                |m: &CPublishedFile_GetUserFiles_Request| { &m.page },
                |m: &mut CPublishedFile_GetUserFiles_Request| { &mut m.page },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeUint32>(
                "numperpage",
                |m: &CPublishedFile_GetUserFiles_Request| { &m.numperpage },
                |m: &mut CPublishedFile_GetUserFiles_Request| { &mut m.numperpage },
            ));
            fields.push(::protobuf::reflect::accessor::make_singular_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
                "type",
                |m: &CPublishedFile_GetUserFiles_Request| { &m.field_type },
                |m: &mut CPublishedFile_GetUserFiles_Request| { &mut m.field_type },
            ));
            fields.push(::protobuf::reflect::accessor::make_singular_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
                "sortmethod",
                |m: &CPublishedFile_GetUserFiles_Request| { &m.sortmethod },
                |m: &mut CPublishedFile_GetUserFiles_Request| { &mut m.sortmethod },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeUint32>(
                "privacy",
                |m: &CPublishedFile_GetUserFiles_Request| { &m.privacy },
                |m: &mut CPublishedFile_GetUserFiles_Request| { &mut m.privacy },
            ));
            fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
                "requiredtags",
                |m: &CPublishedFile_GetUserFiles_Request| { &m.requiredtags },
                |m: &mut CPublishedFile_GetUserFiles_Request| { &mut m.requiredtags },
            ));
            fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
                "excludedtags",
                |m: &CPublishedFile_GetUserFiles_Request| { &m.excludedtags },
                |m: &mut CPublishedFile_GetUserFiles_Request| { &mut m.excludedtags },
            ));
            fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<CPublishedFile_GetUserFiles_Request_KVTag>>(
                "required_kv_tags",
                |m: &CPublishedFile_GetUserFiles_Request| { &m.required_kv_tags },
                |m: &mut CPublishedFile_GetUserFiles_Request| { &mut m.required_kv_tags },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeUint32>(
                "filetype",
                |m: &CPublishedFile_GetUserFiles_Request| { &m.filetype },
                |m: &mut CPublishedFile_GetUserFiles_Request| { &mut m.filetype },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeUint32>(
                "creator_appid",
                |m: &CPublishedFile_GetUserFiles_Request| { &m.creator_appid },
                |m: &mut CPublishedFile_GetUserFiles_Request| { &mut m.creator_appid },
            ));
            fields.push(::protobuf::reflect::accessor::make_singular_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
                "match_cloud_filename",
                |m: &CPublishedFile_GetUserFiles_Request| { &m.match_cloud_filename },
                |m: &mut CPublishedFile_GetUserFiles_Request| { &mut m.match_cloud_filename },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeUint32>(
                "cache_max_age_seconds",
                |m: &CPublishedFile_GetUserFiles_Request| { &m.cache_max_age_seconds },
                |m: &mut CPublishedFile_GetUserFiles_Request| { &mut m.cache_max_age_seconds },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeInt32>(
                "language",
                |m: &CPublishedFile_GetUserFiles_Request| { &m.language },
                |m: &mut CPublishedFile_GetUserFiles_Request| { &mut m.language },
            ));
            fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<CPublishedFile_GetUserFiles_Request_TagGroup>>(
                "taggroups",
                |m: &CPublishedFile_GetUserFiles_Request| { &m.taggroups },
                |m: &mut CPublishedFile_GetUserFiles_Request| { &mut m.taggroups },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeBool>(
                "totalonly",
                |m: &CPublishedFile_GetUserFiles_Request| { &m.totalonly },
                |m: &mut CPublishedFile_GetUserFiles_Request| { &mut m.totalonly },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeBool>(
                "ids_only",
                |m: &CPublishedFile_GetUserFiles_Request| { &m.ids_only },
                |m: &mut CPublishedFile_GetUserFiles_Request| { &mut m.ids_only },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeBool>(
                "return_vote_data",
                |m: &CPublishedFile_GetUserFiles_Request| { &m.return_vote_data },
                |m: &mut CPublishedFile_GetUserFiles_Request| { &mut m.return_vote_data },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeBool>(
                "return_tags",
                |m: &CPublishedFile_GetUserFiles_Request| { &m.return_tags },
                |m: &mut CPublishedFile_GetUserFiles_Request| { &mut m.return_tags },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeBool>(
                "return_kv_tags",
                |m: &CPublishedFile_GetUserFiles_Request| { &m.return_kv_tags },
                |m: &mut CPublishedFile_GetUserFiles_Request| { &mut m.return_kv_tags },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeBool>(
                "return_previews",
                |m: &CPublishedFile_GetUserFiles_Request| { &m.return_previews },
                |m: &mut CPublishedFile_GetUserFiles_Request| { &mut m.return_previews },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeBool>(
                "return_children",
                |m: &CPublishedFile_GetUserFiles_Request| { &m.return_children },
                |m: &mut CPublishedFile_GetUserFiles_Request| { &mut m.return_children },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeBool>(
                "return_short_description",
                |m: &CPublishedFile_GetUserFiles_Request| { &m.return_short_description },
                |m: &mut CPublishedFile_GetUserFiles_Request| { &mut m.return_short_description },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeBool>(
                "return_for_sale_data",
                |m: &CPublishedFile_GetUserFiles_Request| { &m.return_for_sale_data },
                |m: &mut CPublishedFile_GetUserFiles_Request| { &mut m.return_for_sale_data },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeBool>(
                "return_metadata",
                |m: &CPublishedFile_GetUserFiles_Request| { &m.return_metadata },
                |m: &mut CPublishedFile_GetUserFiles_Request| { &mut m.return_metadata },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeUint32>(
                "return_playtime_stats",
                |m: &CPublishedFile_GetUserFiles_Request| { &m.return_playtime_stats },
                |m: &mut CPublishedFile_GetUserFiles_Request| { &mut m.return_playtime_stats },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeBool>(
                "strip_description_bbcode",
                |m: &CPublishedFile_GetUserFiles_Request| { &m.strip_description_bbcode },
                |m: &mut CPublishedFile_GetUserFiles_Request| { &mut m.strip_description_bbcode },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeBool>(
                "return_reactions",
                |m: &CPublishedFile_GetUserFiles_Request| { &m.return_reactions },
                |m: &mut CPublishedFile_GetUserFiles_Request| { &mut m.return_reactions },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeUint32>(
                "startindex_override",
                |m: &CPublishedFile_GetUserFiles_Request| { &m.startindex_override },
                |m: &mut CPublishedFile_GetUserFiles_Request| { &mut m.startindex_override },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeEnum<EPublishedFileRevision>>(
                "desired_revision",
                |m: &CPublishedFile_GetUserFiles_Request| { &m.desired_revision },
                |m: &mut CPublishedFile_GetUserFiles_Request| { &mut m.desired_revision },
            ));
            ::protobuf::reflect::MessageDescriptor::new_pb_name::<CPublishedFile_GetUserFiles_Request>(
                "CPublishedFile_GetUserFiles_Request",
                fields,
                file_descriptor_proto()
            )
        })
    }

    fn default_instance() -> &'static CPublishedFile_GetUserFiles_Request {
        static instance: ::protobuf::rt::LazyV2<CPublishedFile_GetUserFiles_Request> = ::protobuf::rt::LazyV2::INIT;
        instance.get(CPublishedFile_GetUserFiles_Request::new)
    }
}

impl ::protobuf::Clear for CPublishedFile_GetUserFiles_Request {
    fn clear(&mut self) {
        self.steamid = ::std::option::Option::None;
        self.appid = ::std::option::Option::None;
        self.page = ::std::option::Option::None;
        self.numperpage = ::std::option::Option::None;
        self.field_type.clear();
        self.sortmethod.clear();
        self.privacy = ::std::option::Option::None;
        self.requiredtags.clear();
        self.excludedtags.clear();
        self.required_kv_tags.clear();
        self.filetype = ::std::option::Option::None;
        self.creator_appid = ::std::option::Option::None;
        self.match_cloud_filename.clear();
        self.cache_max_age_seconds = ::std::option::Option::None;
        self.language = ::std::option::Option::None;
        self.taggroups.clear();
        self.totalonly = ::std::option::Option::None;
        self.ids_only = ::std::option::Option::None;
        self.return_vote_data = ::std::option::Option::None;
        self.return_tags = ::std::option::Option::None;
        self.return_kv_tags = ::std::option::Option::None;
        self.return_previews = ::std::option::Option::None;
        self.return_children = ::std::option::Option::None;
        self.return_short_description = ::std::option::Option::None;
        self.return_for_sale_data = ::std::option::Option::None;
        self.return_metadata = ::std::option::Option::None;
        self.return_playtime_stats = ::std::option::Option::None;
        self.strip_description_bbcode = ::std::option::Option::None;
        self.return_reactions = ::std::option::Option::None;
        self.startindex_override = ::std::option::Option::None;
        self.desired_revision = ::std::option::Option::None;
        self.unknown_fields.clear();
    }
}

impl ::std::fmt::Debug for CPublishedFile_GetUserFiles_Request {
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
        ::protobuf::text_format::fmt(self, f)
    }
}

impl ::protobuf::reflect::ProtobufValue for CPublishedFile_GetUserFiles_Request {
    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
        ::protobuf::reflect::ReflectValueRef::Message(self)
    }
}

#[derive(PartialEq,Clone,Default)]
pub struct CPublishedFile_GetUserFiles_Request_KVTag {
    // message fields
    key: ::protobuf::SingularField<::std::string::String>,
    value: ::protobuf::SingularField<::std::string::String>,
    // special fields
    pub unknown_fields: ::protobuf::UnknownFields,
    pub cached_size: ::protobuf::CachedSize,
}

impl<'a> ::std::default::Default for &'a CPublishedFile_GetUserFiles_Request_KVTag {
    fn default() -> &'a CPublishedFile_GetUserFiles_Request_KVTag {
        <CPublishedFile_GetUserFiles_Request_KVTag as ::protobuf::Message>::default_instance()
    }
}

impl CPublishedFile_GetUserFiles_Request_KVTag {
    pub fn new() -> CPublishedFile_GetUserFiles_Request_KVTag {
        ::std::default::Default::default()
    }

    // optional string key = 1;


    pub fn get_key(&self) -> &str {
        match self.key.as_ref() {
            Some(v) => &v,
            None => "",
        }
    }
    pub fn clear_key(&mut self) {
        self.key.clear();
    }

    pub fn has_key(&self) -> bool {
        self.key.is_some()
    }

    // Param is passed by value, moved
    pub fn set_key(&mut self, v: ::std::string::String) {
        self.key = ::protobuf::SingularField::some(v);
    }

    // Mutable pointer to the field.
    // If field is not initialized, it is initialized with default value first.
    pub fn mut_key(&mut self) -> &mut ::std::string::String {
        if self.key.is_none() {
            self.key.set_default();
        }
        self.key.as_mut().unwrap()
    }

    // Take field
    pub fn take_key(&mut self) -> ::std::string::String {
        self.key.take().unwrap_or_else(|| ::std::string::String::new())
    }

    // optional string value = 2;


    pub fn get_value(&self) -> &str {
        match self.value.as_ref() {
            Some(v) => &v,
            None => "",
        }
    }
    pub fn clear_value(&mut self) {
        self.value.clear();
    }

    pub fn has_value(&self) -> bool {
        self.value.is_some()
    }

    // Param is passed by value, moved
    pub fn set_value(&mut self, v: ::std::string::String) {
        self.value = ::protobuf::SingularField::some(v);
    }

    // Mutable pointer to the field.
    // If field is not initialized, it is initialized with default value first.
    pub fn mut_value(&mut self) -> &mut ::std::string::String {
        if self.value.is_none() {
            self.value.set_default();
        }
        self.value.as_mut().unwrap()
    }

    // Take field
    pub fn take_value(&mut self) -> ::std::string::String {
        self.value.take().unwrap_or_else(|| ::std::string::String::new())
    }
}

impl ::protobuf::Message for CPublishedFile_GetUserFiles_Request_KVTag {
    fn is_initialized(&self) -> bool {
        true
    }

    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
        while !is.eof()? {
            let (field_number, wire_type) = is.read_tag_unpack()?;
            match field_number {
                1 => {
                    ::protobuf::rt::read_singular_string_into(wire_type, is, &mut self.key)?;
                },
                2 => {
                    ::protobuf::rt::read_singular_string_into(wire_type, is, &mut self.value)?;
                },
                _ => {
                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
                },
            };
        }
        ::std::result::Result::Ok(())
    }

    // Compute sizes of nested messages
    #[allow(unused_variables)]
    fn compute_size(&self) -> u32 {
        let mut my_size = 0;
        if let Some(ref v) = self.key.as_ref() {
            my_size += ::protobuf::rt::string_size(1, &v);
        }
        if let Some(ref v) = self.value.as_ref() {
            my_size += ::protobuf::rt::string_size(2, &v);
        }
        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
        self.cached_size.set(my_size);
        my_size
    }

    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
        if let Some(ref v) = self.key.as_ref() {
            os.write_string(1, &v)?;
        }
        if let Some(ref v) = self.value.as_ref() {
            os.write_string(2, &v)?;
        }
        os.write_unknown_fields(self.get_unknown_fields())?;
        ::std::result::Result::Ok(())
    }

    fn get_cached_size(&self) -> u32 {
        self.cached_size.get()
    }

    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
        &self.unknown_fields
    }

    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
        &mut self.unknown_fields
    }

    fn as_any(&self) -> &dyn (::std::any::Any) {
        self as &dyn (::std::any::Any)
    }
    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
        self as &mut dyn (::std::any::Any)
    }
    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
        self
    }

    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
        Self::descriptor_static()
    }

    fn new() -> CPublishedFile_GetUserFiles_Request_KVTag {
        CPublishedFile_GetUserFiles_Request_KVTag::new()
    }

    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
        descriptor.get(|| {
            let mut fields = ::std::vec::Vec::new();
            fields.push(::protobuf::reflect::accessor::make_singular_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
                "key",
                |m: &CPublishedFile_GetUserFiles_Request_KVTag| { &m.key },
                |m: &mut CPublishedFile_GetUserFiles_Request_KVTag| { &mut m.key },
            ));
            fields.push(::protobuf::reflect::accessor::make_singular_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
                "value",
                |m: &CPublishedFile_GetUserFiles_Request_KVTag| { &m.value },
                |m: &mut CPublishedFile_GetUserFiles_Request_KVTag| { &mut m.value },
            ));
            ::protobuf::reflect::MessageDescriptor::new_pb_name::<CPublishedFile_GetUserFiles_Request_KVTag>(
                "CPublishedFile_GetUserFiles_Request.KVTag",
                fields,
                file_descriptor_proto()
            )
        })
    }

    fn default_instance() -> &'static CPublishedFile_GetUserFiles_Request_KVTag {
        static instance: ::protobuf::rt::LazyV2<CPublishedFile_GetUserFiles_Request_KVTag> = ::protobuf::rt::LazyV2::INIT;
        instance.get(CPublishedFile_GetUserFiles_Request_KVTag::new)
    }
}

impl ::protobuf::Clear for CPublishedFile_GetUserFiles_Request_KVTag {
    fn clear(&mut self) {
        self.key.clear();
        self.value.clear();
        self.unknown_fields.clear();
    }
}

impl ::std::fmt::Debug for CPublishedFile_GetUserFiles_Request_KVTag {
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
        ::protobuf::text_format::fmt(self, f)
    }
}

impl ::protobuf::reflect::ProtobufValue for CPublishedFile_GetUserFiles_Request_KVTag {
    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
        ::protobuf::reflect::ReflectValueRef::Message(self)
    }
}

#[derive(PartialEq,Clone,Default)]
pub struct CPublishedFile_GetUserFiles_Request_TagGroup {
    // message fields
    pub tags: ::protobuf::RepeatedField<::std::string::String>,
    // special fields
    pub unknown_fields: ::protobuf::UnknownFields,
    pub cached_size: ::protobuf::CachedSize,
}

impl<'a> ::std::default::Default for &'a CPublishedFile_GetUserFiles_Request_TagGroup {
    fn default() -> &'a CPublishedFile_GetUserFiles_Request_TagGroup {
        <CPublishedFile_GetUserFiles_Request_TagGroup as ::protobuf::Message>::default_instance()
    }
}

impl CPublishedFile_GetUserFiles_Request_TagGroup {
    pub fn new() -> CPublishedFile_GetUserFiles_Request_TagGroup {
        ::std::default::Default::default()
    }

    // repeated string tags = 1;


    pub fn get_tags(&self) -> &[::std::string::String] {
        &self.tags
    }
    pub fn clear_tags(&mut self) {
        self.tags.clear();
    }

    // Param is passed by value, moved
    pub fn set_tags(&mut self, v: ::protobuf::RepeatedField<::std::string::String>) {
        self.tags = v;
    }

    // Mutable pointer to the field.
    pub fn mut_tags(&mut self) -> &mut ::protobuf::RepeatedField<::std::string::String> {
        &mut self.tags
    }

    // Take field
    pub fn take_tags(&mut self) -> ::protobuf::RepeatedField<::std::string::String> {
        ::std::mem::replace(&mut self.tags, ::protobuf::RepeatedField::new())
    }
}

impl ::protobuf::Message for CPublishedFile_GetUserFiles_Request_TagGroup {
    fn is_initialized(&self) -> bool {
        true
    }

    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
        while !is.eof()? {
            let (field_number, wire_type) = is.read_tag_unpack()?;
            match field_number {
                1 => {
                    ::protobuf::rt::read_repeated_string_into(wire_type, is, &mut self.tags)?;
                },
                _ => {
                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
                },
            };
        }
        ::std::result::Result::Ok(())
    }

    // Compute sizes of nested messages
    #[allow(unused_variables)]
    fn compute_size(&self) -> u32 {
        let mut my_size = 0;
        for value in &self.tags {
            my_size += ::protobuf::rt::string_size(1, &value);
        };
        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
        self.cached_size.set(my_size);
        my_size
    }

    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
        for v in &self.tags {
            os.write_string(1, &v)?;
        };
        os.write_unknown_fields(self.get_unknown_fields())?;
        ::std::result::Result::Ok(())
    }

    fn get_cached_size(&self) -> u32 {
        self.cached_size.get()
    }

    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
        &self.unknown_fields
    }

    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
        &mut self.unknown_fields
    }

    fn as_any(&self) -> &dyn (::std::any::Any) {
        self as &dyn (::std::any::Any)
    }
    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
        self as &mut dyn (::std::any::Any)
    }
    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
        self
    }

    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
        Self::descriptor_static()
    }

    fn new() -> CPublishedFile_GetUserFiles_Request_TagGroup {
        CPublishedFile_GetUserFiles_Request_TagGroup::new()
    }

    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
        descriptor.get(|| {
            let mut fields = ::std::vec::Vec::new();
            fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
                "tags",
                |m: &CPublishedFile_GetUserFiles_Request_TagGroup| { &m.tags },
                |m: &mut CPublishedFile_GetUserFiles_Request_TagGroup| { &mut m.tags },
            ));
            ::protobuf::reflect::MessageDescriptor::new_pb_name::<CPublishedFile_GetUserFiles_Request_TagGroup>(
                "CPublishedFile_GetUserFiles_Request.TagGroup",
                fields,
                file_descriptor_proto()
            )
        })
    }

    fn default_instance() -> &'static CPublishedFile_GetUserFiles_Request_TagGroup {
        static instance: ::protobuf::rt::LazyV2<CPublishedFile_GetUserFiles_Request_TagGroup> = ::protobuf::rt::LazyV2::INIT;
        instance.get(CPublishedFile_GetUserFiles_Request_TagGroup::new)
    }
}

impl ::protobuf::Clear for CPublishedFile_GetUserFiles_Request_TagGroup {
    fn clear(&mut self) {
        self.tags.clear();
        self.unknown_fields.clear();
    }
}

impl ::std::fmt::Debug for CPublishedFile_GetUserFiles_Request_TagGroup {
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
        ::protobuf::text_format::fmt(self, f)
    }
}

impl ::protobuf::reflect::ProtobufValue for CPublishedFile_GetUserFiles_Request_TagGroup {
    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
        ::protobuf::reflect::ReflectValueRef::Message(self)
    }
}

#[derive(PartialEq,Clone,Default)]
pub struct CPublishedFile_GetUserFiles_Response {
    // message fields
    total: ::std::option::Option<u32>,
    startindex: ::std::option::Option<u32>,
    pub publishedfiledetails: ::protobuf::RepeatedField<PublishedFileDetails>,
    pub apps: ::protobuf::RepeatedField<CPublishedFile_GetUserFiles_Response_App>,
    // special fields
    pub unknown_fields: ::protobuf::UnknownFields,
    pub cached_size: ::protobuf::CachedSize,
}

impl<'a> ::std::default::Default for &'a CPublishedFile_GetUserFiles_Response {
    fn default() -> &'a CPublishedFile_GetUserFiles_Response {
        <CPublishedFile_GetUserFiles_Response as ::protobuf::Message>::default_instance()
    }
}

impl CPublishedFile_GetUserFiles_Response {
    pub fn new() -> CPublishedFile_GetUserFiles_Response {
        ::std::default::Default::default()
    }

    // optional uint32 total = 1;


    pub fn get_total(&self) -> u32 {
        self.total.unwrap_or(0)
    }
    pub fn clear_total(&mut self) {
        self.total = ::std::option::Option::None;
    }

    pub fn has_total(&self) -> bool {
        self.total.is_some()
    }

    // Param is passed by value, moved
    pub fn set_total(&mut self, v: u32) {
        self.total = ::std::option::Option::Some(v);
    }

    // optional uint32 startindex = 2;


    pub fn get_startindex(&self) -> u32 {
        self.startindex.unwrap_or(0)
    }
    pub fn clear_startindex(&mut self) {
        self.startindex = ::std::option::Option::None;
    }

    pub fn has_startindex(&self) -> bool {
        self.startindex.is_some()
    }

    // Param is passed by value, moved
    pub fn set_startindex(&mut self, v: u32) {
        self.startindex = ::std::option::Option::Some(v);
    }

    // repeated .PublishedFileDetails publishedfiledetails = 3;


    pub fn get_publishedfiledetails(&self) -> &[PublishedFileDetails] {
        &self.publishedfiledetails
    }
    pub fn clear_publishedfiledetails(&mut self) {
        self.publishedfiledetails.clear();
    }

    // Param is passed by value, moved
    pub fn set_publishedfiledetails(&mut self, v: ::protobuf::RepeatedField<PublishedFileDetails>) {
        self.publishedfiledetails = v;
    }

    // Mutable pointer to the field.
    pub fn mut_publishedfiledetails(&mut self) -> &mut ::protobuf::RepeatedField<PublishedFileDetails> {
        &mut self.publishedfiledetails
    }

    // Take field
    pub fn take_publishedfiledetails(&mut self) -> ::protobuf::RepeatedField<PublishedFileDetails> {
        ::std::mem::replace(&mut self.publishedfiledetails, ::protobuf::RepeatedField::new())
    }

    // repeated .CPublishedFile_GetUserFiles_Response.App apps = 4;


    pub fn get_apps(&self) -> &[CPublishedFile_GetUserFiles_Response_App] {
        &self.apps
    }
    pub fn clear_apps(&mut self) {
        self.apps.clear();
    }

    // Param is passed by value, moved
    pub fn set_apps(&mut self, v: ::protobuf::RepeatedField<CPublishedFile_GetUserFiles_Response_App>) {
        self.apps = v;
    }

    // Mutable pointer to the field.
    pub fn mut_apps(&mut self) -> &mut ::protobuf::RepeatedField<CPublishedFile_GetUserFiles_Response_App> {
        &mut self.apps
    }

    // Take field
    pub fn take_apps(&mut self) -> ::protobuf::RepeatedField<CPublishedFile_GetUserFiles_Response_App> {
        ::std::mem::replace(&mut self.apps, ::protobuf::RepeatedField::new())
    }
}

impl ::protobuf::Message for CPublishedFile_GetUserFiles_Response {
    fn is_initialized(&self) -> bool {
        for v in &self.publishedfiledetails {
            if !v.is_initialized() {
                return false;
            }
        };
        for v in &self.apps {
            if !v.is_initialized() {
                return false;
            }
        };
        true
    }

    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
        while !is.eof()? {
            let (field_number, wire_type) = is.read_tag_unpack()?;
            match field_number {
                1 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_uint32()?;
                    self.total = ::std::option::Option::Some(tmp);
                },
                2 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_uint32()?;
                    self.startindex = ::std::option::Option::Some(tmp);
                },
                3 => {
                    ::protobuf::rt::read_repeated_message_into(wire_type, is, &mut self.publishedfiledetails)?;
                },
                4 => {
                    ::protobuf::rt::read_repeated_message_into(wire_type, is, &mut self.apps)?;
                },
                _ => {
                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
                },
            };
        }
        ::std::result::Result::Ok(())
    }

    // Compute sizes of nested messages
    #[allow(unused_variables)]
    fn compute_size(&self) -> u32 {
        let mut my_size = 0;
        if let Some(v) = self.total {
            my_size += ::protobuf::rt::value_size(1, v, ::protobuf::wire_format::WireTypeVarint);
        }
        if let Some(v) = self.startindex {
            my_size += ::protobuf::rt::value_size(2, v, ::protobuf::wire_format::WireTypeVarint);
        }
        for value in &self.publishedfiledetails {
            let len = value.compute_size();
            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
        };
        for value in &self.apps {
            let len = value.compute_size();
            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
        };
        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
        self.cached_size.set(my_size);
        my_size
    }

    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
        if let Some(v) = self.total {
            os.write_uint32(1, v)?;
        }
        if let Some(v) = self.startindex {
            os.write_uint32(2, v)?;
        }
        for v in &self.publishedfiledetails {
            os.write_tag(3, ::protobuf::wire_format::WireTypeLengthDelimited)?;
            os.write_raw_varint32(v.get_cached_size())?;
            v.write_to_with_cached_sizes(os)?;
        };
        for v in &self.apps {
            os.write_tag(4, ::protobuf::wire_format::WireTypeLengthDelimited)?;
            os.write_raw_varint32(v.get_cached_size())?;
            v.write_to_with_cached_sizes(os)?;
        };
        os.write_unknown_fields(self.get_unknown_fields())?;
        ::std::result::Result::Ok(())
    }

    fn get_cached_size(&self) -> u32 {
        self.cached_size.get()
    }

    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
        &self.unknown_fields
    }

    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
        &mut self.unknown_fields
    }

    fn as_any(&self) -> &dyn (::std::any::Any) {
        self as &dyn (::std::any::Any)
    }
    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
        self as &mut dyn (::std::any::Any)
    }
    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
        self
    }

    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
        Self::descriptor_static()
    }

    fn new() -> CPublishedFile_GetUserFiles_Response {
        CPublishedFile_GetUserFiles_Response::new()
    }

    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
        descriptor.get(|| {
            let mut fields = ::std::vec::Vec::new();
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeUint32>(
                "total",
                |m: &CPublishedFile_GetUserFiles_Response| { &m.total },
                |m: &mut CPublishedFile_GetUserFiles_Response| { &mut m.total },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeUint32>(
                "startindex",
                |m: &CPublishedFile_GetUserFiles_Response| { &m.startindex },
                |m: &mut CPublishedFile_GetUserFiles_Response| { &mut m.startindex },
            ));
            fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<PublishedFileDetails>>(
                "publishedfiledetails",
                |m: &CPublishedFile_GetUserFiles_Response| { &m.publishedfiledetails },
                |m: &mut CPublishedFile_GetUserFiles_Response| { &mut m.publishedfiledetails },
            ));
            fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<CPublishedFile_GetUserFiles_Response_App>>(
                "apps",
                |m: &CPublishedFile_GetUserFiles_Response| { &m.apps },
                |m: &mut CPublishedFile_GetUserFiles_Response| { &mut m.apps },
            ));
            ::protobuf::reflect::MessageDescriptor::new_pb_name::<CPublishedFile_GetUserFiles_Response>(
                "CPublishedFile_GetUserFiles_Response",
                fields,
                file_descriptor_proto()
            )
        })
    }

    fn default_instance() -> &'static CPublishedFile_GetUserFiles_Response {
        static instance: ::protobuf::rt::LazyV2<CPublishedFile_GetUserFiles_Response> = ::protobuf::rt::LazyV2::INIT;
        instance.get(CPublishedFile_GetUserFiles_Response::new)
    }
}

impl ::protobuf::Clear for CPublishedFile_GetUserFiles_Response {
    fn clear(&mut self) {
        self.total = ::std::option::Option::None;
        self.startindex = ::std::option::Option::None;
        self.publishedfiledetails.clear();
        self.apps.clear();
        self.unknown_fields.clear();
    }
}

impl ::std::fmt::Debug for CPublishedFile_GetUserFiles_Response {
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
        ::protobuf::text_format::fmt(self, f)
    }
}

impl ::protobuf::reflect::ProtobufValue for CPublishedFile_GetUserFiles_Response {
    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
        ::protobuf::reflect::ReflectValueRef::Message(self)
    }
}

#[derive(PartialEq,Clone,Default)]
pub struct CPublishedFile_GetUserFiles_Response_App {
    // message fields
    appid: ::std::option::Option<u32>,
    name: ::protobuf::SingularField<::std::string::String>,
    shortcutid: ::std::option::Option<u32>,
    private: ::std::option::Option<bool>,
    // special fields
    pub unknown_fields: ::protobuf::UnknownFields,
    pub cached_size: ::protobuf::CachedSize,
}

impl<'a> ::std::default::Default for &'a CPublishedFile_GetUserFiles_Response_App {
    fn default() -> &'a CPublishedFile_GetUserFiles_Response_App {
        <CPublishedFile_GetUserFiles_Response_App as ::protobuf::Message>::default_instance()
    }
}

impl CPublishedFile_GetUserFiles_Response_App {
    pub fn new() -> CPublishedFile_GetUserFiles_Response_App {
        ::std::default::Default::default()
    }

    // optional uint32 appid = 1;


    pub fn get_appid(&self) -> u32 {
        self.appid.unwrap_or(0)
    }
    pub fn clear_appid(&mut self) {
        self.appid = ::std::option::Option::None;
    }

    pub fn has_appid(&self) -> bool {
        self.appid.is_some()
    }

    // Param is passed by value, moved
    pub fn set_appid(&mut self, v: u32) {
        self.appid = ::std::option::Option::Some(v);
    }

    // optional string name = 2;


    pub fn get_name(&self) -> &str {
        match self.name.as_ref() {
            Some(v) => &v,
            None => "",
        }
    }
    pub fn clear_name(&mut self) {
        self.name.clear();
    }

    pub fn has_name(&self) -> bool {
        self.name.is_some()
    }

    // Param is passed by value, moved
    pub fn set_name(&mut self, v: ::std::string::String) {
        self.name = ::protobuf::SingularField::some(v);
    }

    // Mutable pointer to the field.
    // If field is not initialized, it is initialized with default value first.
    pub fn mut_name(&mut self) -> &mut ::std::string::String {
        if self.name.is_none() {
            self.name.set_default();
        }
        self.name.as_mut().unwrap()
    }

    // Take field
    pub fn take_name(&mut self) -> ::std::string::String {
        self.name.take().unwrap_or_else(|| ::std::string::String::new())
    }

    // optional uint32 shortcutid = 3;


    pub fn get_shortcutid(&self) -> u32 {
        self.shortcutid.unwrap_or(0)
    }
    pub fn clear_shortcutid(&mut self) {
        self.shortcutid = ::std::option::Option::None;
    }

    pub fn has_shortcutid(&self) -> bool {
        self.shortcutid.is_some()
    }

    // Param is passed by value, moved
    pub fn set_shortcutid(&mut self, v: u32) {
        self.shortcutid = ::std::option::Option::Some(v);
    }

    // optional bool private = 4;


    pub fn get_private(&self) -> bool {
        self.private.unwrap_or(false)
    }
    pub fn clear_private(&mut self) {
        self.private = ::std::option::Option::None;
    }

    pub fn has_private(&self) -> bool {
        self.private.is_some()
    }

    // Param is passed by value, moved
    pub fn set_private(&mut self, v: bool) {
        self.private = ::std::option::Option::Some(v);
    }
}

impl ::protobuf::Message for CPublishedFile_GetUserFiles_Response_App {
    fn is_initialized(&self) -> bool {
        true
    }

    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
        while !is.eof()? {
            let (field_number, wire_type) = is.read_tag_unpack()?;
            match field_number {
                1 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_uint32()?;
                    self.appid = ::std::option::Option::Some(tmp);
                },
                2 => {
                    ::protobuf::rt::read_singular_string_into(wire_type, is, &mut self.name)?;
                },
                3 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_uint32()?;
                    self.shortcutid = ::std::option::Option::Some(tmp);
                },
                4 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_bool()?;
                    self.private = ::std::option::Option::Some(tmp);
                },
                _ => {
                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
                },
            };
        }
        ::std::result::Result::Ok(())
    }

    // Compute sizes of nested messages
    #[allow(unused_variables)]
    fn compute_size(&self) -> u32 {
        let mut my_size = 0;
        if let Some(v) = self.appid {
            my_size += ::protobuf::rt::value_size(1, v, ::protobuf::wire_format::WireTypeVarint);
        }
        if let Some(ref v) = self.name.as_ref() {
            my_size += ::protobuf::rt::string_size(2, &v);
        }
        if let Some(v) = self.shortcutid {
            my_size += ::protobuf::rt::value_size(3, v, ::protobuf::wire_format::WireTypeVarint);
        }
        if let Some(v) = self.private {
            my_size += 2;
        }
        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
        self.cached_size.set(my_size);
        my_size
    }

    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
        if let Some(v) = self.appid {
            os.write_uint32(1, v)?;
        }
        if let Some(ref v) = self.name.as_ref() {
            os.write_string(2, &v)?;
        }
        if let Some(v) = self.shortcutid {
            os.write_uint32(3, v)?;
        }
        if let Some(v) = self.private {
            os.write_bool(4, v)?;
        }
        os.write_unknown_fields(self.get_unknown_fields())?;
        ::std::result::Result::Ok(())
    }

    fn get_cached_size(&self) -> u32 {
        self.cached_size.get()
    }

    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
        &self.unknown_fields
    }

    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
        &mut self.unknown_fields
    }

    fn as_any(&self) -> &dyn (::std::any::Any) {
        self as &dyn (::std::any::Any)
    }
    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
        self as &mut dyn (::std::any::Any)
    }
    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
        self
    }

    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
        Self::descriptor_static()
    }

    fn new() -> CPublishedFile_GetUserFiles_Response_App {
        CPublishedFile_GetUserFiles_Response_App::new()
    }

    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
        descriptor.get(|| {
            let mut fields = ::std::vec::Vec::new();
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeUint32>(
                "appid",
                |m: &CPublishedFile_GetUserFiles_Response_App| { &m.appid },
                |m: &mut CPublishedFile_GetUserFiles_Response_App| { &mut m.appid },
            ));
            fields.push(::protobuf::reflect::accessor::make_singular_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
                "name",
                |m: &CPublishedFile_GetUserFiles_Response_App| { &m.name },
                |m: &mut CPublishedFile_GetUserFiles_Response_App| { &mut m.name },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeUint32>(
                "shortcutid",
                |m: &CPublishedFile_GetUserFiles_Response_App| { &m.shortcutid },
                |m: &mut CPublishedFile_GetUserFiles_Response_App| { &mut m.shortcutid },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeBool>(
                "private",
                |m: &CPublishedFile_GetUserFiles_Response_App| { &m.private },
                |m: &mut CPublishedFile_GetUserFiles_Response_App| { &mut m.private },
            ));
            ::protobuf::reflect::MessageDescriptor::new_pb_name::<CPublishedFile_GetUserFiles_Response_App>(
                "CPublishedFile_GetUserFiles_Response.App",
                fields,
                file_descriptor_proto()
            )
        })
    }

    fn default_instance() -> &'static CPublishedFile_GetUserFiles_Response_App {
        static instance: ::protobuf::rt::LazyV2<CPublishedFile_GetUserFiles_Response_App> = ::protobuf::rt::LazyV2::INIT;
        instance.get(CPublishedFile_GetUserFiles_Response_App::new)
    }
}

impl ::protobuf::Clear for CPublishedFile_GetUserFiles_Response_App {
    fn clear(&mut self) {
        self.appid = ::std::option::Option::None;
        self.name.clear();
        self.shortcutid = ::std::option::Option::None;
        self.private = ::std::option::Option::None;
        self.unknown_fields.clear();
    }
}

impl ::std::fmt::Debug for CPublishedFile_GetUserFiles_Response_App {
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
        ::protobuf::text_format::fmt(self, f)
    }
}

impl ::protobuf::reflect::ProtobufValue for CPublishedFile_GetUserFiles_Response_App {
    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
        ::protobuf::reflect::ReflectValueRef::Message(self)
    }
}

#[derive(PartialEq,Clone,Default)]
pub struct CPublishedFile_AreFilesInSubscriptionList_Request {
    // message fields
    appid: ::std::option::Option<u32>,
    pub publishedfileids: ::std::vec::Vec<u64>,
    listtype: ::std::option::Option<u32>,
    filetype: ::std::option::Option<u32>,
    workshopfiletype: ::std::option::Option<u32>,
    // special fields
    pub unknown_fields: ::protobuf::UnknownFields,
    pub cached_size: ::protobuf::CachedSize,
}

impl<'a> ::std::default::Default for &'a CPublishedFile_AreFilesInSubscriptionList_Request {
    fn default() -> &'a CPublishedFile_AreFilesInSubscriptionList_Request {
        <CPublishedFile_AreFilesInSubscriptionList_Request as ::protobuf::Message>::default_instance()
    }
}

impl CPublishedFile_AreFilesInSubscriptionList_Request {
    pub fn new() -> CPublishedFile_AreFilesInSubscriptionList_Request {
        ::std::default::Default::default()
    }

    // optional uint32 appid = 1;


    pub fn get_appid(&self) -> u32 {
        self.appid.unwrap_or(0)
    }
    pub fn clear_appid(&mut self) {
        self.appid = ::std::option::Option::None;
    }

    pub fn has_appid(&self) -> bool {
        self.appid.is_some()
    }

    // Param is passed by value, moved
    pub fn set_appid(&mut self, v: u32) {
        self.appid = ::std::option::Option::Some(v);
    }

    // repeated fixed64 publishedfileids = 2;


    pub fn get_publishedfileids(&self) -> &[u64] {
        &self.publishedfileids
    }
    pub fn clear_publishedfileids(&mut self) {
        self.publishedfileids.clear();
    }

    // Param is passed by value, moved
    pub fn set_publishedfileids(&mut self, v: ::std::vec::Vec<u64>) {
        self.publishedfileids = v;
    }

    // Mutable pointer to the field.
    pub fn mut_publishedfileids(&mut self) -> &mut ::std::vec::Vec<u64> {
        &mut self.publishedfileids
    }

    // Take field
    pub fn take_publishedfileids(&mut self) -> ::std::vec::Vec<u64> {
        ::std::mem::replace(&mut self.publishedfileids, ::std::vec::Vec::new())
    }

    // optional uint32 listtype = 3;


    pub fn get_listtype(&self) -> u32 {
        self.listtype.unwrap_or(0)
    }
    pub fn clear_listtype(&mut self) {
        self.listtype = ::std::option::Option::None;
    }

    pub fn has_listtype(&self) -> bool {
        self.listtype.is_some()
    }

    // Param is passed by value, moved
    pub fn set_listtype(&mut self, v: u32) {
        self.listtype = ::std::option::Option::Some(v);
    }

    // optional uint32 filetype = 4;


    pub fn get_filetype(&self) -> u32 {
        self.filetype.unwrap_or(0)
    }
    pub fn clear_filetype(&mut self) {
        self.filetype = ::std::option::Option::None;
    }

    pub fn has_filetype(&self) -> bool {
        self.filetype.is_some()
    }

    // Param is passed by value, moved
    pub fn set_filetype(&mut self, v: u32) {
        self.filetype = ::std::option::Option::Some(v);
    }

    // optional uint32 workshopfiletype = 5;


    pub fn get_workshopfiletype(&self) -> u32 {
        self.workshopfiletype.unwrap_or(0)
    }
    pub fn clear_workshopfiletype(&mut self) {
        self.workshopfiletype = ::std::option::Option::None;
    }

    pub fn has_workshopfiletype(&self) -> bool {
        self.workshopfiletype.is_some()
    }

    // Param is passed by value, moved
    pub fn set_workshopfiletype(&mut self, v: u32) {
        self.workshopfiletype = ::std::option::Option::Some(v);
    }
}

impl ::protobuf::Message for CPublishedFile_AreFilesInSubscriptionList_Request {
    fn is_initialized(&self) -> bool {
        true
    }

    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
        while !is.eof()? {
            let (field_number, wire_type) = is.read_tag_unpack()?;
            match field_number {
                1 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_uint32()?;
                    self.appid = ::std::option::Option::Some(tmp);
                },
                2 => {
                    ::protobuf::rt::read_repeated_fixed64_into(wire_type, is, &mut self.publishedfileids)?;
                },
                3 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_uint32()?;
                    self.listtype = ::std::option::Option::Some(tmp);
                },
                4 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_uint32()?;
                    self.filetype = ::std::option::Option::Some(tmp);
                },
                5 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_uint32()?;
                    self.workshopfiletype = ::std::option::Option::Some(tmp);
                },
                _ => {
                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
                },
            };
        }
        ::std::result::Result::Ok(())
    }

    // Compute sizes of nested messages
    #[allow(unused_variables)]
    fn compute_size(&self) -> u32 {
        let mut my_size = 0;
        if let Some(v) = self.appid {
            my_size += ::protobuf::rt::value_size(1, v, ::protobuf::wire_format::WireTypeVarint);
        }
        my_size += 9 * self.publishedfileids.len() as u32;
        if let Some(v) = self.listtype {
            my_size += ::protobuf::rt::value_size(3, v, ::protobuf::wire_format::WireTypeVarint);
        }
        if let Some(v) = self.filetype {
            my_size += ::protobuf::rt::value_size(4, v, ::protobuf::wire_format::WireTypeVarint);
        }
        if let Some(v) = self.workshopfiletype {
            my_size += ::protobuf::rt::value_size(5, v, ::protobuf::wire_format::WireTypeVarint);
        }
        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
        self.cached_size.set(my_size);
        my_size
    }

    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
        if let Some(v) = self.appid {
            os.write_uint32(1, v)?;
        }
        for v in &self.publishedfileids {
            os.write_fixed64(2, *v)?;
        };
        if let Some(v) = self.listtype {
            os.write_uint32(3, v)?;
        }
        if let Some(v) = self.filetype {
            os.write_uint32(4, v)?;
        }
        if let Some(v) = self.workshopfiletype {
            os.write_uint32(5, v)?;
        }
        os.write_unknown_fields(self.get_unknown_fields())?;
        ::std::result::Result::Ok(())
    }

    fn get_cached_size(&self) -> u32 {
        self.cached_size.get()
    }

    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
        &self.unknown_fields
    }

    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
        &mut self.unknown_fields
    }

    fn as_any(&self) -> &dyn (::std::any::Any) {
        self as &dyn (::std::any::Any)
    }
    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
        self as &mut dyn (::std::any::Any)
    }
    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
        self
    }

    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
        Self::descriptor_static()
    }

    fn new() -> CPublishedFile_AreFilesInSubscriptionList_Request {
        CPublishedFile_AreFilesInSubscriptionList_Request::new()
    }

    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
        descriptor.get(|| {
            let mut fields = ::std::vec::Vec::new();
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeUint32>(
                "appid",
                |m: &CPublishedFile_AreFilesInSubscriptionList_Request| { &m.appid },
                |m: &mut CPublishedFile_AreFilesInSubscriptionList_Request| { &mut m.appid },
            ));
            fields.push(::protobuf::reflect::accessor::make_vec_accessor::<_, ::protobuf::types::ProtobufTypeFixed64>(
                "publishedfileids",
                |m: &CPublishedFile_AreFilesInSubscriptionList_Request| { &m.publishedfileids },
                |m: &mut CPublishedFile_AreFilesInSubscriptionList_Request| { &mut m.publishedfileids },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeUint32>(
                "listtype",
                |m: &CPublishedFile_AreFilesInSubscriptionList_Request| { &m.listtype },
                |m: &mut CPublishedFile_AreFilesInSubscriptionList_Request| { &mut m.listtype },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeUint32>(
                "filetype",
                |m: &CPublishedFile_AreFilesInSubscriptionList_Request| { &m.filetype },
                |m: &mut CPublishedFile_AreFilesInSubscriptionList_Request| { &mut m.filetype },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeUint32>(
                "workshopfiletype",
                |m: &CPublishedFile_AreFilesInSubscriptionList_Request| { &m.workshopfiletype },
                |m: &mut CPublishedFile_AreFilesInSubscriptionList_Request| { &mut m.workshopfiletype },
            ));
            ::protobuf::reflect::MessageDescriptor::new_pb_name::<CPublishedFile_AreFilesInSubscriptionList_Request>(
                "CPublishedFile_AreFilesInSubscriptionList_Request",
                fields,
                file_descriptor_proto()
            )
        })
    }

    fn default_instance() -> &'static CPublishedFile_AreFilesInSubscriptionList_Request {
        static instance: ::protobuf::rt::LazyV2<CPublishedFile_AreFilesInSubscriptionList_Request> = ::protobuf::rt::LazyV2::INIT;
        instance.get(CPublishedFile_AreFilesInSubscriptionList_Request::new)
    }
}

impl ::protobuf::Clear for CPublishedFile_AreFilesInSubscriptionList_Request {
    fn clear(&mut self) {
        self.appid = ::std::option::Option::None;
        self.publishedfileids.clear();
        self.listtype = ::std::option::Option::None;
        self.filetype = ::std::option::Option::None;
        self.workshopfiletype = ::std::option::Option::None;
        self.unknown_fields.clear();
    }
}

impl ::std::fmt::Debug for CPublishedFile_AreFilesInSubscriptionList_Request {
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
        ::protobuf::text_format::fmt(self, f)
    }
}

impl ::protobuf::reflect::ProtobufValue for CPublishedFile_AreFilesInSubscriptionList_Request {
    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
        ::protobuf::reflect::ReflectValueRef::Message(self)
    }
}

#[derive(PartialEq,Clone,Default)]
pub struct CPublishedFile_AreFilesInSubscriptionList_Response {
    // message fields
    pub files: ::protobuf::RepeatedField<CPublishedFile_AreFilesInSubscriptionList_Response_InList>,
    // special fields
    pub unknown_fields: ::protobuf::UnknownFields,
    pub cached_size: ::protobuf::CachedSize,
}

impl<'a> ::std::default::Default for &'a CPublishedFile_AreFilesInSubscriptionList_Response {
    fn default() -> &'a CPublishedFile_AreFilesInSubscriptionList_Response {
        <CPublishedFile_AreFilesInSubscriptionList_Response as ::protobuf::Message>::default_instance()
    }
}

impl CPublishedFile_AreFilesInSubscriptionList_Response {
    pub fn new() -> CPublishedFile_AreFilesInSubscriptionList_Response {
        ::std::default::Default::default()
    }

    // repeated .CPublishedFile_AreFilesInSubscriptionList_Response.InList files = 1;


    pub fn get_files(&self) -> &[CPublishedFile_AreFilesInSubscriptionList_Response_InList] {
        &self.files
    }
    pub fn clear_files(&mut self) {
        self.files.clear();
    }

    // Param is passed by value, moved
    pub fn set_files(&mut self, v: ::protobuf::RepeatedField<CPublishedFile_AreFilesInSubscriptionList_Response_InList>) {
        self.files = v;
    }

    // Mutable pointer to the field.
    pub fn mut_files(&mut self) -> &mut ::protobuf::RepeatedField<CPublishedFile_AreFilesInSubscriptionList_Response_InList> {
        &mut self.files
    }

    // Take field
    pub fn take_files(&mut self) -> ::protobuf::RepeatedField<CPublishedFile_AreFilesInSubscriptionList_Response_InList> {
        ::std::mem::replace(&mut self.files, ::protobuf::RepeatedField::new())
    }
}

impl ::protobuf::Message for CPublishedFile_AreFilesInSubscriptionList_Response {
    fn is_initialized(&self) -> bool {
        for v in &self.files {
            if !v.is_initialized() {
                return false;
            }
        };
        true
    }

    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
        while !is.eof()? {
            let (field_number, wire_type) = is.read_tag_unpack()?;
            match field_number {
                1 => {
                    ::protobuf::rt::read_repeated_message_into(wire_type, is, &mut self.files)?;
                },
                _ => {
                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
                },
            };
        }
        ::std::result::Result::Ok(())
    }

    // Compute sizes of nested messages
    #[allow(unused_variables)]
    fn compute_size(&self) -> u32 {
        let mut my_size = 0;
        for value in &self.files {
            let len = value.compute_size();
            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
        };
        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
        self.cached_size.set(my_size);
        my_size
    }

    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
        for v in &self.files {
            os.write_tag(1, ::protobuf::wire_format::WireTypeLengthDelimited)?;
            os.write_raw_varint32(v.get_cached_size())?;
            v.write_to_with_cached_sizes(os)?;
        };
        os.write_unknown_fields(self.get_unknown_fields())?;
        ::std::result::Result::Ok(())
    }

    fn get_cached_size(&self) -> u32 {
        self.cached_size.get()
    }

    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
        &self.unknown_fields
    }

    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
        &mut self.unknown_fields
    }

    fn as_any(&self) -> &dyn (::std::any::Any) {
        self as &dyn (::std::any::Any)
    }
    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
        self as &mut dyn (::std::any::Any)
    }
    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
        self
    }

    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
        Self::descriptor_static()
    }

    fn new() -> CPublishedFile_AreFilesInSubscriptionList_Response {
        CPublishedFile_AreFilesInSubscriptionList_Response::new()
    }

    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
        descriptor.get(|| {
            let mut fields = ::std::vec::Vec::new();
            fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<CPublishedFile_AreFilesInSubscriptionList_Response_InList>>(
                "files",
                |m: &CPublishedFile_AreFilesInSubscriptionList_Response| { &m.files },
                |m: &mut CPublishedFile_AreFilesInSubscriptionList_Response| { &mut m.files },
            ));
            ::protobuf::reflect::MessageDescriptor::new_pb_name::<CPublishedFile_AreFilesInSubscriptionList_Response>(
                "CPublishedFile_AreFilesInSubscriptionList_Response",
                fields,
                file_descriptor_proto()
            )
        })
    }

    fn default_instance() -> &'static CPublishedFile_AreFilesInSubscriptionList_Response {
        static instance: ::protobuf::rt::LazyV2<CPublishedFile_AreFilesInSubscriptionList_Response> = ::protobuf::rt::LazyV2::INIT;
        instance.get(CPublishedFile_AreFilesInSubscriptionList_Response::new)
    }
}

impl ::protobuf::Clear for CPublishedFile_AreFilesInSubscriptionList_Response {
    fn clear(&mut self) {
        self.files.clear();
        self.unknown_fields.clear();
    }
}

impl ::std::fmt::Debug for CPublishedFile_AreFilesInSubscriptionList_Response {
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
        ::protobuf::text_format::fmt(self, f)
    }
}

impl ::protobuf::reflect::ProtobufValue for CPublishedFile_AreFilesInSubscriptionList_Response {
    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
        ::protobuf::reflect::ReflectValueRef::Message(self)
    }
}

#[derive(PartialEq,Clone,Default)]
pub struct CPublishedFile_AreFilesInSubscriptionList_Response_InList {
    // message fields
    publishedfileid: ::std::option::Option<u64>,
    inlist: ::std::option::Option<bool>,
    // special fields
    pub unknown_fields: ::protobuf::UnknownFields,
    pub cached_size: ::protobuf::CachedSize,
}

impl<'a> ::std::default::Default for &'a CPublishedFile_AreFilesInSubscriptionList_Response_InList {
    fn default() -> &'a CPublishedFile_AreFilesInSubscriptionList_Response_InList {
        <CPublishedFile_AreFilesInSubscriptionList_Response_InList as ::protobuf::Message>::default_instance()
    }
}

impl CPublishedFile_AreFilesInSubscriptionList_Response_InList {
    pub fn new() -> CPublishedFile_AreFilesInSubscriptionList_Response_InList {
        ::std::default::Default::default()
    }

    // optional fixed64 publishedfileid = 1;


    pub fn get_publishedfileid(&self) -> u64 {
        self.publishedfileid.unwrap_or(0)
    }
    pub fn clear_publishedfileid(&mut self) {
        self.publishedfileid = ::std::option::Option::None;
    }

    pub fn has_publishedfileid(&self) -> bool {
        self.publishedfileid.is_some()
    }

    // Param is passed by value, moved
    pub fn set_publishedfileid(&mut self, v: u64) {
        self.publishedfileid = ::std::option::Option::Some(v);
    }

    // optional bool inlist = 2;


    pub fn get_inlist(&self) -> bool {
        self.inlist.unwrap_or(false)
    }
    pub fn clear_inlist(&mut self) {
        self.inlist = ::std::option::Option::None;
    }

    pub fn has_inlist(&self) -> bool {
        self.inlist.is_some()
    }

    // Param is passed by value, moved
    pub fn set_inlist(&mut self, v: bool) {
        self.inlist = ::std::option::Option::Some(v);
    }
}

impl ::protobuf::Message for CPublishedFile_AreFilesInSubscriptionList_Response_InList {
    fn is_initialized(&self) -> bool {
        true
    }

    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
        while !is.eof()? {
            let (field_number, wire_type) = is.read_tag_unpack()?;
            match field_number {
                1 => {
                    if wire_type != ::protobuf::wire_format::WireTypeFixed64 {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_fixed64()?;
                    self.publishedfileid = ::std::option::Option::Some(tmp);
                },
                2 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_bool()?;
                    self.inlist = ::std::option::Option::Some(tmp);
                },
                _ => {
                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
                },
            };
        }
        ::std::result::Result::Ok(())
    }

    // Compute sizes of nested messages
    #[allow(unused_variables)]
    fn compute_size(&self) -> u32 {
        let mut my_size = 0;
        if let Some(v) = self.publishedfileid {
            my_size += 9;
        }
        if let Some(v) = self.inlist {
            my_size += 2;
        }
        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
        self.cached_size.set(my_size);
        my_size
    }

    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
        if let Some(v) = self.publishedfileid {
            os.write_fixed64(1, v)?;
        }
        if let Some(v) = self.inlist {
            os.write_bool(2, v)?;
        }
        os.write_unknown_fields(self.get_unknown_fields())?;
        ::std::result::Result::Ok(())
    }

    fn get_cached_size(&self) -> u32 {
        self.cached_size.get()
    }

    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
        &self.unknown_fields
    }

    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
        &mut self.unknown_fields
    }

    fn as_any(&self) -> &dyn (::std::any::Any) {
        self as &dyn (::std::any::Any)
    }
    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
        self as &mut dyn (::std::any::Any)
    }
    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
        self
    }

    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
        Self::descriptor_static()
    }

    fn new() -> CPublishedFile_AreFilesInSubscriptionList_Response_InList {
        CPublishedFile_AreFilesInSubscriptionList_Response_InList::new()
    }

    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
        descriptor.get(|| {
            let mut fields = ::std::vec::Vec::new();
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeFixed64>(
                "publishedfileid",
                |m: &CPublishedFile_AreFilesInSubscriptionList_Response_InList| { &m.publishedfileid },
                |m: &mut CPublishedFile_AreFilesInSubscriptionList_Response_InList| { &mut m.publishedfileid },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeBool>(
                "inlist",
                |m: &CPublishedFile_AreFilesInSubscriptionList_Response_InList| { &m.inlist },
                |m: &mut CPublishedFile_AreFilesInSubscriptionList_Response_InList| { &mut m.inlist },
            ));
            ::protobuf::reflect::MessageDescriptor::new_pb_name::<CPublishedFile_AreFilesInSubscriptionList_Response_InList>(
                "CPublishedFile_AreFilesInSubscriptionList_Response.InList",
                fields,
                file_descriptor_proto()
            )
        })
    }

    fn default_instance() -> &'static CPublishedFile_AreFilesInSubscriptionList_Response_InList {
        static instance: ::protobuf::rt::LazyV2<CPublishedFile_AreFilesInSubscriptionList_Response_InList> = ::protobuf::rt::LazyV2::INIT;
        instance.get(CPublishedFile_AreFilesInSubscriptionList_Response_InList::new)
    }
}

impl ::protobuf::Clear for CPublishedFile_AreFilesInSubscriptionList_Response_InList {
    fn clear(&mut self) {
        self.publishedfileid = ::std::option::Option::None;
        self.inlist = ::std::option::Option::None;
        self.unknown_fields.clear();
    }
}

impl ::std::fmt::Debug for CPublishedFile_AreFilesInSubscriptionList_Response_InList {
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
        ::protobuf::text_format::fmt(self, f)
    }
}

impl ::protobuf::reflect::ProtobufValue for CPublishedFile_AreFilesInSubscriptionList_Response_InList {
    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
        ::protobuf::reflect::ReflectValueRef::Message(self)
    }
}

#[derive(PartialEq,Clone,Default)]
pub struct CPublishedFile_Update_Request {
    // message fields
    appid: ::std::option::Option<u32>,
    publishedfileid: ::std::option::Option<u64>,
    title: ::protobuf::SingularField<::std::string::String>,
    file_description: ::protobuf::SingularField<::std::string::String>,
    visibility: ::std::option::Option<u32>,
    pub tags: ::protobuf::RepeatedField<::std::string::String>,
    filename: ::protobuf::SingularField<::std::string::String>,
    preview_filename: ::protobuf::SingularField<::std::string::String>,
    image_width: ::std::option::Option<u32>,
    image_height: ::std::option::Option<u32>,
    // special fields
    pub unknown_fields: ::protobuf::UnknownFields,
    pub cached_size: ::protobuf::CachedSize,
}

impl<'a> ::std::default::Default for &'a CPublishedFile_Update_Request {
    fn default() -> &'a CPublishedFile_Update_Request {
        <CPublishedFile_Update_Request as ::protobuf::Message>::default_instance()
    }
}

impl CPublishedFile_Update_Request {
    pub fn new() -> CPublishedFile_Update_Request {
        ::std::default::Default::default()
    }

    // optional uint32 appid = 1;


    pub fn get_appid(&self) -> u32 {
        self.appid.unwrap_or(0)
    }
    pub fn clear_appid(&mut self) {
        self.appid = ::std::option::Option::None;
    }

    pub fn has_appid(&self) -> bool {
        self.appid.is_some()
    }

    // Param is passed by value, moved
    pub fn set_appid(&mut self, v: u32) {
        self.appid = ::std::option::Option::Some(v);
    }

    // optional fixed64 publishedfileid = 2;


    pub fn get_publishedfileid(&self) -> u64 {
        self.publishedfileid.unwrap_or(0)
    }
    pub fn clear_publishedfileid(&mut self) {
        self.publishedfileid = ::std::option::Option::None;
    }

    pub fn has_publishedfileid(&self) -> bool {
        self.publishedfileid.is_some()
    }

    // Param is passed by value, moved
    pub fn set_publishedfileid(&mut self, v: u64) {
        self.publishedfileid = ::std::option::Option::Some(v);
    }

    // optional string title = 3;


    pub fn get_title(&self) -> &str {
        match self.title.as_ref() {
            Some(v) => &v,
            None => "",
        }
    }
    pub fn clear_title(&mut self) {
        self.title.clear();
    }

    pub fn has_title(&self) -> bool {
        self.title.is_some()
    }

    // Param is passed by value, moved
    pub fn set_title(&mut self, v: ::std::string::String) {
        self.title = ::protobuf::SingularField::some(v);
    }

    // Mutable pointer to the field.
    // If field is not initialized, it is initialized with default value first.
    pub fn mut_title(&mut self) -> &mut ::std::string::String {
        if self.title.is_none() {
            self.title.set_default();
        }
        self.title.as_mut().unwrap()
    }

    // Take field
    pub fn take_title(&mut self) -> ::std::string::String {
        self.title.take().unwrap_or_else(|| ::std::string::String::new())
    }

    // optional string file_description = 4;


    pub fn get_file_description(&self) -> &str {
        match self.file_description.as_ref() {
            Some(v) => &v,
            None => "",
        }
    }
    pub fn clear_file_description(&mut self) {
        self.file_description.clear();
    }

    pub fn has_file_description(&self) -> bool {
        self.file_description.is_some()
    }

    // Param is passed by value, moved
    pub fn set_file_description(&mut self, v: ::std::string::String) {
        self.file_description = ::protobuf::SingularField::some(v);
    }

    // Mutable pointer to the field.
    // If field is not initialized, it is initialized with default value first.
    pub fn mut_file_description(&mut self) -> &mut ::std::string::String {
        if self.file_description.is_none() {
            self.file_description.set_default();
        }
        self.file_description.as_mut().unwrap()
    }

    // Take field
    pub fn take_file_description(&mut self) -> ::std::string::String {
        self.file_description.take().unwrap_or_else(|| ::std::string::String::new())
    }

    // optional uint32 visibility = 5;


    pub fn get_visibility(&self) -> u32 {
        self.visibility.unwrap_or(0)
    }
    pub fn clear_visibility(&mut self) {
        self.visibility = ::std::option::Option::None;
    }

    pub fn has_visibility(&self) -> bool {
        self.visibility.is_some()
    }

    // Param is passed by value, moved
    pub fn set_visibility(&mut self, v: u32) {
        self.visibility = ::std::option::Option::Some(v);
    }

    // repeated string tags = 6;


    pub fn get_tags(&self) -> &[::std::string::String] {
        &self.tags
    }
    pub fn clear_tags(&mut self) {
        self.tags.clear();
    }

    // Param is passed by value, moved
    pub fn set_tags(&mut self, v: ::protobuf::RepeatedField<::std::string::String>) {
        self.tags = v;
    }

    // Mutable pointer to the field.
    pub fn mut_tags(&mut self) -> &mut ::protobuf::RepeatedField<::std::string::String> {
        &mut self.tags
    }

    // Take field
    pub fn take_tags(&mut self) -> ::protobuf::RepeatedField<::std::string::String> {
        ::std::mem::replace(&mut self.tags, ::protobuf::RepeatedField::new())
    }

    // optional string filename = 7;


    pub fn get_filename(&self) -> &str {
        match self.filename.as_ref() {
            Some(v) => &v,
            None => "",
        }
    }
    pub fn clear_filename(&mut self) {
        self.filename.clear();
    }

    pub fn has_filename(&self) -> bool {
        self.filename.is_some()
    }

    // Param is passed by value, moved
    pub fn set_filename(&mut self, v: ::std::string::String) {
        self.filename = ::protobuf::SingularField::some(v);
    }

    // Mutable pointer to the field.
    // If field is not initialized, it is initialized with default value first.
    pub fn mut_filename(&mut self) -> &mut ::std::string::String {
        if self.filename.is_none() {
            self.filename.set_default();
        }
        self.filename.as_mut().unwrap()
    }

    // Take field
    pub fn take_filename(&mut self) -> ::std::string::String {
        self.filename.take().unwrap_or_else(|| ::std::string::String::new())
    }

    // optional string preview_filename = 8;


    pub fn get_preview_filename(&self) -> &str {
        match self.preview_filename.as_ref() {
            Some(v) => &v,
            None => "",
        }
    }
    pub fn clear_preview_filename(&mut self) {
        self.preview_filename.clear();
    }

    pub fn has_preview_filename(&self) -> bool {
        self.preview_filename.is_some()
    }

    // Param is passed by value, moved
    pub fn set_preview_filename(&mut self, v: ::std::string::String) {
        self.preview_filename = ::protobuf::SingularField::some(v);
    }

    // Mutable pointer to the field.
    // If field is not initialized, it is initialized with default value first.
    pub fn mut_preview_filename(&mut self) -> &mut ::std::string::String {
        if self.preview_filename.is_none() {
            self.preview_filename.set_default();
        }
        self.preview_filename.as_mut().unwrap()
    }

    // Take field
    pub fn take_preview_filename(&mut self) -> ::std::string::String {
        self.preview_filename.take().unwrap_or_else(|| ::std::string::String::new())
    }

    // optional uint32 image_width = 15;


    pub fn get_image_width(&self) -> u32 {
        self.image_width.unwrap_or(0)
    }
    pub fn clear_image_width(&mut self) {
        self.image_width = ::std::option::Option::None;
    }

    pub fn has_image_width(&self) -> bool {
        self.image_width.is_some()
    }

    // Param is passed by value, moved
    pub fn set_image_width(&mut self, v: u32) {
        self.image_width = ::std::option::Option::Some(v);
    }

    // optional uint32 image_height = 16;


    pub fn get_image_height(&self) -> u32 {
        self.image_height.unwrap_or(0)
    }
    pub fn clear_image_height(&mut self) {
        self.image_height = ::std::option::Option::None;
    }

    pub fn has_image_height(&self) -> bool {
        self.image_height.is_some()
    }

    // Param is passed by value, moved
    pub fn set_image_height(&mut self, v: u32) {
        self.image_height = ::std::option::Option::Some(v);
    }
}

impl ::protobuf::Message for CPublishedFile_Update_Request {
    fn is_initialized(&self) -> bool {
        true
    }

    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
        while !is.eof()? {
            let (field_number, wire_type) = is.read_tag_unpack()?;
            match field_number {
                1 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_uint32()?;
                    self.appid = ::std::option::Option::Some(tmp);
                },
                2 => {
                    if wire_type != ::protobuf::wire_format::WireTypeFixed64 {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_fixed64()?;
                    self.publishedfileid = ::std::option::Option::Some(tmp);
                },
                3 => {
                    ::protobuf::rt::read_singular_string_into(wire_type, is, &mut self.title)?;
                },
                4 => {
                    ::protobuf::rt::read_singular_string_into(wire_type, is, &mut self.file_description)?;
                },
                5 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_uint32()?;
                    self.visibility = ::std::option::Option::Some(tmp);
                },
                6 => {
                    ::protobuf::rt::read_repeated_string_into(wire_type, is, &mut self.tags)?;
                },
                7 => {
                    ::protobuf::rt::read_singular_string_into(wire_type, is, &mut self.filename)?;
                },
                8 => {
                    ::protobuf::rt::read_singular_string_into(wire_type, is, &mut self.preview_filename)?;
                },
                15 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_uint32()?;
                    self.image_width = ::std::option::Option::Some(tmp);
                },
                16 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_uint32()?;
                    self.image_height = ::std::option::Option::Some(tmp);
                },
                _ => {
                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
                },
            };
        }
        ::std::result::Result::Ok(())
    }

    // Compute sizes of nested messages
    #[allow(unused_variables)]
    fn compute_size(&self) -> u32 {
        let mut my_size = 0;
        if let Some(v) = self.appid {
            my_size += ::protobuf::rt::value_size(1, v, ::protobuf::wire_format::WireTypeVarint);
        }
        if let Some(v) = self.publishedfileid {
            my_size += 9;
        }
        if let Some(ref v) = self.title.as_ref() {
            my_size += ::protobuf::rt::string_size(3, &v);
        }
        if let Some(ref v) = self.file_description.as_ref() {
            my_size += ::protobuf::rt::string_size(4, &v);
        }
        if let Some(v) = self.visibility {
            my_size += ::protobuf::rt::value_size(5, v, ::protobuf::wire_format::WireTypeVarint);
        }
        for value in &self.tags {
            my_size += ::protobuf::rt::string_size(6, &value);
        };
        if let Some(ref v) = self.filename.as_ref() {
            my_size += ::protobuf::rt::string_size(7, &v);
        }
        if let Some(ref v) = self.preview_filename.as_ref() {
            my_size += ::protobuf::rt::string_size(8, &v);
        }
        if let Some(v) = self.image_width {
            my_size += ::protobuf::rt::value_size(15, v, ::protobuf::wire_format::WireTypeVarint);
        }
        if let Some(v) = self.image_height {
            my_size += ::protobuf::rt::value_size(16, v, ::protobuf::wire_format::WireTypeVarint);
        }
        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
        self.cached_size.set(my_size);
        my_size
    }

    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
        if let Some(v) = self.appid {
            os.write_uint32(1, v)?;
        }
        if let Some(v) = self.publishedfileid {
            os.write_fixed64(2, v)?;
        }
        if let Some(ref v) = self.title.as_ref() {
            os.write_string(3, &v)?;
        }
        if let Some(ref v) = self.file_description.as_ref() {
            os.write_string(4, &v)?;
        }
        if let Some(v) = self.visibility {
            os.write_uint32(5, v)?;
        }
        for v in &self.tags {
            os.write_string(6, &v)?;
        };
        if let Some(ref v) = self.filename.as_ref() {
            os.write_string(7, &v)?;
        }
        if let Some(ref v) = self.preview_filename.as_ref() {
            os.write_string(8, &v)?;
        }
        if let Some(v) = self.image_width {
            os.write_uint32(15, v)?;
        }
        if let Some(v) = self.image_height {
            os.write_uint32(16, v)?;
        }
        os.write_unknown_fields(self.get_unknown_fields())?;
        ::std::result::Result::Ok(())
    }

    fn get_cached_size(&self) -> u32 {
        self.cached_size.get()
    }

    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
        &self.unknown_fields
    }

    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
        &mut self.unknown_fields
    }

    fn as_any(&self) -> &dyn (::std::any::Any) {
        self as &dyn (::std::any::Any)
    }
    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
        self as &mut dyn (::std::any::Any)
    }
    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
        self
    }

    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
        Self::descriptor_static()
    }

    fn new() -> CPublishedFile_Update_Request {
        CPublishedFile_Update_Request::new()
    }

    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
        descriptor.get(|| {
            let mut fields = ::std::vec::Vec::new();
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeUint32>(
                "appid",
                |m: &CPublishedFile_Update_Request| { &m.appid },
                |m: &mut CPublishedFile_Update_Request| { &mut m.appid },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeFixed64>(
                "publishedfileid",
                |m: &CPublishedFile_Update_Request| { &m.publishedfileid },
                |m: &mut CPublishedFile_Update_Request| { &mut m.publishedfileid },
            ));
            fields.push(::protobuf::reflect::accessor::make_singular_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
                "title",
                |m: &CPublishedFile_Update_Request| { &m.title },
                |m: &mut CPublishedFile_Update_Request| { &mut m.title },
            ));
            fields.push(::protobuf::reflect::accessor::make_singular_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
                "file_description",
                |m: &CPublishedFile_Update_Request| { &m.file_description },
                |m: &mut CPublishedFile_Update_Request| { &mut m.file_description },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeUint32>(
                "visibility",
                |m: &CPublishedFile_Update_Request| { &m.visibility },
                |m: &mut CPublishedFile_Update_Request| { &mut m.visibility },
            ));
            fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
                "tags",
                |m: &CPublishedFile_Update_Request| { &m.tags },
                |m: &mut CPublishedFile_Update_Request| { &mut m.tags },
            ));
            fields.push(::protobuf::reflect::accessor::make_singular_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
                "filename",
                |m: &CPublishedFile_Update_Request| { &m.filename },
                |m: &mut CPublishedFile_Update_Request| { &mut m.filename },
            ));
            fields.push(::protobuf::reflect::accessor::make_singular_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
                "preview_filename",
                |m: &CPublishedFile_Update_Request| { &m.preview_filename },
                |m: &mut CPublishedFile_Update_Request| { &mut m.preview_filename },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeUint32>(
                "image_width",
                |m: &CPublishedFile_Update_Request| { &m.image_width },
                |m: &mut CPublishedFile_Update_Request| { &mut m.image_width },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeUint32>(
                "image_height",
                |m: &CPublishedFile_Update_Request| { &m.image_height },
                |m: &mut CPublishedFile_Update_Request| { &mut m.image_height },
            ));
            ::protobuf::reflect::MessageDescriptor::new_pb_name::<CPublishedFile_Update_Request>(
                "CPublishedFile_Update_Request",
                fields,
                file_descriptor_proto()
            )
        })
    }

    fn default_instance() -> &'static CPublishedFile_Update_Request {
        static instance: ::protobuf::rt::LazyV2<CPublishedFile_Update_Request> = ::protobuf::rt::LazyV2::INIT;
        instance.get(CPublishedFile_Update_Request::new)
    }
}

impl ::protobuf::Clear for CPublishedFile_Update_Request {
    fn clear(&mut self) {
        self.appid = ::std::option::Option::None;
        self.publishedfileid = ::std::option::Option::None;
        self.title.clear();
        self.file_description.clear();
        self.visibility = ::std::option::Option::None;
        self.tags.clear();
        self.filename.clear();
        self.preview_filename.clear();
        self.image_width = ::std::option::Option::None;
        self.image_height = ::std::option::Option::None;
        self.unknown_fields.clear();
    }
}

impl ::std::fmt::Debug for CPublishedFile_Update_Request {
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
        ::protobuf::text_format::fmt(self, f)
    }
}

impl ::protobuf::reflect::ProtobufValue for CPublishedFile_Update_Request {
    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
        ::protobuf::reflect::ReflectValueRef::Message(self)
    }
}

#[derive(PartialEq,Clone,Default)]
pub struct CPublishedFile_Update_Response {
    // special fields
    pub unknown_fields: ::protobuf::UnknownFields,
    pub cached_size: ::protobuf::CachedSize,
}

impl<'a> ::std::default::Default for &'a CPublishedFile_Update_Response {
    fn default() -> &'a CPublishedFile_Update_Response {
        <CPublishedFile_Update_Response as ::protobuf::Message>::default_instance()
    }
}

impl CPublishedFile_Update_Response {
    pub fn new() -> CPublishedFile_Update_Response {
        ::std::default::Default::default()
    }
}

impl ::protobuf::Message for CPublishedFile_Update_Response {
    fn is_initialized(&self) -> bool {
        true
    }

    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
        while !is.eof()? {
            let (field_number, wire_type) = is.read_tag_unpack()?;
            match field_number {
                _ => {
                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
                },
            };
        }
        ::std::result::Result::Ok(())
    }

    // Compute sizes of nested messages
    #[allow(unused_variables)]
    fn compute_size(&self) -> u32 {
        let mut my_size = 0;
        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
        self.cached_size.set(my_size);
        my_size
    }

    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
        os.write_unknown_fields(self.get_unknown_fields())?;
        ::std::result::Result::Ok(())
    }

    fn get_cached_size(&self) -> u32 {
        self.cached_size.get()
    }

    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
        &self.unknown_fields
    }

    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
        &mut self.unknown_fields
    }

    fn as_any(&self) -> &dyn (::std::any::Any) {
        self as &dyn (::std::any::Any)
    }
    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
        self as &mut dyn (::std::any::Any)
    }
    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
        self
    }

    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
        Self::descriptor_static()
    }

    fn new() -> CPublishedFile_Update_Response {
        CPublishedFile_Update_Response::new()
    }

    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
        descriptor.get(|| {
            let fields = ::std::vec::Vec::new();
            ::protobuf::reflect::MessageDescriptor::new_pb_name::<CPublishedFile_Update_Response>(
                "CPublishedFile_Update_Response",
                fields,
                file_descriptor_proto()
            )
        })
    }

    fn default_instance() -> &'static CPublishedFile_Update_Response {
        static instance: ::protobuf::rt::LazyV2<CPublishedFile_Update_Response> = ::protobuf::rt::LazyV2::INIT;
        instance.get(CPublishedFile_Update_Response::new)
    }
}

impl ::protobuf::Clear for CPublishedFile_Update_Response {
    fn clear(&mut self) {
        self.unknown_fields.clear();
    }
}

impl ::std::fmt::Debug for CPublishedFile_Update_Response {
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
        ::protobuf::text_format::fmt(self, f)
    }
}

impl ::protobuf::reflect::ProtobufValue for CPublishedFile_Update_Response {
    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
        ::protobuf::reflect::ReflectValueRef::Message(self)
    }
}

#[derive(PartialEq,Clone,Default)]
pub struct CPublishedFile_GetChangeHistoryEntry_Request {
    // message fields
    publishedfileid: ::std::option::Option<u64>,
    timestamp: ::std::option::Option<u32>,
    language: ::std::option::Option<i32>,
    // special fields
    pub unknown_fields: ::protobuf::UnknownFields,
    pub cached_size: ::protobuf::CachedSize,
}

impl<'a> ::std::default::Default for &'a CPublishedFile_GetChangeHistoryEntry_Request {
    fn default() -> &'a CPublishedFile_GetChangeHistoryEntry_Request {
        <CPublishedFile_GetChangeHistoryEntry_Request as ::protobuf::Message>::default_instance()
    }
}

impl CPublishedFile_GetChangeHistoryEntry_Request {
    pub fn new() -> CPublishedFile_GetChangeHistoryEntry_Request {
        ::std::default::Default::default()
    }

    // optional fixed64 publishedfileid = 1;


    pub fn get_publishedfileid(&self) -> u64 {
        self.publishedfileid.unwrap_or(0)
    }
    pub fn clear_publishedfileid(&mut self) {
        self.publishedfileid = ::std::option::Option::None;
    }

    pub fn has_publishedfileid(&self) -> bool {
        self.publishedfileid.is_some()
    }

    // Param is passed by value, moved
    pub fn set_publishedfileid(&mut self, v: u64) {
        self.publishedfileid = ::std::option::Option::Some(v);
    }

    // optional uint32 timestamp = 2;


    pub fn get_timestamp(&self) -> u32 {
        self.timestamp.unwrap_or(0)
    }
    pub fn clear_timestamp(&mut self) {
        self.timestamp = ::std::option::Option::None;
    }

    pub fn has_timestamp(&self) -> bool {
        self.timestamp.is_some()
    }

    // Param is passed by value, moved
    pub fn set_timestamp(&mut self, v: u32) {
        self.timestamp = ::std::option::Option::Some(v);
    }

    // optional int32 language = 3;


    pub fn get_language(&self) -> i32 {
        self.language.unwrap_or(0)
    }
    pub fn clear_language(&mut self) {
        self.language = ::std::option::Option::None;
    }

    pub fn has_language(&self) -> bool {
        self.language.is_some()
    }

    // Param is passed by value, moved
    pub fn set_language(&mut self, v: i32) {
        self.language = ::std::option::Option::Some(v);
    }
}

impl ::protobuf::Message for CPublishedFile_GetChangeHistoryEntry_Request {
    fn is_initialized(&self) -> bool {
        true
    }

    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
        while !is.eof()? {
            let (field_number, wire_type) = is.read_tag_unpack()?;
            match field_number {
                1 => {
                    if wire_type != ::protobuf::wire_format::WireTypeFixed64 {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_fixed64()?;
                    self.publishedfileid = ::std::option::Option::Some(tmp);
                },
                2 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_uint32()?;
                    self.timestamp = ::std::option::Option::Some(tmp);
                },
                3 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_int32()?;
                    self.language = ::std::option::Option::Some(tmp);
                },
                _ => {
                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
                },
            };
        }
        ::std::result::Result::Ok(())
    }

    // Compute sizes of nested messages
    #[allow(unused_variables)]
    fn compute_size(&self) -> u32 {
        let mut my_size = 0;
        if let Some(v) = self.publishedfileid {
            my_size += 9;
        }
        if let Some(v) = self.timestamp {
            my_size += ::protobuf::rt::value_size(2, v, ::protobuf::wire_format::WireTypeVarint);
        }
        if let Some(v) = self.language {
            my_size += ::protobuf::rt::value_size(3, v, ::protobuf::wire_format::WireTypeVarint);
        }
        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
        self.cached_size.set(my_size);
        my_size
    }

    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
        if let Some(v) = self.publishedfileid {
            os.write_fixed64(1, v)?;
        }
        if let Some(v) = self.timestamp {
            os.write_uint32(2, v)?;
        }
        if let Some(v) = self.language {
            os.write_int32(3, v)?;
        }
        os.write_unknown_fields(self.get_unknown_fields())?;
        ::std::result::Result::Ok(())
    }

    fn get_cached_size(&self) -> u32 {
        self.cached_size.get()
    }

    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
        &self.unknown_fields
    }

    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
        &mut self.unknown_fields
    }

    fn as_any(&self) -> &dyn (::std::any::Any) {
        self as &dyn (::std::any::Any)
    }
    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
        self as &mut dyn (::std::any::Any)
    }
    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
        self
    }

    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
        Self::descriptor_static()
    }

    fn new() -> CPublishedFile_GetChangeHistoryEntry_Request {
        CPublishedFile_GetChangeHistoryEntry_Request::new()
    }

    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
        descriptor.get(|| {
            let mut fields = ::std::vec::Vec::new();
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeFixed64>(
                "publishedfileid",
                |m: &CPublishedFile_GetChangeHistoryEntry_Request| { &m.publishedfileid },
                |m: &mut CPublishedFile_GetChangeHistoryEntry_Request| { &mut m.publishedfileid },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeUint32>(
                "timestamp",
                |m: &CPublishedFile_GetChangeHistoryEntry_Request| { &m.timestamp },
                |m: &mut CPublishedFile_GetChangeHistoryEntry_Request| { &mut m.timestamp },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeInt32>(
                "language",
                |m: &CPublishedFile_GetChangeHistoryEntry_Request| { &m.language },
                |m: &mut CPublishedFile_GetChangeHistoryEntry_Request| { &mut m.language },
            ));
            ::protobuf::reflect::MessageDescriptor::new_pb_name::<CPublishedFile_GetChangeHistoryEntry_Request>(
                "CPublishedFile_GetChangeHistoryEntry_Request",
                fields,
                file_descriptor_proto()
            )
        })
    }

    fn default_instance() -> &'static CPublishedFile_GetChangeHistoryEntry_Request {
        static instance: ::protobuf::rt::LazyV2<CPublishedFile_GetChangeHistoryEntry_Request> = ::protobuf::rt::LazyV2::INIT;
        instance.get(CPublishedFile_GetChangeHistoryEntry_Request::new)
    }
}

impl ::protobuf::Clear for CPublishedFile_GetChangeHistoryEntry_Request {
    fn clear(&mut self) {
        self.publishedfileid = ::std::option::Option::None;
        self.timestamp = ::std::option::Option::None;
        self.language = ::std::option::Option::None;
        self.unknown_fields.clear();
    }
}

impl ::std::fmt::Debug for CPublishedFile_GetChangeHistoryEntry_Request {
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
        ::protobuf::text_format::fmt(self, f)
    }
}

impl ::protobuf::reflect::ProtobufValue for CPublishedFile_GetChangeHistoryEntry_Request {
    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
        ::protobuf::reflect::ReflectValueRef::Message(self)
    }
}

#[derive(PartialEq,Clone,Default)]
pub struct CPublishedFile_GetChangeHistoryEntry_Response {
    // message fields
    change_description: ::protobuf::SingularField<::std::string::String>,
    language: ::std::option::Option<i32>,
    // special fields
    pub unknown_fields: ::protobuf::UnknownFields,
    pub cached_size: ::protobuf::CachedSize,
}

impl<'a> ::std::default::Default for &'a CPublishedFile_GetChangeHistoryEntry_Response {
    fn default() -> &'a CPublishedFile_GetChangeHistoryEntry_Response {
        <CPublishedFile_GetChangeHistoryEntry_Response as ::protobuf::Message>::default_instance()
    }
}

impl CPublishedFile_GetChangeHistoryEntry_Response {
    pub fn new() -> CPublishedFile_GetChangeHistoryEntry_Response {
        ::std::default::Default::default()
    }

    // optional string change_description = 1;


    pub fn get_change_description(&self) -> &str {
        match self.change_description.as_ref() {
            Some(v) => &v,
            None => "",
        }
    }
    pub fn clear_change_description(&mut self) {
        self.change_description.clear();
    }

    pub fn has_change_description(&self) -> bool {
        self.change_description.is_some()
    }

    // Param is passed by value, moved
    pub fn set_change_description(&mut self, v: ::std::string::String) {
        self.change_description = ::protobuf::SingularField::some(v);
    }

    // Mutable pointer to the field.
    // If field is not initialized, it is initialized with default value first.
    pub fn mut_change_description(&mut self) -> &mut ::std::string::String {
        if self.change_description.is_none() {
            self.change_description.set_default();
        }
        self.change_description.as_mut().unwrap()
    }

    // Take field
    pub fn take_change_description(&mut self) -> ::std::string::String {
        self.change_description.take().unwrap_or_else(|| ::std::string::String::new())
    }

    // optional int32 language = 2;


    pub fn get_language(&self) -> i32 {
        self.language.unwrap_or(0)
    }
    pub fn clear_language(&mut self) {
        self.language = ::std::option::Option::None;
    }

    pub fn has_language(&self) -> bool {
        self.language.is_some()
    }

    // Param is passed by value, moved
    pub fn set_language(&mut self, v: i32) {
        self.language = ::std::option::Option::Some(v);
    }
}

impl ::protobuf::Message for CPublishedFile_GetChangeHistoryEntry_Response {
    fn is_initialized(&self) -> bool {
        true
    }

    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
        while !is.eof()? {
            let (field_number, wire_type) = is.read_tag_unpack()?;
            match field_number {
                1 => {
                    ::protobuf::rt::read_singular_string_into(wire_type, is, &mut self.change_description)?;
                },
                2 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_int32()?;
                    self.language = ::std::option::Option::Some(tmp);
                },
                _ => {
                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
                },
            };
        }
        ::std::result::Result::Ok(())
    }

    // Compute sizes of nested messages
    #[allow(unused_variables)]
    fn compute_size(&self) -> u32 {
        let mut my_size = 0;
        if let Some(ref v) = self.change_description.as_ref() {
            my_size += ::protobuf::rt::string_size(1, &v);
        }
        if let Some(v) = self.language {
            my_size += ::protobuf::rt::value_size(2, v, ::protobuf::wire_format::WireTypeVarint);
        }
        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
        self.cached_size.set(my_size);
        my_size
    }

    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
        if let Some(ref v) = self.change_description.as_ref() {
            os.write_string(1, &v)?;
        }
        if let Some(v) = self.language {
            os.write_int32(2, v)?;
        }
        os.write_unknown_fields(self.get_unknown_fields())?;
        ::std::result::Result::Ok(())
    }

    fn get_cached_size(&self) -> u32 {
        self.cached_size.get()
    }

    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
        &self.unknown_fields
    }

    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
        &mut self.unknown_fields
    }

    fn as_any(&self) -> &dyn (::std::any::Any) {
        self as &dyn (::std::any::Any)
    }
    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
        self as &mut dyn (::std::any::Any)
    }
    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
        self
    }

    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
        Self::descriptor_static()
    }

    fn new() -> CPublishedFile_GetChangeHistoryEntry_Response {
        CPublishedFile_GetChangeHistoryEntry_Response::new()
    }

    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
        descriptor.get(|| {
            let mut fields = ::std::vec::Vec::new();
            fields.push(::protobuf::reflect::accessor::make_singular_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
                "change_description",
                |m: &CPublishedFile_GetChangeHistoryEntry_Response| { &m.change_description },
                |m: &mut CPublishedFile_GetChangeHistoryEntry_Response| { &mut m.change_description },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeInt32>(
                "language",
                |m: &CPublishedFile_GetChangeHistoryEntry_Response| { &m.language },
                |m: &mut CPublishedFile_GetChangeHistoryEntry_Response| { &mut m.language },
            ));
            ::protobuf::reflect::MessageDescriptor::new_pb_name::<CPublishedFile_GetChangeHistoryEntry_Response>(
                "CPublishedFile_GetChangeHistoryEntry_Response",
                fields,
                file_descriptor_proto()
            )
        })
    }

    fn default_instance() -> &'static CPublishedFile_GetChangeHistoryEntry_Response {
        static instance: ::protobuf::rt::LazyV2<CPublishedFile_GetChangeHistoryEntry_Response> = ::protobuf::rt::LazyV2::INIT;
        instance.get(CPublishedFile_GetChangeHistoryEntry_Response::new)
    }
}

impl ::protobuf::Clear for CPublishedFile_GetChangeHistoryEntry_Response {
    fn clear(&mut self) {
        self.change_description.clear();
        self.language = ::std::option::Option::None;
        self.unknown_fields.clear();
    }
}

impl ::std::fmt::Debug for CPublishedFile_GetChangeHistoryEntry_Response {
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
        ::protobuf::text_format::fmt(self, f)
    }
}

impl ::protobuf::reflect::ProtobufValue for CPublishedFile_GetChangeHistoryEntry_Response {
    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
        ::protobuf::reflect::ReflectValueRef::Message(self)
    }
}

#[derive(PartialEq,Clone,Default)]
pub struct CPublishedFile_GetChangeHistory_Request {
    // message fields
    publishedfileid: ::std::option::Option<u64>,
    total_only: ::std::option::Option<bool>,
    startindex: ::std::option::Option<u32>,
    count: ::std::option::Option<u32>,
    language: ::std::option::Option<i32>,
    // special fields
    pub unknown_fields: ::protobuf::UnknownFields,
    pub cached_size: ::protobuf::CachedSize,
}

impl<'a> ::std::default::Default for &'a CPublishedFile_GetChangeHistory_Request {
    fn default() -> &'a CPublishedFile_GetChangeHistory_Request {
        <CPublishedFile_GetChangeHistory_Request as ::protobuf::Message>::default_instance()
    }
}

impl CPublishedFile_GetChangeHistory_Request {
    pub fn new() -> CPublishedFile_GetChangeHistory_Request {
        ::std::default::Default::default()
    }

    // optional fixed64 publishedfileid = 1;


    pub fn get_publishedfileid(&self) -> u64 {
        self.publishedfileid.unwrap_or(0)
    }
    pub fn clear_publishedfileid(&mut self) {
        self.publishedfileid = ::std::option::Option::None;
    }

    pub fn has_publishedfileid(&self) -> bool {
        self.publishedfileid.is_some()
    }

    // Param is passed by value, moved
    pub fn set_publishedfileid(&mut self, v: u64) {
        self.publishedfileid = ::std::option::Option::Some(v);
    }

    // optional bool total_only = 2;


    pub fn get_total_only(&self) -> bool {
        self.total_only.unwrap_or(false)
    }
    pub fn clear_total_only(&mut self) {
        self.total_only = ::std::option::Option::None;
    }

    pub fn has_total_only(&self) -> bool {
        self.total_only.is_some()
    }

    // Param is passed by value, moved
    pub fn set_total_only(&mut self, v: bool) {
        self.total_only = ::std::option::Option::Some(v);
    }

    // optional uint32 startindex = 3;


    pub fn get_startindex(&self) -> u32 {
        self.startindex.unwrap_or(0)
    }
    pub fn clear_startindex(&mut self) {
        self.startindex = ::std::option::Option::None;
    }

    pub fn has_startindex(&self) -> bool {
        self.startindex.is_some()
    }

    // Param is passed by value, moved
    pub fn set_startindex(&mut self, v: u32) {
        self.startindex = ::std::option::Option::Some(v);
    }

    // optional uint32 count = 4;


    pub fn get_count(&self) -> u32 {
        self.count.unwrap_or(0)
    }
    pub fn clear_count(&mut self) {
        self.count = ::std::option::Option::None;
    }

    pub fn has_count(&self) -> bool {
        self.count.is_some()
    }

    // Param is passed by value, moved
    pub fn set_count(&mut self, v: u32) {
        self.count = ::std::option::Option::Some(v);
    }

    // optional int32 language = 5;


    pub fn get_language(&self) -> i32 {
        self.language.unwrap_or(0i32)
    }
    pub fn clear_language(&mut self) {
        self.language = ::std::option::Option::None;
    }

    pub fn has_language(&self) -> bool {
        self.language.is_some()
    }

    // Param is passed by value, moved
    pub fn set_language(&mut self, v: i32) {
        self.language = ::std::option::Option::Some(v);
    }
}

impl ::protobuf::Message for CPublishedFile_GetChangeHistory_Request {
    fn is_initialized(&self) -> bool {
        true
    }

    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
        while !is.eof()? {
            let (field_number, wire_type) = is.read_tag_unpack()?;
            match field_number {
                1 => {
                    if wire_type != ::protobuf::wire_format::WireTypeFixed64 {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_fixed64()?;
                    self.publishedfileid = ::std::option::Option::Some(tmp);
                },
                2 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_bool()?;
                    self.total_only = ::std::option::Option::Some(tmp);
                },
                3 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_uint32()?;
                    self.startindex = ::std::option::Option::Some(tmp);
                },
                4 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_uint32()?;
                    self.count = ::std::option::Option::Some(tmp);
                },
                5 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_int32()?;
                    self.language = ::std::option::Option::Some(tmp);
                },
                _ => {
                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
                },
            };
        }
        ::std::result::Result::Ok(())
    }

    // Compute sizes of nested messages
    #[allow(unused_variables)]
    fn compute_size(&self) -> u32 {
        let mut my_size = 0;
        if let Some(v) = self.publishedfileid {
            my_size += 9;
        }
        if let Some(v) = self.total_only {
            my_size += 2;
        }
        if let Some(v) = self.startindex {
            my_size += ::protobuf::rt::value_size(3, v, ::protobuf::wire_format::WireTypeVarint);
        }
        if let Some(v) = self.count {
            my_size += ::protobuf::rt::value_size(4, v, ::protobuf::wire_format::WireTypeVarint);
        }
        if let Some(v) = self.language {
            my_size += ::protobuf::rt::value_size(5, v, ::protobuf::wire_format::WireTypeVarint);
        }
        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
        self.cached_size.set(my_size);
        my_size
    }

    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
        if let Some(v) = self.publishedfileid {
            os.write_fixed64(1, v)?;
        }
        if let Some(v) = self.total_only {
            os.write_bool(2, v)?;
        }
        if let Some(v) = self.startindex {
            os.write_uint32(3, v)?;
        }
        if let Some(v) = self.count {
            os.write_uint32(4, v)?;
        }
        if let Some(v) = self.language {
            os.write_int32(5, v)?;
        }
        os.write_unknown_fields(self.get_unknown_fields())?;
        ::std::result::Result::Ok(())
    }

    fn get_cached_size(&self) -> u32 {
        self.cached_size.get()
    }

    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
        &self.unknown_fields
    }

    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
        &mut self.unknown_fields
    }

    fn as_any(&self) -> &dyn (::std::any::Any) {
        self as &dyn (::std::any::Any)
    }
    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
        self as &mut dyn (::std::any::Any)
    }
    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
        self
    }

    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
        Self::descriptor_static()
    }

    fn new() -> CPublishedFile_GetChangeHistory_Request {
        CPublishedFile_GetChangeHistory_Request::new()
    }

    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
        descriptor.get(|| {
            let mut fields = ::std::vec::Vec::new();
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeFixed64>(
                "publishedfileid",
                |m: &CPublishedFile_GetChangeHistory_Request| { &m.publishedfileid },
                |m: &mut CPublishedFile_GetChangeHistory_Request| { &mut m.publishedfileid },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeBool>(
                "total_only",
                |m: &CPublishedFile_GetChangeHistory_Request| { &m.total_only },
                |m: &mut CPublishedFile_GetChangeHistory_Request| { &mut m.total_only },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeUint32>(
                "startindex",
                |m: &CPublishedFile_GetChangeHistory_Request| { &m.startindex },
                |m: &mut CPublishedFile_GetChangeHistory_Request| { &mut m.startindex },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeUint32>(
                "count",
                |m: &CPublishedFile_GetChangeHistory_Request| { &m.count },
                |m: &mut CPublishedFile_GetChangeHistory_Request| { &mut m.count },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeInt32>(
                "language",
                |m: &CPublishedFile_GetChangeHistory_Request| { &m.language },
                |m: &mut CPublishedFile_GetChangeHistory_Request| { &mut m.language },
            ));
            ::protobuf::reflect::MessageDescriptor::new_pb_name::<CPublishedFile_GetChangeHistory_Request>(
                "CPublishedFile_GetChangeHistory_Request",
                fields,
                file_descriptor_proto()
            )
        })
    }

    fn default_instance() -> &'static CPublishedFile_GetChangeHistory_Request {
        static instance: ::protobuf::rt::LazyV2<CPublishedFile_GetChangeHistory_Request> = ::protobuf::rt::LazyV2::INIT;
        instance.get(CPublishedFile_GetChangeHistory_Request::new)
    }
}

impl ::protobuf::Clear for CPublishedFile_GetChangeHistory_Request {
    fn clear(&mut self) {
        self.publishedfileid = ::std::option::Option::None;
        self.total_only = ::std::option::Option::None;
        self.startindex = ::std::option::Option::None;
        self.count = ::std::option::Option::None;
        self.language = ::std::option::Option::None;
        self.unknown_fields.clear();
    }
}

impl ::std::fmt::Debug for CPublishedFile_GetChangeHistory_Request {
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
        ::protobuf::text_format::fmt(self, f)
    }
}

impl ::protobuf::reflect::ProtobufValue for CPublishedFile_GetChangeHistory_Request {
    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
        ::protobuf::reflect::ReflectValueRef::Message(self)
    }
}

#[derive(PartialEq,Clone,Default)]
pub struct CPublishedFile_GetChangeHistory_Response {
    // message fields
    pub changes: ::protobuf::RepeatedField<CPublishedFile_GetChangeHistory_Response_ChangeLog>,
    total: ::std::option::Option<u32>,
    // special fields
    pub unknown_fields: ::protobuf::UnknownFields,
    pub cached_size: ::protobuf::CachedSize,
}

impl<'a> ::std::default::Default for &'a CPublishedFile_GetChangeHistory_Response {
    fn default() -> &'a CPublishedFile_GetChangeHistory_Response {
        <CPublishedFile_GetChangeHistory_Response as ::protobuf::Message>::default_instance()
    }
}

impl CPublishedFile_GetChangeHistory_Response {
    pub fn new() -> CPublishedFile_GetChangeHistory_Response {
        ::std::default::Default::default()
    }

    // repeated .CPublishedFile_GetChangeHistory_Response.ChangeLog changes = 1;


    pub fn get_changes(&self) -> &[CPublishedFile_GetChangeHistory_Response_ChangeLog] {
        &self.changes
    }
    pub fn clear_changes(&mut self) {
        self.changes.clear();
    }

    // Param is passed by value, moved
    pub fn set_changes(&mut self, v: ::protobuf::RepeatedField<CPublishedFile_GetChangeHistory_Response_ChangeLog>) {
        self.changes = v;
    }

    // Mutable pointer to the field.
    pub fn mut_changes(&mut self) -> &mut ::protobuf::RepeatedField<CPublishedFile_GetChangeHistory_Response_ChangeLog> {
        &mut self.changes
    }

    // Take field
    pub fn take_changes(&mut self) -> ::protobuf::RepeatedField<CPublishedFile_GetChangeHistory_Response_ChangeLog> {
        ::std::mem::replace(&mut self.changes, ::protobuf::RepeatedField::new())
    }

    // optional uint32 total = 2;


    pub fn get_total(&self) -> u32 {
        self.total.unwrap_or(0)
    }
    pub fn clear_total(&mut self) {
        self.total = ::std::option::Option::None;
    }

    pub fn has_total(&self) -> bool {
        self.total.is_some()
    }

    // Param is passed by value, moved
    pub fn set_total(&mut self, v: u32) {
        self.total = ::std::option::Option::Some(v);
    }
}

impl ::protobuf::Message for CPublishedFile_GetChangeHistory_Response {
    fn is_initialized(&self) -> bool {
        for v in &self.changes {
            if !v.is_initialized() {
                return false;
            }
        };
        true
    }

    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
        while !is.eof()? {
            let (field_number, wire_type) = is.read_tag_unpack()?;
            match field_number {
                1 => {
                    ::protobuf::rt::read_repeated_message_into(wire_type, is, &mut self.changes)?;
                },
                2 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_uint32()?;
                    self.total = ::std::option::Option::Some(tmp);
                },
                _ => {
                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
                },
            };
        }
        ::std::result::Result::Ok(())
    }

    // Compute sizes of nested messages
    #[allow(unused_variables)]
    fn compute_size(&self) -> u32 {
        let mut my_size = 0;
        for value in &self.changes {
            let len = value.compute_size();
            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
        };
        if let Some(v) = self.total {
            my_size += ::protobuf::rt::value_size(2, v, ::protobuf::wire_format::WireTypeVarint);
        }
        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
        self.cached_size.set(my_size);
        my_size
    }

    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
        for v in &self.changes {
            os.write_tag(1, ::protobuf::wire_format::WireTypeLengthDelimited)?;
            os.write_raw_varint32(v.get_cached_size())?;
            v.write_to_with_cached_sizes(os)?;
        };
        if let Some(v) = self.total {
            os.write_uint32(2, v)?;
        }
        os.write_unknown_fields(self.get_unknown_fields())?;
        ::std::result::Result::Ok(())
    }

    fn get_cached_size(&self) -> u32 {
        self.cached_size.get()
    }

    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
        &self.unknown_fields
    }

    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
        &mut self.unknown_fields
    }

    fn as_any(&self) -> &dyn (::std::any::Any) {
        self as &dyn (::std::any::Any)
    }
    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
        self as &mut dyn (::std::any::Any)
    }
    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
        self
    }

    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
        Self::descriptor_static()
    }

    fn new() -> CPublishedFile_GetChangeHistory_Response {
        CPublishedFile_GetChangeHistory_Response::new()
    }

    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
        descriptor.get(|| {
            let mut fields = ::std::vec::Vec::new();
            fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<CPublishedFile_GetChangeHistory_Response_ChangeLog>>(
                "changes",
                |m: &CPublishedFile_GetChangeHistory_Response| { &m.changes },
                |m: &mut CPublishedFile_GetChangeHistory_Response| { &mut m.changes },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeUint32>(
                "total",
                |m: &CPublishedFile_GetChangeHistory_Response| { &m.total },
                |m: &mut CPublishedFile_GetChangeHistory_Response| { &mut m.total },
            ));
            ::protobuf::reflect::MessageDescriptor::new_pb_name::<CPublishedFile_GetChangeHistory_Response>(
                "CPublishedFile_GetChangeHistory_Response",
                fields,
                file_descriptor_proto()
            )
        })
    }

    fn default_instance() -> &'static CPublishedFile_GetChangeHistory_Response {
        static instance: ::protobuf::rt::LazyV2<CPublishedFile_GetChangeHistory_Response> = ::protobuf::rt::LazyV2::INIT;
        instance.get(CPublishedFile_GetChangeHistory_Response::new)
    }
}

impl ::protobuf::Clear for CPublishedFile_GetChangeHistory_Response {
    fn clear(&mut self) {
        self.changes.clear();
        self.total = ::std::option::Option::None;
        self.unknown_fields.clear();
    }
}

impl ::std::fmt::Debug for CPublishedFile_GetChangeHistory_Response {
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
        ::protobuf::text_format::fmt(self, f)
    }
}

impl ::protobuf::reflect::ProtobufValue for CPublishedFile_GetChangeHistory_Response {
    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
        ::protobuf::reflect::ReflectValueRef::Message(self)
    }
}

#[derive(PartialEq,Clone,Default)]
pub struct CPublishedFile_GetChangeHistory_Response_ChangeLog {
    // message fields
    timestamp: ::std::option::Option<u32>,
    change_description: ::protobuf::SingularField<::std::string::String>,
    language: ::std::option::Option<i32>,
    // special fields
    pub unknown_fields: ::protobuf::UnknownFields,
    pub cached_size: ::protobuf::CachedSize,
}

impl<'a> ::std::default::Default for &'a CPublishedFile_GetChangeHistory_Response_ChangeLog {
    fn default() -> &'a CPublishedFile_GetChangeHistory_Response_ChangeLog {
        <CPublishedFile_GetChangeHistory_Response_ChangeLog as ::protobuf::Message>::default_instance()
    }
}

impl CPublishedFile_GetChangeHistory_Response_ChangeLog {
    pub fn new() -> CPublishedFile_GetChangeHistory_Response_ChangeLog {
        ::std::default::Default::default()
    }

    // optional uint32 timestamp = 1;


    pub fn get_timestamp(&self) -> u32 {
        self.timestamp.unwrap_or(0)
    }
    pub fn clear_timestamp(&mut self) {
        self.timestamp = ::std::option::Option::None;
    }

    pub fn has_timestamp(&self) -> bool {
        self.timestamp.is_some()
    }

    // Param is passed by value, moved
    pub fn set_timestamp(&mut self, v: u32) {
        self.timestamp = ::std::option::Option::Some(v);
    }

    // optional string change_description = 2;


    pub fn get_change_description(&self) -> &str {
        match self.change_description.as_ref() {
            Some(v) => &v,
            None => "",
        }
    }
    pub fn clear_change_description(&mut self) {
        self.change_description.clear();
    }

    pub fn has_change_description(&self) -> bool {
        self.change_description.is_some()
    }

    // Param is passed by value, moved
    pub fn set_change_description(&mut self, v: ::std::string::String) {
        self.change_description = ::protobuf::SingularField::some(v);
    }

    // Mutable pointer to the field.
    // If field is not initialized, it is initialized with default value first.
    pub fn mut_change_description(&mut self) -> &mut ::std::string::String {
        if self.change_description.is_none() {
            self.change_description.set_default();
        }
        self.change_description.as_mut().unwrap()
    }

    // Take field
    pub fn take_change_description(&mut self) -> ::std::string::String {
        self.change_description.take().unwrap_or_else(|| ::std::string::String::new())
    }

    // optional int32 language = 3;


    pub fn get_language(&self) -> i32 {
        self.language.unwrap_or(0)
    }
    pub fn clear_language(&mut self) {
        self.language = ::std::option::Option::None;
    }

    pub fn has_language(&self) -> bool {
        self.language.is_some()
    }

    // Param is passed by value, moved
    pub fn set_language(&mut self, v: i32) {
        self.language = ::std::option::Option::Some(v);
    }
}

impl ::protobuf::Message for CPublishedFile_GetChangeHistory_Response_ChangeLog {
    fn is_initialized(&self) -> bool {
        true
    }

    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
        while !is.eof()? {
            let (field_number, wire_type) = is.read_tag_unpack()?;
            match field_number {
                1 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_uint32()?;
                    self.timestamp = ::std::option::Option::Some(tmp);
                },
                2 => {
                    ::protobuf::rt::read_singular_string_into(wire_type, is, &mut self.change_description)?;
                },
                3 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_int32()?;
                    self.language = ::std::option::Option::Some(tmp);
                },
                _ => {
                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
                },
            };
        }
        ::std::result::Result::Ok(())
    }

    // Compute sizes of nested messages
    #[allow(unused_variables)]
    fn compute_size(&self) -> u32 {
        let mut my_size = 0;
        if let Some(v) = self.timestamp {
            my_size += ::protobuf::rt::value_size(1, v, ::protobuf::wire_format::WireTypeVarint);
        }
        if let Some(ref v) = self.change_description.as_ref() {
            my_size += ::protobuf::rt::string_size(2, &v);
        }
        if let Some(v) = self.language {
            my_size += ::protobuf::rt::value_size(3, v, ::protobuf::wire_format::WireTypeVarint);
        }
        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
        self.cached_size.set(my_size);
        my_size
    }

    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
        if let Some(v) = self.timestamp {
            os.write_uint32(1, v)?;
        }
        if let Some(ref v) = self.change_description.as_ref() {
            os.write_string(2, &v)?;
        }
        if let Some(v) = self.language {
            os.write_int32(3, v)?;
        }
        os.write_unknown_fields(self.get_unknown_fields())?;
        ::std::result::Result::Ok(())
    }

    fn get_cached_size(&self) -> u32 {
        self.cached_size.get()
    }

    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
        &self.unknown_fields
    }

    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
        &mut self.unknown_fields
    }

    fn as_any(&self) -> &dyn (::std::any::Any) {
        self as &dyn (::std::any::Any)
    }
    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
        self as &mut dyn (::std::any::Any)
    }
    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
        self
    }

    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
        Self::descriptor_static()
    }

    fn new() -> CPublishedFile_GetChangeHistory_Response_ChangeLog {
        CPublishedFile_GetChangeHistory_Response_ChangeLog::new()
    }

    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
        descriptor.get(|| {
            let mut fields = ::std::vec::Vec::new();
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeUint32>(
                "timestamp",
                |m: &CPublishedFile_GetChangeHistory_Response_ChangeLog| { &m.timestamp },
                |m: &mut CPublishedFile_GetChangeHistory_Response_ChangeLog| { &mut m.timestamp },
            ));
            fields.push(::protobuf::reflect::accessor::make_singular_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
                "change_description",
                |m: &CPublishedFile_GetChangeHistory_Response_ChangeLog| { &m.change_description },
                |m: &mut CPublishedFile_GetChangeHistory_Response_ChangeLog| { &mut m.change_description },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeInt32>(
                "language",
                |m: &CPublishedFile_GetChangeHistory_Response_ChangeLog| { &m.language },
                |m: &mut CPublishedFile_GetChangeHistory_Response_ChangeLog| { &mut m.language },
            ));
            ::protobuf::reflect::MessageDescriptor::new_pb_name::<CPublishedFile_GetChangeHistory_Response_ChangeLog>(
                "CPublishedFile_GetChangeHistory_Response.ChangeLog",
                fields,
                file_descriptor_proto()
            )
        })
    }

    fn default_instance() -> &'static CPublishedFile_GetChangeHistory_Response_ChangeLog {
        static instance: ::protobuf::rt::LazyV2<CPublishedFile_GetChangeHistory_Response_ChangeLog> = ::protobuf::rt::LazyV2::INIT;
        instance.get(CPublishedFile_GetChangeHistory_Response_ChangeLog::new)
    }
}

impl ::protobuf::Clear for CPublishedFile_GetChangeHistory_Response_ChangeLog {
    fn clear(&mut self) {
        self.timestamp = ::std::option::Option::None;
        self.change_description.clear();
        self.language = ::std::option::Option::None;
        self.unknown_fields.clear();
    }
}

impl ::std::fmt::Debug for CPublishedFile_GetChangeHistory_Response_ChangeLog {
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
        ::protobuf::text_format::fmt(self, f)
    }
}

impl ::protobuf::reflect::ProtobufValue for CPublishedFile_GetChangeHistory_Response_ChangeLog {
    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
        ::protobuf::reflect::ReflectValueRef::Message(self)
    }
}

#[derive(PartialEq,Clone,Default)]
pub struct CPublishedFile_RefreshVotingQueue_Request {
    // message fields
    appid: ::std::option::Option<u32>,
    matching_file_type: ::std::option::Option<u32>,
    pub tags: ::protobuf::RepeatedField<::std::string::String>,
    match_all_tags: ::std::option::Option<bool>,
    pub excluded_tags: ::protobuf::RepeatedField<::std::string::String>,
    desired_queue_size: ::std::option::Option<u32>,
    desired_revision: ::std::option::Option<EPublishedFileRevision>,
    // special fields
    pub unknown_fields: ::protobuf::UnknownFields,
    pub cached_size: ::protobuf::CachedSize,
}

impl<'a> ::std::default::Default for &'a CPublishedFile_RefreshVotingQueue_Request {
    fn default() -> &'a CPublishedFile_RefreshVotingQueue_Request {
        <CPublishedFile_RefreshVotingQueue_Request as ::protobuf::Message>::default_instance()
    }
}

impl CPublishedFile_RefreshVotingQueue_Request {
    pub fn new() -> CPublishedFile_RefreshVotingQueue_Request {
        ::std::default::Default::default()
    }

    // optional uint32 appid = 1;


    pub fn get_appid(&self) -> u32 {
        self.appid.unwrap_or(0)
    }
    pub fn clear_appid(&mut self) {
        self.appid = ::std::option::Option::None;
    }

    pub fn has_appid(&self) -> bool {
        self.appid.is_some()
    }

    // Param is passed by value, moved
    pub fn set_appid(&mut self, v: u32) {
        self.appid = ::std::option::Option::Some(v);
    }

    // optional uint32 matching_file_type = 2;


    pub fn get_matching_file_type(&self) -> u32 {
        self.matching_file_type.unwrap_or(0)
    }
    pub fn clear_matching_file_type(&mut self) {
        self.matching_file_type = ::std::option::Option::None;
    }

    pub fn has_matching_file_type(&self) -> bool {
        self.matching_file_type.is_some()
    }

    // Param is passed by value, moved
    pub fn set_matching_file_type(&mut self, v: u32) {
        self.matching_file_type = ::std::option::Option::Some(v);
    }

    // repeated string tags = 3;


    pub fn get_tags(&self) -> &[::std::string::String] {
        &self.tags
    }
    pub fn clear_tags(&mut self) {
        self.tags.clear();
    }

    // Param is passed by value, moved
    pub fn set_tags(&mut self, v: ::protobuf::RepeatedField<::std::string::String>) {
        self.tags = v;
    }

    // Mutable pointer to the field.
    pub fn mut_tags(&mut self) -> &mut ::protobuf::RepeatedField<::std::string::String> {
        &mut self.tags
    }

    // Take field
    pub fn take_tags(&mut self) -> ::protobuf::RepeatedField<::std::string::String> {
        ::std::mem::replace(&mut self.tags, ::protobuf::RepeatedField::new())
    }

    // optional bool match_all_tags = 4;


    pub fn get_match_all_tags(&self) -> bool {
        self.match_all_tags.unwrap_or(true)
    }
    pub fn clear_match_all_tags(&mut self) {
        self.match_all_tags = ::std::option::Option::None;
    }

    pub fn has_match_all_tags(&self) -> bool {
        self.match_all_tags.is_some()
    }

    // Param is passed by value, moved
    pub fn set_match_all_tags(&mut self, v: bool) {
        self.match_all_tags = ::std::option::Option::Some(v);
    }

    // repeated string excluded_tags = 5;


    pub fn get_excluded_tags(&self) -> &[::std::string::String] {
        &self.excluded_tags
    }
    pub fn clear_excluded_tags(&mut self) {
        self.excluded_tags.clear();
    }

    // Param is passed by value, moved
    pub fn set_excluded_tags(&mut self, v: ::protobuf::RepeatedField<::std::string::String>) {
        self.excluded_tags = v;
    }

    // Mutable pointer to the field.
    pub fn mut_excluded_tags(&mut self) -> &mut ::protobuf::RepeatedField<::std::string::String> {
        &mut self.excluded_tags
    }

    // Take field
    pub fn take_excluded_tags(&mut self) -> ::protobuf::RepeatedField<::std::string::String> {
        ::std::mem::replace(&mut self.excluded_tags, ::protobuf::RepeatedField::new())
    }

    // optional uint32 desired_queue_size = 6;


    pub fn get_desired_queue_size(&self) -> u32 {
        self.desired_queue_size.unwrap_or(0)
    }
    pub fn clear_desired_queue_size(&mut self) {
        self.desired_queue_size = ::std::option::Option::None;
    }

    pub fn has_desired_queue_size(&self) -> bool {
        self.desired_queue_size.is_some()
    }

    // Param is passed by value, moved
    pub fn set_desired_queue_size(&mut self, v: u32) {
        self.desired_queue_size = ::std::option::Option::Some(v);
    }

    // optional .EPublishedFileRevision desired_revision = 8;


    pub fn get_desired_revision(&self) -> EPublishedFileRevision {
        self.desired_revision.unwrap_or(EPublishedFileRevision::k_EPublishedFileRevision_Default)
    }
    pub fn clear_desired_revision(&mut self) {
        self.desired_revision = ::std::option::Option::None;
    }

    pub fn has_desired_revision(&self) -> bool {
        self.desired_revision.is_some()
    }

    // Param is passed by value, moved
    pub fn set_desired_revision(&mut self, v: EPublishedFileRevision) {
        self.desired_revision = ::std::option::Option::Some(v);
    }
}

impl ::protobuf::Message for CPublishedFile_RefreshVotingQueue_Request {
    fn is_initialized(&self) -> bool {
        true
    }

    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
        while !is.eof()? {
            let (field_number, wire_type) = is.read_tag_unpack()?;
            match field_number {
                1 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_uint32()?;
                    self.appid = ::std::option::Option::Some(tmp);
                },
                2 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_uint32()?;
                    self.matching_file_type = ::std::option::Option::Some(tmp);
                },
                3 => {
                    ::protobuf::rt::read_repeated_string_into(wire_type, is, &mut self.tags)?;
                },
                4 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_bool()?;
                    self.match_all_tags = ::std::option::Option::Some(tmp);
                },
                5 => {
                    ::protobuf::rt::read_repeated_string_into(wire_type, is, &mut self.excluded_tags)?;
                },
                6 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_uint32()?;
                    self.desired_queue_size = ::std::option::Option::Some(tmp);
                },
                8 => {
                    ::protobuf::rt::read_proto2_enum_with_unknown_fields_into(wire_type, is, &mut self.desired_revision, 8, &mut self.unknown_fields)?
                },
                _ => {
                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
                },
            };
        }
        ::std::result::Result::Ok(())
    }

    // Compute sizes of nested messages
    #[allow(unused_variables)]
    fn compute_size(&self) -> u32 {
        let mut my_size = 0;
        if let Some(v) = self.appid {
            my_size += ::protobuf::rt::value_size(1, v, ::protobuf::wire_format::WireTypeVarint);
        }
        if let Some(v) = self.matching_file_type {
            my_size += ::protobuf::rt::value_size(2, v, ::protobuf::wire_format::WireTypeVarint);
        }
        for value in &self.tags {
            my_size += ::protobuf::rt::string_size(3, &value);
        };
        if let Some(v) = self.match_all_tags {
            my_size += 2;
        }
        for value in &self.excluded_tags {
            my_size += ::protobuf::rt::string_size(5, &value);
        };
        if let Some(v) = self.desired_queue_size {
            my_size += ::protobuf::rt::value_size(6, v, ::protobuf::wire_format::WireTypeVarint);
        }
        if let Some(v) = self.desired_revision {
            my_size += ::protobuf::rt::enum_size(8, v);
        }
        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
        self.cached_size.set(my_size);
        my_size
    }

    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
        if let Some(v) = self.appid {
            os.write_uint32(1, v)?;
        }
        if let Some(v) = self.matching_file_type {
            os.write_uint32(2, v)?;
        }
        for v in &self.tags {
            os.write_string(3, &v)?;
        };
        if let Some(v) = self.match_all_tags {
            os.write_bool(4, v)?;
        }
        for v in &self.excluded_tags {
            os.write_string(5, &v)?;
        };
        if let Some(v) = self.desired_queue_size {
            os.write_uint32(6, v)?;
        }
        if let Some(v) = self.desired_revision {
            os.write_enum(8, ::protobuf::ProtobufEnum::value(&v))?;
        }
        os.write_unknown_fields(self.get_unknown_fields())?;
        ::std::result::Result::Ok(())
    }

    fn get_cached_size(&self) -> u32 {
        self.cached_size.get()
    }

    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
        &self.unknown_fields
    }

    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
        &mut self.unknown_fields
    }

    fn as_any(&self) -> &dyn (::std::any::Any) {
        self as &dyn (::std::any::Any)
    }
    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
        self as &mut dyn (::std::any::Any)
    }
    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
        self
    }

    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
        Self::descriptor_static()
    }

    fn new() -> CPublishedFile_RefreshVotingQueue_Request {
        CPublishedFile_RefreshVotingQueue_Request::new()
    }

    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
        descriptor.get(|| {
            let mut fields = ::std::vec::Vec::new();
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeUint32>(
                "appid",
                |m: &CPublishedFile_RefreshVotingQueue_Request| { &m.appid },
                |m: &mut CPublishedFile_RefreshVotingQueue_Request| { &mut m.appid },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeUint32>(
                "matching_file_type",
                |m: &CPublishedFile_RefreshVotingQueue_Request| { &m.matching_file_type },
                |m: &mut CPublishedFile_RefreshVotingQueue_Request| { &mut m.matching_file_type },
            ));
            fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
                "tags",
                |m: &CPublishedFile_RefreshVotingQueue_Request| { &m.tags },
                |m: &mut CPublishedFile_RefreshVotingQueue_Request| { &mut m.tags },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeBool>(
                "match_all_tags",
                |m: &CPublishedFile_RefreshVotingQueue_Request| { &m.match_all_tags },
                |m: &mut CPublishedFile_RefreshVotingQueue_Request| { &mut m.match_all_tags },
            ));
            fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
                "excluded_tags",
                |m: &CPublishedFile_RefreshVotingQueue_Request| { &m.excluded_tags },
                |m: &mut CPublishedFile_RefreshVotingQueue_Request| { &mut m.excluded_tags },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeUint32>(
                "desired_queue_size",
                |m: &CPublishedFile_RefreshVotingQueue_Request| { &m.desired_queue_size },
                |m: &mut CPublishedFile_RefreshVotingQueue_Request| { &mut m.desired_queue_size },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeEnum<EPublishedFileRevision>>(
                "desired_revision",
                |m: &CPublishedFile_RefreshVotingQueue_Request| { &m.desired_revision },
                |m: &mut CPublishedFile_RefreshVotingQueue_Request| { &mut m.desired_revision },
            ));
            ::protobuf::reflect::MessageDescriptor::new_pb_name::<CPublishedFile_RefreshVotingQueue_Request>(
                "CPublishedFile_RefreshVotingQueue_Request",
                fields,
                file_descriptor_proto()
            )
        })
    }

    fn default_instance() -> &'static CPublishedFile_RefreshVotingQueue_Request {
        static instance: ::protobuf::rt::LazyV2<CPublishedFile_RefreshVotingQueue_Request> = ::protobuf::rt::LazyV2::INIT;
        instance.get(CPublishedFile_RefreshVotingQueue_Request::new)
    }
}

impl ::protobuf::Clear for CPublishedFile_RefreshVotingQueue_Request {
    fn clear(&mut self) {
        self.appid = ::std::option::Option::None;
        self.matching_file_type = ::std::option::Option::None;
        self.tags.clear();
        self.match_all_tags = ::std::option::Option::None;
        self.excluded_tags.clear();
        self.desired_queue_size = ::std::option::Option::None;
        self.desired_revision = ::std::option::Option::None;
        self.unknown_fields.clear();
    }
}

impl ::std::fmt::Debug for CPublishedFile_RefreshVotingQueue_Request {
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
        ::protobuf::text_format::fmt(self, f)
    }
}

impl ::protobuf::reflect::ProtobufValue for CPublishedFile_RefreshVotingQueue_Request {
    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
        ::protobuf::reflect::ReflectValueRef::Message(self)
    }
}

#[derive(PartialEq,Clone,Default)]
pub struct CPublishedFile_RefreshVotingQueue_Response {
    // special fields
    pub unknown_fields: ::protobuf::UnknownFields,
    pub cached_size: ::protobuf::CachedSize,
}

impl<'a> ::std::default::Default for &'a CPublishedFile_RefreshVotingQueue_Response {
    fn default() -> &'a CPublishedFile_RefreshVotingQueue_Response {
        <CPublishedFile_RefreshVotingQueue_Response as ::protobuf::Message>::default_instance()
    }
}

impl CPublishedFile_RefreshVotingQueue_Response {
    pub fn new() -> CPublishedFile_RefreshVotingQueue_Response {
        ::std::default::Default::default()
    }
}

impl ::protobuf::Message for CPublishedFile_RefreshVotingQueue_Response {
    fn is_initialized(&self) -> bool {
        true
    }

    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
        while !is.eof()? {
            let (field_number, wire_type) = is.read_tag_unpack()?;
            match field_number {
                _ => {
                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
                },
            };
        }
        ::std::result::Result::Ok(())
    }

    // Compute sizes of nested messages
    #[allow(unused_variables)]
    fn compute_size(&self) -> u32 {
        let mut my_size = 0;
        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
        self.cached_size.set(my_size);
        my_size
    }

    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
        os.write_unknown_fields(self.get_unknown_fields())?;
        ::std::result::Result::Ok(())
    }

    fn get_cached_size(&self) -> u32 {
        self.cached_size.get()
    }

    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
        &self.unknown_fields
    }

    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
        &mut self.unknown_fields
    }

    fn as_any(&self) -> &dyn (::std::any::Any) {
        self as &dyn (::std::any::Any)
    }
    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
        self as &mut dyn (::std::any::Any)
    }
    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
        self
    }

    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
        Self::descriptor_static()
    }

    fn new() -> CPublishedFile_RefreshVotingQueue_Response {
        CPublishedFile_RefreshVotingQueue_Response::new()
    }

    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
        descriptor.get(|| {
            let fields = ::std::vec::Vec::new();
            ::protobuf::reflect::MessageDescriptor::new_pb_name::<CPublishedFile_RefreshVotingQueue_Response>(
                "CPublishedFile_RefreshVotingQueue_Response",
                fields,
                file_descriptor_proto()
            )
        })
    }

    fn default_instance() -> &'static CPublishedFile_RefreshVotingQueue_Response {
        static instance: ::protobuf::rt::LazyV2<CPublishedFile_RefreshVotingQueue_Response> = ::protobuf::rt::LazyV2::INIT;
        instance.get(CPublishedFile_RefreshVotingQueue_Response::new)
    }
}

impl ::protobuf::Clear for CPublishedFile_RefreshVotingQueue_Response {
    fn clear(&mut self) {
        self.unknown_fields.clear();
    }
}

impl ::std::fmt::Debug for CPublishedFile_RefreshVotingQueue_Response {
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
        ::protobuf::text_format::fmt(self, f)
    }
}

impl ::protobuf::reflect::ProtobufValue for CPublishedFile_RefreshVotingQueue_Response {
    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
        ::protobuf::reflect::ReflectValueRef::Message(self)
    }
}

#[derive(PartialEq,Clone,Default)]
pub struct CPublishedFile_QueryFiles_Request {
    // message fields
    query_type: ::std::option::Option<u32>,
    page: ::std::option::Option<u32>,
    cursor: ::protobuf::SingularField<::std::string::String>,
    numperpage: ::std::option::Option<u32>,
    creator_appid: ::std::option::Option<u32>,
    appid: ::std::option::Option<u32>,
    pub requiredtags: ::protobuf::RepeatedField<::std::string::String>,
    pub excludedtags: ::protobuf::RepeatedField<::std::string::String>,
    match_all_tags: ::std::option::Option<bool>,
    pub required_flags: ::protobuf::RepeatedField<::std::string::String>,
    pub omitted_flags: ::protobuf::RepeatedField<::std::string::String>,
    search_text: ::protobuf::SingularField<::std::string::String>,
    filetype: ::std::option::Option<u32>,
    child_publishedfileid: ::std::option::Option<u64>,
    days: ::std::option::Option<u32>,
    include_recent_votes_only: ::std::option::Option<bool>,
    cache_max_age_seconds: ::std::option::Option<u32>,
    language: ::std::option::Option<i32>,
    pub required_kv_tags: ::protobuf::RepeatedField<CPublishedFile_QueryFiles_Request_KVTag>,
    pub taggroups: ::protobuf::RepeatedField<CPublishedFile_QueryFiles_Request_TagGroup>,
    totalonly: ::std::option::Option<bool>,
    ids_only: ::std::option::Option<bool>,
    return_vote_data: ::std::option::Option<bool>,
    return_tags: ::std::option::Option<bool>,
    return_kv_tags: ::std::option::Option<bool>,
    return_previews: ::std::option::Option<bool>,
    return_children: ::std::option::Option<bool>,
    return_short_description: ::std::option::Option<bool>,
    return_for_sale_data: ::std::option::Option<bool>,
    return_metadata: ::std::option::Option<bool>,
    return_playtime_stats: ::std::option::Option<u32>,
    return_details: ::std::option::Option<bool>,
    strip_description_bbcode: ::std::option::Option<bool>,
    desired_revision: ::std::option::Option<EPublishedFileRevision>,
    return_reactions: ::std::option::Option<bool>,
    // special fields
    pub unknown_fields: ::protobuf::UnknownFields,
    pub cached_size: ::protobuf::CachedSize,
}

impl<'a> ::std::default::Default for &'a CPublishedFile_QueryFiles_Request {
    fn default() -> &'a CPublishedFile_QueryFiles_Request {
        <CPublishedFile_QueryFiles_Request as ::protobuf::Message>::default_instance()
    }
}

impl CPublishedFile_QueryFiles_Request {
    pub fn new() -> CPublishedFile_QueryFiles_Request {
        ::std::default::Default::default()
    }

    // optional uint32 query_type = 1;


    pub fn get_query_type(&self) -> u32 {
        self.query_type.unwrap_or(0)
    }
    pub fn clear_query_type(&mut self) {
        self.query_type = ::std::option::Option::None;
    }

    pub fn has_query_type(&self) -> bool {
        self.query_type.is_some()
    }

    // Param is passed by value, moved
    pub fn set_query_type(&mut self, v: u32) {
        self.query_type = ::std::option::Option::Some(v);
    }

    // optional uint32 page = 2;


    pub fn get_page(&self) -> u32 {
        self.page.unwrap_or(0)
    }
    pub fn clear_page(&mut self) {
        self.page = ::std::option::Option::None;
    }

    pub fn has_page(&self) -> bool {
        self.page.is_some()
    }

    // Param is passed by value, moved
    pub fn set_page(&mut self, v: u32) {
        self.page = ::std::option::Option::Some(v);
    }

    // optional string cursor = 39;


    pub fn get_cursor(&self) -> &str {
        match self.cursor.as_ref() {
            Some(v) => &v,
            None => "",
        }
    }
    pub fn clear_cursor(&mut self) {
        self.cursor.clear();
    }

    pub fn has_cursor(&self) -> bool {
        self.cursor.is_some()
    }

    // Param is passed by value, moved
    pub fn set_cursor(&mut self, v: ::std::string::String) {
        self.cursor = ::protobuf::SingularField::some(v);
    }

    // Mutable pointer to the field.
    // If field is not initialized, it is initialized with default value first.
    pub fn mut_cursor(&mut self) -> &mut ::std::string::String {
        if self.cursor.is_none() {
            self.cursor.set_default();
        }
        self.cursor.as_mut().unwrap()
    }

    // Take field
    pub fn take_cursor(&mut self) -> ::std::string::String {
        self.cursor.take().unwrap_or_else(|| ::std::string::String::new())
    }

    // optional uint32 numperpage = 3;


    pub fn get_numperpage(&self) -> u32 {
        self.numperpage.unwrap_or(1u32)
    }
    pub fn clear_numperpage(&mut self) {
        self.numperpage = ::std::option::Option::None;
    }

    pub fn has_numperpage(&self) -> bool {
        self.numperpage.is_some()
    }

    // Param is passed by value, moved
    pub fn set_numperpage(&mut self, v: u32) {
        self.numperpage = ::std::option::Option::Some(v);
    }

    // optional uint32 creator_appid = 4;


    pub fn get_creator_appid(&self) -> u32 {
        self.creator_appid.unwrap_or(0)
    }
    pub fn clear_creator_appid(&mut self) {
        self.creator_appid = ::std::option::Option::None;
    }

    pub fn has_creator_appid(&self) -> bool {
        self.creator_appid.is_some()
    }

    // Param is passed by value, moved
    pub fn set_creator_appid(&mut self, v: u32) {
        self.creator_appid = ::std::option::Option::Some(v);
    }

    // optional uint32 appid = 5;


    pub fn get_appid(&self) -> u32 {
        self.appid.unwrap_or(0)
    }
    pub fn clear_appid(&mut self) {
        self.appid = ::std::option::Option::None;
    }

    pub fn has_appid(&self) -> bool {
        self.appid.is_some()
    }

    // Param is passed by value, moved
    pub fn set_appid(&mut self, v: u32) {
        self.appid = ::std::option::Option::Some(v);
    }

    // repeated string requiredtags = 6;


    pub fn get_requiredtags(&self) -> &[::std::string::String] {
        &self.requiredtags
    }
    pub fn clear_requiredtags(&mut self) {
        self.requiredtags.clear();
    }

    // Param is passed by value, moved
    pub fn set_requiredtags(&mut self, v: ::protobuf::RepeatedField<::std::string::String>) {
        self.requiredtags = v;
    }

    // Mutable pointer to the field.
    pub fn mut_requiredtags(&mut self) -> &mut ::protobuf::RepeatedField<::std::string::String> {
        &mut self.requiredtags
    }

    // Take field
    pub fn take_requiredtags(&mut self) -> ::protobuf::RepeatedField<::std::string::String> {
        ::std::mem::replace(&mut self.requiredtags, ::protobuf::RepeatedField::new())
    }

    // repeated string excludedtags = 7;


    pub fn get_excludedtags(&self) -> &[::std::string::String] {
        &self.excludedtags
    }
    pub fn clear_excludedtags(&mut self) {
        self.excludedtags.clear();
    }

    // Param is passed by value, moved
    pub fn set_excludedtags(&mut self, v: ::protobuf::RepeatedField<::std::string::String>) {
        self.excludedtags = v;
    }

    // Mutable pointer to the field.
    pub fn mut_excludedtags(&mut self) -> &mut ::protobuf::RepeatedField<::std::string::String> {
        &mut self.excludedtags
    }

    // Take field
    pub fn take_excludedtags(&mut self) -> ::protobuf::RepeatedField<::std::string::String> {
        ::std::mem::replace(&mut self.excludedtags, ::protobuf::RepeatedField::new())
    }

    // optional bool match_all_tags = 8;


    pub fn get_match_all_tags(&self) -> bool {
        self.match_all_tags.unwrap_or(true)
    }
    pub fn clear_match_all_tags(&mut self) {
        self.match_all_tags = ::std::option::Option::None;
    }

    pub fn has_match_all_tags(&self) -> bool {
        self.match_all_tags.is_some()
    }

    // Param is passed by value, moved
    pub fn set_match_all_tags(&mut self, v: bool) {
        self.match_all_tags = ::std::option::Option::Some(v);
    }

    // repeated string required_flags = 9;


    pub fn get_required_flags(&self) -> &[::std::string::String] {
        &self.required_flags
    }
    pub fn clear_required_flags(&mut self) {
        self.required_flags.clear();
    }

    // Param is passed by value, moved
    pub fn set_required_flags(&mut self, v: ::protobuf::RepeatedField<::std::string::String>) {
        self.required_flags = v;
    }

    // Mutable pointer to the field.
    pub fn mut_required_flags(&mut self) -> &mut ::protobuf::RepeatedField<::std::string::String> {
        &mut self.required_flags
    }

    // Take field
    pub fn take_required_flags(&mut self) -> ::protobuf::RepeatedField<::std::string::String> {
        ::std::mem::replace(&mut self.required_flags, ::protobuf::RepeatedField::new())
    }

    // repeated string omitted_flags = 10;


    pub fn get_omitted_flags(&self) -> &[::std::string::String] {
        &self.omitted_flags
    }
    pub fn clear_omitted_flags(&mut self) {
        self.omitted_flags.clear();
    }

    // Param is passed by value, moved
    pub fn set_omitted_flags(&mut self, v: ::protobuf::RepeatedField<::std::string::String>) {
        self.omitted_flags = v;
    }

    // Mutable pointer to the field.
    pub fn mut_omitted_flags(&mut self) -> &mut ::protobuf::RepeatedField<::std::string::String> {
        &mut self.omitted_flags
    }

    // Take field
    pub fn take_omitted_flags(&mut self) -> ::protobuf::RepeatedField<::std::string::String> {
        ::std::mem::replace(&mut self.omitted_flags, ::protobuf::RepeatedField::new())
    }

    // optional string search_text = 11;


    pub fn get_search_text(&self) -> &str {
        match self.search_text.as_ref() {
            Some(v) => &v,
            None => "",
        }
    }
    pub fn clear_search_text(&mut self) {
        self.search_text.clear();
    }

    pub fn has_search_text(&self) -> bool {
        self.search_text.is_some()
    }

    // Param is passed by value, moved
    pub fn set_search_text(&mut self, v: ::std::string::String) {
        self.search_text = ::protobuf::SingularField::some(v);
    }

    // Mutable pointer to the field.
    // If field is not initialized, it is initialized with default value first.
    pub fn mut_search_text(&mut self) -> &mut ::std::string::String {
        if self.search_text.is_none() {
            self.search_text.set_default();
        }
        self.search_text.as_mut().unwrap()
    }

    // Take field
    pub fn take_search_text(&mut self) -> ::std::string::String {
        self.search_text.take().unwrap_or_else(|| ::std::string::String::new())
    }

    // optional uint32 filetype = 12;


    pub fn get_filetype(&self) -> u32 {
        self.filetype.unwrap_or(0)
    }
    pub fn clear_filetype(&mut self) {
        self.filetype = ::std::option::Option::None;
    }

    pub fn has_filetype(&self) -> bool {
        self.filetype.is_some()
    }

    // Param is passed by value, moved
    pub fn set_filetype(&mut self, v: u32) {
        self.filetype = ::std::option::Option::Some(v);
    }

    // optional fixed64 child_publishedfileid = 13;


    pub fn get_child_publishedfileid(&self) -> u64 {
        self.child_publishedfileid.unwrap_or(0)
    }
    pub fn clear_child_publishedfileid(&mut self) {
        self.child_publishedfileid = ::std::option::Option::None;
    }

    pub fn has_child_publishedfileid(&self) -> bool {
        self.child_publishedfileid.is_some()
    }

    // Param is passed by value, moved
    pub fn set_child_publishedfileid(&mut self, v: u64) {
        self.child_publishedfileid = ::std::option::Option::Some(v);
    }

    // optional uint32 days = 14;


    pub fn get_days(&self) -> u32 {
        self.days.unwrap_or(0)
    }
    pub fn clear_days(&mut self) {
        self.days = ::std::option::Option::None;
    }

    pub fn has_days(&self) -> bool {
        self.days.is_some()
    }

    // Param is passed by value, moved
    pub fn set_days(&mut self, v: u32) {
        self.days = ::std::option::Option::Some(v);
    }

    // optional bool include_recent_votes_only = 15;


    pub fn get_include_recent_votes_only(&self) -> bool {
        self.include_recent_votes_only.unwrap_or(false)
    }
    pub fn clear_include_recent_votes_only(&mut self) {
        self.include_recent_votes_only = ::std::option::Option::None;
    }

    pub fn has_include_recent_votes_only(&self) -> bool {
        self.include_recent_votes_only.is_some()
    }

    // Param is passed by value, moved
    pub fn set_include_recent_votes_only(&mut self, v: bool) {
        self.include_recent_votes_only = ::std::option::Option::Some(v);
    }

    // optional uint32 cache_max_age_seconds = 31;


    pub fn get_cache_max_age_seconds(&self) -> u32 {
        self.cache_max_age_seconds.unwrap_or(0u32)
    }
    pub fn clear_cache_max_age_seconds(&mut self) {
        self.cache_max_age_seconds = ::std::option::Option::None;
    }

    pub fn has_cache_max_age_seconds(&self) -> bool {
        self.cache_max_age_seconds.is_some()
    }

    // Param is passed by value, moved
    pub fn set_cache_max_age_seconds(&mut self, v: u32) {
        self.cache_max_age_seconds = ::std::option::Option::Some(v);
    }

    // optional int32 language = 33;


    pub fn get_language(&self) -> i32 {
        self.language.unwrap_or(0i32)
    }
    pub fn clear_language(&mut self) {
        self.language = ::std::option::Option::None;
    }

    pub fn has_language(&self) -> bool {
        self.language.is_some()
    }

    // Param is passed by value, moved
    pub fn set_language(&mut self, v: i32) {
        self.language = ::std::option::Option::Some(v);
    }

    // repeated .CPublishedFile_QueryFiles_Request.KVTag required_kv_tags = 34;


    pub fn get_required_kv_tags(&self) -> &[CPublishedFile_QueryFiles_Request_KVTag] {
        &self.required_kv_tags
    }
    pub fn clear_required_kv_tags(&mut self) {
        self.required_kv_tags.clear();
    }

    // Param is passed by value, moved
    pub fn set_required_kv_tags(&mut self, v: ::protobuf::RepeatedField<CPublishedFile_QueryFiles_Request_KVTag>) {
        self.required_kv_tags = v;
    }

    // Mutable pointer to the field.
    pub fn mut_required_kv_tags(&mut self) -> &mut ::protobuf::RepeatedField<CPublishedFile_QueryFiles_Request_KVTag> {
        &mut self.required_kv_tags
    }

    // Take field
    pub fn take_required_kv_tags(&mut self) -> ::protobuf::RepeatedField<CPublishedFile_QueryFiles_Request_KVTag> {
        ::std::mem::replace(&mut self.required_kv_tags, ::protobuf::RepeatedField::new())
    }

    // repeated .CPublishedFile_QueryFiles_Request.TagGroup taggroups = 42;


    pub fn get_taggroups(&self) -> &[CPublishedFile_QueryFiles_Request_TagGroup] {
        &self.taggroups
    }
    pub fn clear_taggroups(&mut self) {
        self.taggroups.clear();
    }

    // Param is passed by value, moved
    pub fn set_taggroups(&mut self, v: ::protobuf::RepeatedField<CPublishedFile_QueryFiles_Request_TagGroup>) {
        self.taggroups = v;
    }

    // Mutable pointer to the field.
    pub fn mut_taggroups(&mut self) -> &mut ::protobuf::RepeatedField<CPublishedFile_QueryFiles_Request_TagGroup> {
        &mut self.taggroups
    }

    // Take field
    pub fn take_taggroups(&mut self) -> ::protobuf::RepeatedField<CPublishedFile_QueryFiles_Request_TagGroup> {
        ::std::mem::replace(&mut self.taggroups, ::protobuf::RepeatedField::new())
    }

    // optional bool totalonly = 16;


    pub fn get_totalonly(&self) -> bool {
        self.totalonly.unwrap_or(false)
    }
    pub fn clear_totalonly(&mut self) {
        self.totalonly = ::std::option::Option::None;
    }

    pub fn has_totalonly(&self) -> bool {
        self.totalonly.is_some()
    }

    // Param is passed by value, moved
    pub fn set_totalonly(&mut self, v: bool) {
        self.totalonly = ::std::option::Option::Some(v);
    }

    // optional bool ids_only = 35;


    pub fn get_ids_only(&self) -> bool {
        self.ids_only.unwrap_or(false)
    }
    pub fn clear_ids_only(&mut self) {
        self.ids_only = ::std::option::Option::None;
    }

    pub fn has_ids_only(&self) -> bool {
        self.ids_only.is_some()
    }

    // Param is passed by value, moved
    pub fn set_ids_only(&mut self, v: bool) {
        self.ids_only = ::std::option::Option::Some(v);
    }

    // optional bool return_vote_data = 17;


    pub fn get_return_vote_data(&self) -> bool {
        self.return_vote_data.unwrap_or(false)
    }
    pub fn clear_return_vote_data(&mut self) {
        self.return_vote_data = ::std::option::Option::None;
    }

    pub fn has_return_vote_data(&self) -> bool {
        self.return_vote_data.is_some()
    }

    // Param is passed by value, moved
    pub fn set_return_vote_data(&mut self, v: bool) {
        self.return_vote_data = ::std::option::Option::Some(v);
    }

    // optional bool return_tags = 18;


    pub fn get_return_tags(&self) -> bool {
        self.return_tags.unwrap_or(false)
    }
    pub fn clear_return_tags(&mut self) {
        self.return_tags = ::std::option::Option::None;
    }

    pub fn has_return_tags(&self) -> bool {
        self.return_tags.is_some()
    }

    // Param is passed by value, moved
    pub fn set_return_tags(&mut self, v: bool) {
        self.return_tags = ::std::option::Option::Some(v);
    }

    // optional bool return_kv_tags = 19;


    pub fn get_return_kv_tags(&self) -> bool {
        self.return_kv_tags.unwrap_or(false)
    }
    pub fn clear_return_kv_tags(&mut self) {
        self.return_kv_tags = ::std::option::Option::None;
    }

    pub fn has_return_kv_tags(&self) -> bool {
        self.return_kv_tags.is_some()
    }

    // Param is passed by value, moved
    pub fn set_return_kv_tags(&mut self, v: bool) {
        self.return_kv_tags = ::std::option::Option::Some(v);
    }

    // optional bool return_previews = 20;


    pub fn get_return_previews(&self) -> bool {
        self.return_previews.unwrap_or(false)
    }
    pub fn clear_return_previews(&mut self) {
        self.return_previews = ::std::option::Option::None;
    }

    pub fn has_return_previews(&self) -> bool {
        self.return_previews.is_some()
    }

    // Param is passed by value, moved
    pub fn set_return_previews(&mut self, v: bool) {
        self.return_previews = ::std::option::Option::Some(v);
    }

    // optional bool return_children = 21;


    pub fn get_return_children(&self) -> bool {
        self.return_children.unwrap_or(false)
    }
    pub fn clear_return_children(&mut self) {
        self.return_children = ::std::option::Option::None;
    }

    pub fn has_return_children(&self) -> bool {
        self.return_children.is_some()
    }

    // Param is passed by value, moved
    pub fn set_return_children(&mut self, v: bool) {
        self.return_children = ::std::option::Option::Some(v);
    }

    // optional bool return_short_description = 22;


    pub fn get_return_short_description(&self) -> bool {
        self.return_short_description.unwrap_or(false)
    }
    pub fn clear_return_short_description(&mut self) {
        self.return_short_description = ::std::option::Option::None;
    }

    pub fn has_return_short_description(&self) -> bool {
        self.return_short_description.is_some()
    }

    // Param is passed by value, moved
    pub fn set_return_short_description(&mut self, v: bool) {
        self.return_short_description = ::std::option::Option::Some(v);
    }

    // optional bool return_for_sale_data = 30;


    pub fn get_return_for_sale_data(&self) -> bool {
        self.return_for_sale_data.unwrap_or(false)
    }
    pub fn clear_return_for_sale_data(&mut self) {
        self.return_for_sale_data = ::std::option::Option::None;
    }

    pub fn has_return_for_sale_data(&self) -> bool {
        self.return_for_sale_data.is_some()
    }

    // Param is passed by value, moved
    pub fn set_return_for_sale_data(&mut self, v: bool) {
        self.return_for_sale_data = ::std::option::Option::Some(v);
    }

    // optional bool return_metadata = 32;


    pub fn get_return_metadata(&self) -> bool {
        self.return_metadata.unwrap_or(false)
    }
    pub fn clear_return_metadata(&mut self) {
        self.return_metadata = ::std::option::Option::None;
    }

    pub fn has_return_metadata(&self) -> bool {
        self.return_metadata.is_some()
    }

    // Param is passed by value, moved
    pub fn set_return_metadata(&mut self, v: bool) {
        self.return_metadata = ::std::option::Option::Some(v);
    }

    // optional uint32 return_playtime_stats = 36;


    pub fn get_return_playtime_stats(&self) -> u32 {
        self.return_playtime_stats.unwrap_or(0)
    }
    pub fn clear_return_playtime_stats(&mut self) {
        self.return_playtime_stats = ::std::option::Option::None;
    }

    pub fn has_return_playtime_stats(&self) -> bool {
        self.return_playtime_stats.is_some()
    }

    // Param is passed by value, moved
    pub fn set_return_playtime_stats(&mut self, v: u32) {
        self.return_playtime_stats = ::std::option::Option::Some(v);
    }

    // optional bool return_details = 37;


    pub fn get_return_details(&self) -> bool {
        self.return_details.unwrap_or(false)
    }
    pub fn clear_return_details(&mut self) {
        self.return_details = ::std::option::Option::None;
    }

    pub fn has_return_details(&self) -> bool {
        self.return_details.is_some()
    }

    // Param is passed by value, moved
    pub fn set_return_details(&mut self, v: bool) {
        self.return_details = ::std::option::Option::Some(v);
    }

    // optional bool strip_description_bbcode = 38;


    pub fn get_strip_description_bbcode(&self) -> bool {
        self.strip_description_bbcode.unwrap_or(false)
    }
    pub fn clear_strip_description_bbcode(&mut self) {
        self.strip_description_bbcode = ::std::option::Option::None;
    }

    pub fn has_strip_description_bbcode(&self) -> bool {
        self.strip_description_bbcode.is_some()
    }

    // Param is passed by value, moved
    pub fn set_strip_description_bbcode(&mut self, v: bool) {
        self.strip_description_bbcode = ::std::option::Option::Some(v);
    }

    // optional .EPublishedFileRevision desired_revision = 40;


    pub fn get_desired_revision(&self) -> EPublishedFileRevision {
        self.desired_revision.unwrap_or(EPublishedFileRevision::k_EPublishedFileRevision_Default)
    }
    pub fn clear_desired_revision(&mut self) {
        self.desired_revision = ::std::option::Option::None;
    }

    pub fn has_desired_revision(&self) -> bool {
        self.desired_revision.is_some()
    }

    // Param is passed by value, moved
    pub fn set_desired_revision(&mut self, v: EPublishedFileRevision) {
        self.desired_revision = ::std::option::Option::Some(v);
    }

    // optional bool return_reactions = 43;


    pub fn get_return_reactions(&self) -> bool {
        self.return_reactions.unwrap_or(false)
    }
    pub fn clear_return_reactions(&mut self) {
        self.return_reactions = ::std::option::Option::None;
    }

    pub fn has_return_reactions(&self) -> bool {
        self.return_reactions.is_some()
    }

    // Param is passed by value, moved
    pub fn set_return_reactions(&mut self, v: bool) {
        self.return_reactions = ::std::option::Option::Some(v);
    }
}

impl ::protobuf::Message for CPublishedFile_QueryFiles_Request {
    fn is_initialized(&self) -> bool {
        for v in &self.required_kv_tags {
            if !v.is_initialized() {
                return false;
            }
        };
        for v in &self.taggroups {
            if !v.is_initialized() {
                return false;
            }
        };
        true
    }

    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
        while !is.eof()? {
            let (field_number, wire_type) = is.read_tag_unpack()?;
            match field_number {
                1 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_uint32()?;
                    self.query_type = ::std::option::Option::Some(tmp);
                },
                2 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_uint32()?;
                    self.page = ::std::option::Option::Some(tmp);
                },
                39 => {
                    ::protobuf::rt::read_singular_string_into(wire_type, is, &mut self.cursor)?;
                },
                3 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_uint32()?;
                    self.numperpage = ::std::option::Option::Some(tmp);
                },
                4 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_uint32()?;
                    self.creator_appid = ::std::option::Option::Some(tmp);
                },
                5 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_uint32()?;
                    self.appid = ::std::option::Option::Some(tmp);
                },
                6 => {
                    ::protobuf::rt::read_repeated_string_into(wire_type, is, &mut self.requiredtags)?;
                },
                7 => {
                    ::protobuf::rt::read_repeated_string_into(wire_type, is, &mut self.excludedtags)?;
                },
                8 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_bool()?;
                    self.match_all_tags = ::std::option::Option::Some(tmp);
                },
                9 => {
                    ::protobuf::rt::read_repeated_string_into(wire_type, is, &mut self.required_flags)?;
                },
                10 => {
                    ::protobuf::rt::read_repeated_string_into(wire_type, is, &mut self.omitted_flags)?;
                },
                11 => {
                    ::protobuf::rt::read_singular_string_into(wire_type, is, &mut self.search_text)?;
                },
                12 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_uint32()?;
                    self.filetype = ::std::option::Option::Some(tmp);
                },
                13 => {
                    if wire_type != ::protobuf::wire_format::WireTypeFixed64 {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_fixed64()?;
                    self.child_publishedfileid = ::std::option::Option::Some(tmp);
                },
                14 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_uint32()?;
                    self.days = ::std::option::Option::Some(tmp);
                },
                15 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_bool()?;
                    self.include_recent_votes_only = ::std::option::Option::Some(tmp);
                },
                31 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_uint32()?;
                    self.cache_max_age_seconds = ::std::option::Option::Some(tmp);
                },
                33 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_int32()?;
                    self.language = ::std::option::Option::Some(tmp);
                },
                34 => {
                    ::protobuf::rt::read_repeated_message_into(wire_type, is, &mut self.required_kv_tags)?;
                },
                42 => {
                    ::protobuf::rt::read_repeated_message_into(wire_type, is, &mut self.taggroups)?;
                },
                16 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_bool()?;
                    self.totalonly = ::std::option::Option::Some(tmp);
                },
                35 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_bool()?;
                    self.ids_only = ::std::option::Option::Some(tmp);
                },
                17 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_bool()?;
                    self.return_vote_data = ::std::option::Option::Some(tmp);
                },
                18 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_bool()?;
                    self.return_tags = ::std::option::Option::Some(tmp);
                },
                19 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_bool()?;
                    self.return_kv_tags = ::std::option::Option::Some(tmp);
                },
                20 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_bool()?;
                    self.return_previews = ::std::option::Option::Some(tmp);
                },
                21 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_bool()?;
                    self.return_children = ::std::option::Option::Some(tmp);
                },
                22 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_bool()?;
                    self.return_short_description = ::std::option::Option::Some(tmp);
                },
                30 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_bool()?;
                    self.return_for_sale_data = ::std::option::Option::Some(tmp);
                },
                32 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_bool()?;
                    self.return_metadata = ::std::option::Option::Some(tmp);
                },
                36 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_uint32()?;
                    self.return_playtime_stats = ::std::option::Option::Some(tmp);
                },
                37 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_bool()?;
                    self.return_details = ::std::option::Option::Some(tmp);
                },
                38 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_bool()?;
                    self.strip_description_bbcode = ::std::option::Option::Some(tmp);
                },
                40 => {
                    ::protobuf::rt::read_proto2_enum_with_unknown_fields_into(wire_type, is, &mut self.desired_revision, 40, &mut self.unknown_fields)?
                },
                43 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_bool()?;
                    self.return_reactions = ::std::option::Option::Some(tmp);
                },
                _ => {
                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
                },
            };
        }
        ::std::result::Result::Ok(())
    }

    // Compute sizes of nested messages
    #[allow(unused_variables)]
    fn compute_size(&self) -> u32 {
        let mut my_size = 0;
        if let Some(v) = self.query_type {
            my_size += ::protobuf::rt::value_size(1, v, ::protobuf::wire_format::WireTypeVarint);
        }
        if let Some(v) = self.page {
            my_size += ::protobuf::rt::value_size(2, v, ::protobuf::wire_format::WireTypeVarint);
        }
        if let Some(ref v) = self.cursor.as_ref() {
            my_size += ::protobuf::rt::string_size(39, &v);
        }
        if let Some(v) = self.numperpage {
            my_size += ::protobuf::rt::value_size(3, v, ::protobuf::wire_format::WireTypeVarint);
        }
        if let Some(v) = self.creator_appid {
            my_size += ::protobuf::rt::value_size(4, v, ::protobuf::wire_format::WireTypeVarint);
        }
        if let Some(v) = self.appid {
            my_size += ::protobuf::rt::value_size(5, v, ::protobuf::wire_format::WireTypeVarint);
        }
        for value in &self.requiredtags {
            my_size += ::protobuf::rt::string_size(6, &value);
        };
        for value in &self.excludedtags {
            my_size += ::protobuf::rt::string_size(7, &value);
        };
        if let Some(v) = self.match_all_tags {
            my_size += 2;
        }
        for value in &self.required_flags {
            my_size += ::protobuf::rt::string_size(9, &value);
        };
        for value in &self.omitted_flags {
            my_size += ::protobuf::rt::string_size(10, &value);
        };
        if let Some(ref v) = self.search_text.as_ref() {
            my_size += ::protobuf::rt::string_size(11, &v);
        }
        if let Some(v) = self.filetype {
            my_size += ::protobuf::rt::value_size(12, v, ::protobuf::wire_format::WireTypeVarint);
        }
        if let Some(v) = self.child_publishedfileid {
            my_size += 9;
        }
        if let Some(v) = self.days {
            my_size += ::protobuf::rt::value_size(14, v, ::protobuf::wire_format::WireTypeVarint);
        }
        if let Some(v) = self.include_recent_votes_only {
            my_size += 2;
        }
        if let Some(v) = self.cache_max_age_seconds {
            my_size += ::protobuf::rt::value_size(31, v, ::protobuf::wire_format::WireTypeVarint);
        }
        if let Some(v) = self.language {
            my_size += ::protobuf::rt::value_size(33, v, ::protobuf::wire_format::WireTypeVarint);
        }
        for value in &self.required_kv_tags {
            let len = value.compute_size();
            my_size += 2 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
        };
        for value in &self.taggroups {
            let len = value.compute_size();
            my_size += 2 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
        };
        if let Some(v) = self.totalonly {
            my_size += 3;
        }
        if let Some(v) = self.ids_only {
            my_size += 3;
        }
        if let Some(v) = self.return_vote_data {
            my_size += 3;
        }
        if let Some(v) = self.return_tags {
            my_size += 3;
        }
        if let Some(v) = self.return_kv_tags {
            my_size += 3;
        }
        if let Some(v) = self.return_previews {
            my_size += 3;
        }
        if let Some(v) = self.return_children {
            my_size += 3;
        }
        if let Some(v) = self.return_short_description {
            my_size += 3;
        }
        if let Some(v) = self.return_for_sale_data {
            my_size += 3;
        }
        if let Some(v) = self.return_metadata {
            my_size += 3;
        }
        if let Some(v) = self.return_playtime_stats {
            my_size += ::protobuf::rt::value_size(36, v, ::protobuf::wire_format::WireTypeVarint);
        }
        if let Some(v) = self.return_details {
            my_size += 3;
        }
        if let Some(v) = self.strip_description_bbcode {
            my_size += 3;
        }
        if let Some(v) = self.desired_revision {
            my_size += ::protobuf::rt::enum_size(40, v);
        }
        if let Some(v) = self.return_reactions {
            my_size += 3;
        }
        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
        self.cached_size.set(my_size);
        my_size
    }

    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
        if let Some(v) = self.query_type {
            os.write_uint32(1, v)?;
        }
        if let Some(v) = self.page {
            os.write_uint32(2, v)?;
        }
        if let Some(ref v) = self.cursor.as_ref() {
            os.write_string(39, &v)?;
        }
        if let Some(v) = self.numperpage {
            os.write_uint32(3, v)?;
        }
        if let Some(v) = self.creator_appid {
            os.write_uint32(4, v)?;
        }
        if let Some(v) = self.appid {
            os.write_uint32(5, v)?;
        }
        for v in &self.requiredtags {
            os.write_string(6, &v)?;
        };
        for v in &self.excludedtags {
            os.write_string(7, &v)?;
        };
        if let Some(v) = self.match_all_tags {
            os.write_bool(8, v)?;
        }
        for v in &self.required_flags {
            os.write_string(9, &v)?;
        };
        for v in &self.omitted_flags {
            os.write_string(10, &v)?;
        };
        if let Some(ref v) = self.search_text.as_ref() {
            os.write_string(11, &v)?;
        }
        if let Some(v) = self.filetype {
            os.write_uint32(12, v)?;
        }
        if let Some(v) = self.child_publishedfileid {
            os.write_fixed64(13, v)?;
        }
        if let Some(v) = self.days {
            os.write_uint32(14, v)?;
        }
        if let Some(v) = self.include_recent_votes_only {
            os.write_bool(15, v)?;
        }
        if let Some(v) = self.cache_max_age_seconds {
            os.write_uint32(31, v)?;
        }
        if let Some(v) = self.language {
            os.write_int32(33, v)?;
        }
        for v in &self.required_kv_tags {
            os.write_tag(34, ::protobuf::wire_format::WireTypeLengthDelimited)?;
            os.write_raw_varint32(v.get_cached_size())?;
            v.write_to_with_cached_sizes(os)?;
        };
        for v in &self.taggroups {
            os.write_tag(42, ::protobuf::wire_format::WireTypeLengthDelimited)?;
            os.write_raw_varint32(v.get_cached_size())?;
            v.write_to_with_cached_sizes(os)?;
        };
        if let Some(v) = self.totalonly {
            os.write_bool(16, v)?;
        }
        if let Some(v) = self.ids_only {
            os.write_bool(35, v)?;
        }
        if let Some(v) = self.return_vote_data {
            os.write_bool(17, v)?;
        }
        if let Some(v) = self.return_tags {
            os.write_bool(18, v)?;
        }
        if let Some(v) = self.return_kv_tags {
            os.write_bool(19, v)?;
        }
        if let Some(v) = self.return_previews {
            os.write_bool(20, v)?;
        }
        if let Some(v) = self.return_children {
            os.write_bool(21, v)?;
        }
        if let Some(v) = self.return_short_description {
            os.write_bool(22, v)?;
        }
        if let Some(v) = self.return_for_sale_data {
            os.write_bool(30, v)?;
        }
        if let Some(v) = self.return_metadata {
            os.write_bool(32, v)?;
        }
        if let Some(v) = self.return_playtime_stats {
            os.write_uint32(36, v)?;
        }
        if let Some(v) = self.return_details {
            os.write_bool(37, v)?;
        }
        if let Some(v) = self.strip_description_bbcode {
            os.write_bool(38, v)?;
        }
        if let Some(v) = self.desired_revision {
            os.write_enum(40, ::protobuf::ProtobufEnum::value(&v))?;
        }
        if let Some(v) = self.return_reactions {
            os.write_bool(43, v)?;
        }
        os.write_unknown_fields(self.get_unknown_fields())?;
        ::std::result::Result::Ok(())
    }

    fn get_cached_size(&self) -> u32 {
        self.cached_size.get()
    }

    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
        &self.unknown_fields
    }

    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
        &mut self.unknown_fields
    }

    fn as_any(&self) -> &dyn (::std::any::Any) {
        self as &dyn (::std::any::Any)
    }
    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
        self as &mut dyn (::std::any::Any)
    }
    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
        self
    }

    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
        Self::descriptor_static()
    }

    fn new() -> CPublishedFile_QueryFiles_Request {
        CPublishedFile_QueryFiles_Request::new()
    }

    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
        descriptor.get(|| {
            let mut fields = ::std::vec::Vec::new();
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeUint32>(
                "query_type",
                |m: &CPublishedFile_QueryFiles_Request| { &m.query_type },
                |m: &mut CPublishedFile_QueryFiles_Request| { &mut m.query_type },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeUint32>(
                "page",
                |m: &CPublishedFile_QueryFiles_Request| { &m.page },
                |m: &mut CPublishedFile_QueryFiles_Request| { &mut m.page },
            ));
            fields.push(::protobuf::reflect::accessor::make_singular_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
                "cursor",
                |m: &CPublishedFile_QueryFiles_Request| { &m.cursor },
                |m: &mut CPublishedFile_QueryFiles_Request| { &mut m.cursor },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeUint32>(
                "numperpage",
                |m: &CPublishedFile_QueryFiles_Request| { &m.numperpage },
                |m: &mut CPublishedFile_QueryFiles_Request| { &mut m.numperpage },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeUint32>(
                "creator_appid",
                |m: &CPublishedFile_QueryFiles_Request| { &m.creator_appid },
                |m: &mut CPublishedFile_QueryFiles_Request| { &mut m.creator_appid },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeUint32>(
                "appid",
                |m: &CPublishedFile_QueryFiles_Request| { &m.appid },
                |m: &mut CPublishedFile_QueryFiles_Request| { &mut m.appid },
            ));
            fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
                "requiredtags",
                |m: &CPublishedFile_QueryFiles_Request| { &m.requiredtags },
                |m: &mut CPublishedFile_QueryFiles_Request| { &mut m.requiredtags },
            ));
            fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
                "excludedtags",
                |m: &CPublishedFile_QueryFiles_Request| { &m.excludedtags },
                |m: &mut CPublishedFile_QueryFiles_Request| { &mut m.excludedtags },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeBool>(
                "match_all_tags",
                |m: &CPublishedFile_QueryFiles_Request| { &m.match_all_tags },
                |m: &mut CPublishedFile_QueryFiles_Request| { &mut m.match_all_tags },
            ));
            fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
                "required_flags",
                |m: &CPublishedFile_QueryFiles_Request| { &m.required_flags },
                |m: &mut CPublishedFile_QueryFiles_Request| { &mut m.required_flags },
            ));
            fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
                "omitted_flags",
                |m: &CPublishedFile_QueryFiles_Request| { &m.omitted_flags },
                |m: &mut CPublishedFile_QueryFiles_Request| { &mut m.omitted_flags },
            ));
            fields.push(::protobuf::reflect::accessor::make_singular_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
                "search_text",
                |m: &CPublishedFile_QueryFiles_Request| { &m.search_text },
                |m: &mut CPublishedFile_QueryFiles_Request| { &mut m.search_text },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeUint32>(
                "filetype",
                |m: &CPublishedFile_QueryFiles_Request| { &m.filetype },
                |m: &mut CPublishedFile_QueryFiles_Request| { &mut m.filetype },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeFixed64>(
                "child_publishedfileid",
                |m: &CPublishedFile_QueryFiles_Request| { &m.child_publishedfileid },
                |m: &mut CPublishedFile_QueryFiles_Request| { &mut m.child_publishedfileid },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeUint32>(
                "days",
                |m: &CPublishedFile_QueryFiles_Request| { &m.days },
                |m: &mut CPublishedFile_QueryFiles_Request| { &mut m.days },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeBool>(
                "include_recent_votes_only",
                |m: &CPublishedFile_QueryFiles_Request| { &m.include_recent_votes_only },
                |m: &mut CPublishedFile_QueryFiles_Request| { &mut m.include_recent_votes_only },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeUint32>(
                "cache_max_age_seconds",
                |m: &CPublishedFile_QueryFiles_Request| { &m.cache_max_age_seconds },
                |m: &mut CPublishedFile_QueryFiles_Request| { &mut m.cache_max_age_seconds },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeInt32>(
                "language",
                |m: &CPublishedFile_QueryFiles_Request| { &m.language },
                |m: &mut CPublishedFile_QueryFiles_Request| { &mut m.language },
            ));
            fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<CPublishedFile_QueryFiles_Request_KVTag>>(
                "required_kv_tags",
                |m: &CPublishedFile_QueryFiles_Request| { &m.required_kv_tags },
                |m: &mut CPublishedFile_QueryFiles_Request| { &mut m.required_kv_tags },
            ));
            fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<CPublishedFile_QueryFiles_Request_TagGroup>>(
                "taggroups",
                |m: &CPublishedFile_QueryFiles_Request| { &m.taggroups },
                |m: &mut CPublishedFile_QueryFiles_Request| { &mut m.taggroups },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeBool>(
                "totalonly",
                |m: &CPublishedFile_QueryFiles_Request| { &m.totalonly },
                |m: &mut CPublishedFile_QueryFiles_Request| { &mut m.totalonly },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeBool>(
                "ids_only",
                |m: &CPublishedFile_QueryFiles_Request| { &m.ids_only },
                |m: &mut CPublishedFile_QueryFiles_Request| { &mut m.ids_only },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeBool>(
                "return_vote_data",
                |m: &CPublishedFile_QueryFiles_Request| { &m.return_vote_data },
                |m: &mut CPublishedFile_QueryFiles_Request| { &mut m.return_vote_data },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeBool>(
                "return_tags",
                |m: &CPublishedFile_QueryFiles_Request| { &m.return_tags },
                |m: &mut CPublishedFile_QueryFiles_Request| { &mut m.return_tags },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeBool>(
                "return_kv_tags",
                |m: &CPublishedFile_QueryFiles_Request| { &m.return_kv_tags },
                |m: &mut CPublishedFile_QueryFiles_Request| { &mut m.return_kv_tags },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeBool>(
                "return_previews",
                |m: &CPublishedFile_QueryFiles_Request| { &m.return_previews },
                |m: &mut CPublishedFile_QueryFiles_Request| { &mut m.return_previews },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeBool>(
                "return_children",
                |m: &CPublishedFile_QueryFiles_Request| { &m.return_children },
                |m: &mut CPublishedFile_QueryFiles_Request| { &mut m.return_children },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeBool>(
                "return_short_description",
                |m: &CPublishedFile_QueryFiles_Request| { &m.return_short_description },
                |m: &mut CPublishedFile_QueryFiles_Request| { &mut m.return_short_description },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeBool>(
                "return_for_sale_data",
                |m: &CPublishedFile_QueryFiles_Request| { &m.return_for_sale_data },
                |m: &mut CPublishedFile_QueryFiles_Request| { &mut m.return_for_sale_data },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeBool>(
                "return_metadata",
                |m: &CPublishedFile_QueryFiles_Request| { &m.return_metadata },
                |m: &mut CPublishedFile_QueryFiles_Request| { &mut m.return_metadata },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeUint32>(
                "return_playtime_stats",
                |m: &CPublishedFile_QueryFiles_Request| { &m.return_playtime_stats },
                |m: &mut CPublishedFile_QueryFiles_Request| { &mut m.return_playtime_stats },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeBool>(
                "return_details",
                |m: &CPublishedFile_QueryFiles_Request| { &m.return_details },
                |m: &mut CPublishedFile_QueryFiles_Request| { &mut m.return_details },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeBool>(
                "strip_description_bbcode",
                |m: &CPublishedFile_QueryFiles_Request| { &m.strip_description_bbcode },
                |m: &mut CPublishedFile_QueryFiles_Request| { &mut m.strip_description_bbcode },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeEnum<EPublishedFileRevision>>(
                "desired_revision",
                |m: &CPublishedFile_QueryFiles_Request| { &m.desired_revision },
                |m: &mut CPublishedFile_QueryFiles_Request| { &mut m.desired_revision },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeBool>(
                "return_reactions",
                |m: &CPublishedFile_QueryFiles_Request| { &m.return_reactions },
                |m: &mut CPublishedFile_QueryFiles_Request| { &mut m.return_reactions },
            ));
            ::protobuf::reflect::MessageDescriptor::new_pb_name::<CPublishedFile_QueryFiles_Request>(
                "CPublishedFile_QueryFiles_Request",
                fields,
                file_descriptor_proto()
            )
        })
    }

    fn default_instance() -> &'static CPublishedFile_QueryFiles_Request {
        static instance: ::protobuf::rt::LazyV2<CPublishedFile_QueryFiles_Request> = ::protobuf::rt::LazyV2::INIT;
        instance.get(CPublishedFile_QueryFiles_Request::new)
    }
}

impl ::protobuf::Clear for CPublishedFile_QueryFiles_Request {
    fn clear(&mut self) {
        self.query_type = ::std::option::Option::None;
        self.page = ::std::option::Option::None;
        self.cursor.clear();
        self.numperpage = ::std::option::Option::None;
        self.creator_appid = ::std::option::Option::None;
        self.appid = ::std::option::Option::None;
        self.requiredtags.clear();
        self.excludedtags.clear();
        self.match_all_tags = ::std::option::Option::None;
        self.required_flags.clear();
        self.omitted_flags.clear();
        self.search_text.clear();
        self.filetype = ::std::option::Option::None;
        self.child_publishedfileid = ::std::option::Option::None;
        self.days = ::std::option::Option::None;
        self.include_recent_votes_only = ::std::option::Option::None;
        self.cache_max_age_seconds = ::std::option::Option::None;
        self.language = ::std::option::Option::None;
        self.required_kv_tags.clear();
        self.taggroups.clear();
        self.totalonly = ::std::option::Option::None;
        self.ids_only = ::std::option::Option::None;
        self.return_vote_data = ::std::option::Option::None;
        self.return_tags = ::std::option::Option::None;
        self.return_kv_tags = ::std::option::Option::None;
        self.return_previews = ::std::option::Option::None;
        self.return_children = ::std::option::Option::None;
        self.return_short_description = ::std::option::Option::None;
        self.return_for_sale_data = ::std::option::Option::None;
        self.return_metadata = ::std::option::Option::None;
        self.return_playtime_stats = ::std::option::Option::None;
        self.return_details = ::std::option::Option::None;
        self.strip_description_bbcode = ::std::option::Option::None;
        self.desired_revision = ::std::option::Option::None;
        self.return_reactions = ::std::option::Option::None;
        self.unknown_fields.clear();
    }
}

impl ::std::fmt::Debug for CPublishedFile_QueryFiles_Request {
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
        ::protobuf::text_format::fmt(self, f)
    }
}

impl ::protobuf::reflect::ProtobufValue for CPublishedFile_QueryFiles_Request {
    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
        ::protobuf::reflect::ReflectValueRef::Message(self)
    }
}

#[derive(PartialEq,Clone,Default)]
pub struct CPublishedFile_QueryFiles_Request_KVTag {
    // message fields
    key: ::protobuf::SingularField<::std::string::String>,
    value: ::protobuf::SingularField<::std::string::String>,
    // special fields
    pub unknown_fields: ::protobuf::UnknownFields,
    pub cached_size: ::protobuf::CachedSize,
}

impl<'a> ::std::default::Default for &'a CPublishedFile_QueryFiles_Request_KVTag {
    fn default() -> &'a CPublishedFile_QueryFiles_Request_KVTag {
        <CPublishedFile_QueryFiles_Request_KVTag as ::protobuf::Message>::default_instance()
    }
}

impl CPublishedFile_QueryFiles_Request_KVTag {
    pub fn new() -> CPublishedFile_QueryFiles_Request_KVTag {
        ::std::default::Default::default()
    }

    // optional string key = 1;


    pub fn get_key(&self) -> &str {
        match self.key.as_ref() {
            Some(v) => &v,
            None => "",
        }
    }
    pub fn clear_key(&mut self) {
        self.key.clear();
    }

    pub fn has_key(&self) -> bool {
        self.key.is_some()
    }

    // Param is passed by value, moved
    pub fn set_key(&mut self, v: ::std::string::String) {
        self.key = ::protobuf::SingularField::some(v);
    }

    // Mutable pointer to the field.
    // If field is not initialized, it is initialized with default value first.
    pub fn mut_key(&mut self) -> &mut ::std::string::String {
        if self.key.is_none() {
            self.key.set_default();
        }
        self.key.as_mut().unwrap()
    }

    // Take field
    pub fn take_key(&mut self) -> ::std::string::String {
        self.key.take().unwrap_or_else(|| ::std::string::String::new())
    }

    // optional string value = 2;


    pub fn get_value(&self) -> &str {
        match self.value.as_ref() {
            Some(v) => &v,
            None => "",
        }
    }
    pub fn clear_value(&mut self) {
        self.value.clear();
    }

    pub fn has_value(&self) -> bool {
        self.value.is_some()
    }

    // Param is passed by value, moved
    pub fn set_value(&mut self, v: ::std::string::String) {
        self.value = ::protobuf::SingularField::some(v);
    }

    // Mutable pointer to the field.
    // If field is not initialized, it is initialized with default value first.
    pub fn mut_value(&mut self) -> &mut ::std::string::String {
        if self.value.is_none() {
            self.value.set_default();
        }
        self.value.as_mut().unwrap()
    }

    // Take field
    pub fn take_value(&mut self) -> ::std::string::String {
        self.value.take().unwrap_or_else(|| ::std::string::String::new())
    }
}

impl ::protobuf::Message for CPublishedFile_QueryFiles_Request_KVTag {
    fn is_initialized(&self) -> bool {
        true
    }

    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
        while !is.eof()? {
            let (field_number, wire_type) = is.read_tag_unpack()?;
            match field_number {
                1 => {
                    ::protobuf::rt::read_singular_string_into(wire_type, is, &mut self.key)?;
                },
                2 => {
                    ::protobuf::rt::read_singular_string_into(wire_type, is, &mut self.value)?;
                },
                _ => {
                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
                },
            };
        }
        ::std::result::Result::Ok(())
    }

    // Compute sizes of nested messages
    #[allow(unused_variables)]
    fn compute_size(&self) -> u32 {
        let mut my_size = 0;
        if let Some(ref v) = self.key.as_ref() {
            my_size += ::protobuf::rt::string_size(1, &v);
        }
        if let Some(ref v) = self.value.as_ref() {
            my_size += ::protobuf::rt::string_size(2, &v);
        }
        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
        self.cached_size.set(my_size);
        my_size
    }

    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
        if let Some(ref v) = self.key.as_ref() {
            os.write_string(1, &v)?;
        }
        if let Some(ref v) = self.value.as_ref() {
            os.write_string(2, &v)?;
        }
        os.write_unknown_fields(self.get_unknown_fields())?;
        ::std::result::Result::Ok(())
    }

    fn get_cached_size(&self) -> u32 {
        self.cached_size.get()
    }

    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
        &self.unknown_fields
    }

    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
        &mut self.unknown_fields
    }

    fn as_any(&self) -> &dyn (::std::any::Any) {
        self as &dyn (::std::any::Any)
    }
    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
        self as &mut dyn (::std::any::Any)
    }
    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
        self
    }

    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
        Self::descriptor_static()
    }

    fn new() -> CPublishedFile_QueryFiles_Request_KVTag {
        CPublishedFile_QueryFiles_Request_KVTag::new()
    }

    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
        descriptor.get(|| {
            let mut fields = ::std::vec::Vec::new();
            fields.push(::protobuf::reflect::accessor::make_singular_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
                "key",
                |m: &CPublishedFile_QueryFiles_Request_KVTag| { &m.key },
                |m: &mut CPublishedFile_QueryFiles_Request_KVTag| { &mut m.key },
            ));
            fields.push(::protobuf::reflect::accessor::make_singular_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
                "value",
                |m: &CPublishedFile_QueryFiles_Request_KVTag| { &m.value },
                |m: &mut CPublishedFile_QueryFiles_Request_KVTag| { &mut m.value },
            ));
            ::protobuf::reflect::MessageDescriptor::new_pb_name::<CPublishedFile_QueryFiles_Request_KVTag>(
                "CPublishedFile_QueryFiles_Request.KVTag",
                fields,
                file_descriptor_proto()
            )
        })
    }

    fn default_instance() -> &'static CPublishedFile_QueryFiles_Request_KVTag {
        static instance: ::protobuf::rt::LazyV2<CPublishedFile_QueryFiles_Request_KVTag> = ::protobuf::rt::LazyV2::INIT;
        instance.get(CPublishedFile_QueryFiles_Request_KVTag::new)
    }
}

impl ::protobuf::Clear for CPublishedFile_QueryFiles_Request_KVTag {
    fn clear(&mut self) {
        self.key.clear();
        self.value.clear();
        self.unknown_fields.clear();
    }
}

impl ::std::fmt::Debug for CPublishedFile_QueryFiles_Request_KVTag {
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
        ::protobuf::text_format::fmt(self, f)
    }
}

impl ::protobuf::reflect::ProtobufValue for CPublishedFile_QueryFiles_Request_KVTag {
    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
        ::protobuf::reflect::ReflectValueRef::Message(self)
    }
}

#[derive(PartialEq,Clone,Default)]
pub struct CPublishedFile_QueryFiles_Request_TagGroup {
    // message fields
    pub tags: ::protobuf::RepeatedField<::std::string::String>,
    // special fields
    pub unknown_fields: ::protobuf::UnknownFields,
    pub cached_size: ::protobuf::CachedSize,
}

impl<'a> ::std::default::Default for &'a CPublishedFile_QueryFiles_Request_TagGroup {
    fn default() -> &'a CPublishedFile_QueryFiles_Request_TagGroup {
        <CPublishedFile_QueryFiles_Request_TagGroup as ::protobuf::Message>::default_instance()
    }
}

impl CPublishedFile_QueryFiles_Request_TagGroup {
    pub fn new() -> CPublishedFile_QueryFiles_Request_TagGroup {
        ::std::default::Default::default()
    }

    // repeated string tags = 1;


    pub fn get_tags(&self) -> &[::std::string::String] {
        &self.tags
    }
    pub fn clear_tags(&mut self) {
        self.tags.clear();
    }

    // Param is passed by value, moved
    pub fn set_tags(&mut self, v: ::protobuf::RepeatedField<::std::string::String>) {
        self.tags = v;
    }

    // Mutable pointer to the field.
    pub fn mut_tags(&mut self) -> &mut ::protobuf::RepeatedField<::std::string::String> {
        &mut self.tags
    }

    // Take field
    pub fn take_tags(&mut self) -> ::protobuf::RepeatedField<::std::string::String> {
        ::std::mem::replace(&mut self.tags, ::protobuf::RepeatedField::new())
    }
}

impl ::protobuf::Message for CPublishedFile_QueryFiles_Request_TagGroup {
    fn is_initialized(&self) -> bool {
        true
    }

    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
        while !is.eof()? {
            let (field_number, wire_type) = is.read_tag_unpack()?;
            match field_number {
                1 => {
                    ::protobuf::rt::read_repeated_string_into(wire_type, is, &mut self.tags)?;
                },
                _ => {
                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
                },
            };
        }
        ::std::result::Result::Ok(())
    }

    // Compute sizes of nested messages
    #[allow(unused_variables)]
    fn compute_size(&self) -> u32 {
        let mut my_size = 0;
        for value in &self.tags {
            my_size += ::protobuf::rt::string_size(1, &value);
        };
        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
        self.cached_size.set(my_size);
        my_size
    }

    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
        for v in &self.tags {
            os.write_string(1, &v)?;
        };
        os.write_unknown_fields(self.get_unknown_fields())?;
        ::std::result::Result::Ok(())
    }

    fn get_cached_size(&self) -> u32 {
        self.cached_size.get()
    }

    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
        &self.unknown_fields
    }

    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
        &mut self.unknown_fields
    }

    fn as_any(&self) -> &dyn (::std::any::Any) {
        self as &dyn (::std::any::Any)
    }
    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
        self as &mut dyn (::std::any::Any)
    }
    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
        self
    }

    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
        Self::descriptor_static()
    }

    fn new() -> CPublishedFile_QueryFiles_Request_TagGroup {
        CPublishedFile_QueryFiles_Request_TagGroup::new()
    }

    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
        descriptor.get(|| {
            let mut fields = ::std::vec::Vec::new();
            fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
                "tags",
                |m: &CPublishedFile_QueryFiles_Request_TagGroup| { &m.tags },
                |m: &mut CPublishedFile_QueryFiles_Request_TagGroup| { &mut m.tags },
            ));
            ::protobuf::reflect::MessageDescriptor::new_pb_name::<CPublishedFile_QueryFiles_Request_TagGroup>(
                "CPublishedFile_QueryFiles_Request.TagGroup",
                fields,
                file_descriptor_proto()
            )
        })
    }

    fn default_instance() -> &'static CPublishedFile_QueryFiles_Request_TagGroup {
        static instance: ::protobuf::rt::LazyV2<CPublishedFile_QueryFiles_Request_TagGroup> = ::protobuf::rt::LazyV2::INIT;
        instance.get(CPublishedFile_QueryFiles_Request_TagGroup::new)
    }
}

impl ::protobuf::Clear for CPublishedFile_QueryFiles_Request_TagGroup {
    fn clear(&mut self) {
        self.tags.clear();
        self.unknown_fields.clear();
    }
}

impl ::std::fmt::Debug for CPublishedFile_QueryFiles_Request_TagGroup {
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
        ::protobuf::text_format::fmt(self, f)
    }
}

impl ::protobuf::reflect::ProtobufValue for CPublishedFile_QueryFiles_Request_TagGroup {
    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
        ::protobuf::reflect::ReflectValueRef::Message(self)
    }
}

#[derive(PartialEq,Clone,Default)]
pub struct CPublishedFile_QueryFiles_Response {
    // message fields
    total: ::std::option::Option<u32>,
    pub publishedfiledetails: ::protobuf::RepeatedField<PublishedFileDetails>,
    next_cursor: ::protobuf::SingularField<::std::string::String>,
    // special fields
    pub unknown_fields: ::protobuf::UnknownFields,
    pub cached_size: ::protobuf::CachedSize,
}

impl<'a> ::std::default::Default for &'a CPublishedFile_QueryFiles_Response {
    fn default() -> &'a CPublishedFile_QueryFiles_Response {
        <CPublishedFile_QueryFiles_Response as ::protobuf::Message>::default_instance()
    }
}

impl CPublishedFile_QueryFiles_Response {
    pub fn new() -> CPublishedFile_QueryFiles_Response {
        ::std::default::Default::default()
    }

    // optional uint32 total = 1;


    pub fn get_total(&self) -> u32 {
        self.total.unwrap_or(0)
    }
    pub fn clear_total(&mut self) {
        self.total = ::std::option::Option::None;
    }

    pub fn has_total(&self) -> bool {
        self.total.is_some()
    }

    // Param is passed by value, moved
    pub fn set_total(&mut self, v: u32) {
        self.total = ::std::option::Option::Some(v);
    }

    // repeated .PublishedFileDetails publishedfiledetails = 2;


    pub fn get_publishedfiledetails(&self) -> &[PublishedFileDetails] {
        &self.publishedfiledetails
    }
    pub fn clear_publishedfiledetails(&mut self) {
        self.publishedfiledetails.clear();
    }

    // Param is passed by value, moved
    pub fn set_publishedfiledetails(&mut self, v: ::protobuf::RepeatedField<PublishedFileDetails>) {
        self.publishedfiledetails = v;
    }

    // Mutable pointer to the field.
    pub fn mut_publishedfiledetails(&mut self) -> &mut ::protobuf::RepeatedField<PublishedFileDetails> {
        &mut self.publishedfiledetails
    }

    // Take field
    pub fn take_publishedfiledetails(&mut self) -> ::protobuf::RepeatedField<PublishedFileDetails> {
        ::std::mem::replace(&mut self.publishedfiledetails, ::protobuf::RepeatedField::new())
    }

    // optional string next_cursor = 3;


    pub fn get_next_cursor(&self) -> &str {
        match self.next_cursor.as_ref() {
            Some(v) => &v,
            None => "",
        }
    }
    pub fn clear_next_cursor(&mut self) {
        self.next_cursor.clear();
    }

    pub fn has_next_cursor(&self) -> bool {
        self.next_cursor.is_some()
    }

    // Param is passed by value, moved
    pub fn set_next_cursor(&mut self, v: ::std::string::String) {
        self.next_cursor = ::protobuf::SingularField::some(v);
    }

    // Mutable pointer to the field.
    // If field is not initialized, it is initialized with default value first.
    pub fn mut_next_cursor(&mut self) -> &mut ::std::string::String {
        if self.next_cursor.is_none() {
            self.next_cursor.set_default();
        }
        self.next_cursor.as_mut().unwrap()
    }

    // Take field
    pub fn take_next_cursor(&mut self) -> ::std::string::String {
        self.next_cursor.take().unwrap_or_else(|| ::std::string::String::new())
    }
}

impl ::protobuf::Message for CPublishedFile_QueryFiles_Response {
    fn is_initialized(&self) -> bool {
        for v in &self.publishedfiledetails {
            if !v.is_initialized() {
                return false;
            }
        };
        true
    }

    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
        while !is.eof()? {
            let (field_number, wire_type) = is.read_tag_unpack()?;
            match field_number {
                1 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_uint32()?;
                    self.total = ::std::option::Option::Some(tmp);
                },
                2 => {
                    ::protobuf::rt::read_repeated_message_into(wire_type, is, &mut self.publishedfiledetails)?;
                },
                3 => {
                    ::protobuf::rt::read_singular_string_into(wire_type, is, &mut self.next_cursor)?;
                },
                _ => {
                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
                },
            };
        }
        ::std::result::Result::Ok(())
    }

    // Compute sizes of nested messages
    #[allow(unused_variables)]
    fn compute_size(&self) -> u32 {
        let mut my_size = 0;
        if let Some(v) = self.total {
            my_size += ::protobuf::rt::value_size(1, v, ::protobuf::wire_format::WireTypeVarint);
        }
        for value in &self.publishedfiledetails {
            let len = value.compute_size();
            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
        };
        if let Some(ref v) = self.next_cursor.as_ref() {
            my_size += ::protobuf::rt::string_size(3, &v);
        }
        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
        self.cached_size.set(my_size);
        my_size
    }

    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
        if let Some(v) = self.total {
            os.write_uint32(1, v)?;
        }
        for v in &self.publishedfiledetails {
            os.write_tag(2, ::protobuf::wire_format::WireTypeLengthDelimited)?;
            os.write_raw_varint32(v.get_cached_size())?;
            v.write_to_with_cached_sizes(os)?;
        };
        if let Some(ref v) = self.next_cursor.as_ref() {
            os.write_string(3, &v)?;
        }
        os.write_unknown_fields(self.get_unknown_fields())?;
        ::std::result::Result::Ok(())
    }

    fn get_cached_size(&self) -> u32 {
        self.cached_size.get()
    }

    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
        &self.unknown_fields
    }

    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
        &mut self.unknown_fields
    }

    fn as_any(&self) -> &dyn (::std::any::Any) {
        self as &dyn (::std::any::Any)
    }
    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
        self as &mut dyn (::std::any::Any)
    }
    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
        self
    }

    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
        Self::descriptor_static()
    }

    fn new() -> CPublishedFile_QueryFiles_Response {
        CPublishedFile_QueryFiles_Response::new()
    }

    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
        descriptor.get(|| {
            let mut fields = ::std::vec::Vec::new();
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeUint32>(
                "total",
                |m: &CPublishedFile_QueryFiles_Response| { &m.total },
                |m: &mut CPublishedFile_QueryFiles_Response| { &mut m.total },
            ));
            fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<PublishedFileDetails>>(
                "publishedfiledetails",
                |m: &CPublishedFile_QueryFiles_Response| { &m.publishedfiledetails },
                |m: &mut CPublishedFile_QueryFiles_Response| { &mut m.publishedfiledetails },
            ));
            fields.push(::protobuf::reflect::accessor::make_singular_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
                "next_cursor",
                |m: &CPublishedFile_QueryFiles_Response| { &m.next_cursor },
                |m: &mut CPublishedFile_QueryFiles_Response| { &mut m.next_cursor },
            ));
            ::protobuf::reflect::MessageDescriptor::new_pb_name::<CPublishedFile_QueryFiles_Response>(
                "CPublishedFile_QueryFiles_Response",
                fields,
                file_descriptor_proto()
            )
        })
    }

    fn default_instance() -> &'static CPublishedFile_QueryFiles_Response {
        static instance: ::protobuf::rt::LazyV2<CPublishedFile_QueryFiles_Response> = ::protobuf::rt::LazyV2::INIT;
        instance.get(CPublishedFile_QueryFiles_Response::new)
    }
}

impl ::protobuf::Clear for CPublishedFile_QueryFiles_Response {
    fn clear(&mut self) {
        self.total = ::std::option::Option::None;
        self.publishedfiledetails.clear();
        self.next_cursor.clear();
        self.unknown_fields.clear();
    }
}

impl ::std::fmt::Debug for CPublishedFile_QueryFiles_Response {
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
        ::protobuf::text_format::fmt(self, f)
    }
}

impl ::protobuf::reflect::ProtobufValue for CPublishedFile_QueryFiles_Response {
    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
        ::protobuf::reflect::ReflectValueRef::Message(self)
    }
}

#[derive(PartialEq,Clone,Default)]
pub struct CPublishedFile_AddAppRelationship_Request {
    // message fields
    publishedfileid: ::std::option::Option<u64>,
    appid: ::std::option::Option<u32>,
    relationship: ::std::option::Option<u32>,
    // special fields
    pub unknown_fields: ::protobuf::UnknownFields,
    pub cached_size: ::protobuf::CachedSize,
}

impl<'a> ::std::default::Default for &'a CPublishedFile_AddAppRelationship_Request {
    fn default() -> &'a CPublishedFile_AddAppRelationship_Request {
        <CPublishedFile_AddAppRelationship_Request as ::protobuf::Message>::default_instance()
    }
}

impl CPublishedFile_AddAppRelationship_Request {
    pub fn new() -> CPublishedFile_AddAppRelationship_Request {
        ::std::default::Default::default()
    }

    // optional uint64 publishedfileid = 1;


    pub fn get_publishedfileid(&self) -> u64 {
        self.publishedfileid.unwrap_or(0)
    }
    pub fn clear_publishedfileid(&mut self) {
        self.publishedfileid = ::std::option::Option::None;
    }

    pub fn has_publishedfileid(&self) -> bool {
        self.publishedfileid.is_some()
    }

    // Param is passed by value, moved
    pub fn set_publishedfileid(&mut self, v: u64) {
        self.publishedfileid = ::std::option::Option::Some(v);
    }

    // optional uint32 appid = 2;


    pub fn get_appid(&self) -> u32 {
        self.appid.unwrap_or(0)
    }
    pub fn clear_appid(&mut self) {
        self.appid = ::std::option::Option::None;
    }

    pub fn has_appid(&self) -> bool {
        self.appid.is_some()
    }

    // Param is passed by value, moved
    pub fn set_appid(&mut self, v: u32) {
        self.appid = ::std::option::Option::Some(v);
    }

    // optional uint32 relationship = 3;


    pub fn get_relationship(&self) -> u32 {
        self.relationship.unwrap_or(0)
    }
    pub fn clear_relationship(&mut self) {
        self.relationship = ::std::option::Option::None;
    }

    pub fn has_relationship(&self) -> bool {
        self.relationship.is_some()
    }

    // Param is passed by value, moved
    pub fn set_relationship(&mut self, v: u32) {
        self.relationship = ::std::option::Option::Some(v);
    }
}

impl ::protobuf::Message for CPublishedFile_AddAppRelationship_Request {
    fn is_initialized(&self) -> bool {
        true
    }

    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
        while !is.eof()? {
            let (field_number, wire_type) = is.read_tag_unpack()?;
            match field_number {
                1 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_uint64()?;
                    self.publishedfileid = ::std::option::Option::Some(tmp);
                },
                2 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_uint32()?;
                    self.appid = ::std::option::Option::Some(tmp);
                },
                3 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_uint32()?;
                    self.relationship = ::std::option::Option::Some(tmp);
                },
                _ => {
                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
                },
            };
        }
        ::std::result::Result::Ok(())
    }

    // Compute sizes of nested messages
    #[allow(unused_variables)]
    fn compute_size(&self) -> u32 {
        let mut my_size = 0;
        if let Some(v) = self.publishedfileid {
            my_size += ::protobuf::rt::value_size(1, v, ::protobuf::wire_format::WireTypeVarint);
        }
        if let Some(v) = self.appid {
            my_size += ::protobuf::rt::value_size(2, v, ::protobuf::wire_format::WireTypeVarint);
        }
        if let Some(v) = self.relationship {
            my_size += ::protobuf::rt::value_size(3, v, ::protobuf::wire_format::WireTypeVarint);
        }
        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
        self.cached_size.set(my_size);
        my_size
    }

    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
        if let Some(v) = self.publishedfileid {
            os.write_uint64(1, v)?;
        }
        if let Some(v) = self.appid {
            os.write_uint32(2, v)?;
        }
        if let Some(v) = self.relationship {
            os.write_uint32(3, v)?;
        }
        os.write_unknown_fields(self.get_unknown_fields())?;
        ::std::result::Result::Ok(())
    }

    fn get_cached_size(&self) -> u32 {
        self.cached_size.get()
    }

    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
        &self.unknown_fields
    }

    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
        &mut self.unknown_fields
    }

    fn as_any(&self) -> &dyn (::std::any::Any) {
        self as &dyn (::std::any::Any)
    }
    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
        self as &mut dyn (::std::any::Any)
    }
    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
        self
    }

    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
        Self::descriptor_static()
    }

    fn new() -> CPublishedFile_AddAppRelationship_Request {
        CPublishedFile_AddAppRelationship_Request::new()
    }

    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
        descriptor.get(|| {
            let mut fields = ::std::vec::Vec::new();
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeUint64>(
                "publishedfileid",
                |m: &CPublishedFile_AddAppRelationship_Request| { &m.publishedfileid },
                |m: &mut CPublishedFile_AddAppRelationship_Request| { &mut m.publishedfileid },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeUint32>(
                "appid",
                |m: &CPublishedFile_AddAppRelationship_Request| { &m.appid },
                |m: &mut CPublishedFile_AddAppRelationship_Request| { &mut m.appid },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeUint32>(
                "relationship",
                |m: &CPublishedFile_AddAppRelationship_Request| { &m.relationship },
                |m: &mut CPublishedFile_AddAppRelationship_Request| { &mut m.relationship },
            ));
            ::protobuf::reflect::MessageDescriptor::new_pb_name::<CPublishedFile_AddAppRelationship_Request>(
                "CPublishedFile_AddAppRelationship_Request",
                fields,
                file_descriptor_proto()
            )
        })
    }

    fn default_instance() -> &'static CPublishedFile_AddAppRelationship_Request {
        static instance: ::protobuf::rt::LazyV2<CPublishedFile_AddAppRelationship_Request> = ::protobuf::rt::LazyV2::INIT;
        instance.get(CPublishedFile_AddAppRelationship_Request::new)
    }
}

impl ::protobuf::Clear for CPublishedFile_AddAppRelationship_Request {
    fn clear(&mut self) {
        self.publishedfileid = ::std::option::Option::None;
        self.appid = ::std::option::Option::None;
        self.relationship = ::std::option::Option::None;
        self.unknown_fields.clear();
    }
}

impl ::std::fmt::Debug for CPublishedFile_AddAppRelationship_Request {
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
        ::protobuf::text_format::fmt(self, f)
    }
}

impl ::protobuf::reflect::ProtobufValue for CPublishedFile_AddAppRelationship_Request {
    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
        ::protobuf::reflect::ReflectValueRef::Message(self)
    }
}

#[derive(PartialEq,Clone,Default)]
pub struct CPublishedFile_AddAppRelationship_Response {
    // special fields
    pub unknown_fields: ::protobuf::UnknownFields,
    pub cached_size: ::protobuf::CachedSize,
}

impl<'a> ::std::default::Default for &'a CPublishedFile_AddAppRelationship_Response {
    fn default() -> &'a CPublishedFile_AddAppRelationship_Response {
        <CPublishedFile_AddAppRelationship_Response as ::protobuf::Message>::default_instance()
    }
}

impl CPublishedFile_AddAppRelationship_Response {
    pub fn new() -> CPublishedFile_AddAppRelationship_Response {
        ::std::default::Default::default()
    }
}

impl ::protobuf::Message for CPublishedFile_AddAppRelationship_Response {
    fn is_initialized(&self) -> bool {
        true
    }

    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
        while !is.eof()? {
            let (field_number, wire_type) = is.read_tag_unpack()?;
            match field_number {
                _ => {
                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
                },
            };
        }
        ::std::result::Result::Ok(())
    }

    // Compute sizes of nested messages
    #[allow(unused_variables)]
    fn compute_size(&self) -> u32 {
        let mut my_size = 0;
        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
        self.cached_size.set(my_size);
        my_size
    }

    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
        os.write_unknown_fields(self.get_unknown_fields())?;
        ::std::result::Result::Ok(())
    }

    fn get_cached_size(&self) -> u32 {
        self.cached_size.get()
    }

    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
        &self.unknown_fields
    }

    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
        &mut self.unknown_fields
    }

    fn as_any(&self) -> &dyn (::std::any::Any) {
        self as &dyn (::std::any::Any)
    }
    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
        self as &mut dyn (::std::any::Any)
    }
    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
        self
    }

    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
        Self::descriptor_static()
    }

    fn new() -> CPublishedFile_AddAppRelationship_Response {
        CPublishedFile_AddAppRelationship_Response::new()
    }

    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
        descriptor.get(|| {
            let fields = ::std::vec::Vec::new();
            ::protobuf::reflect::MessageDescriptor::new_pb_name::<CPublishedFile_AddAppRelationship_Response>(
                "CPublishedFile_AddAppRelationship_Response",
                fields,
                file_descriptor_proto()
            )
        })
    }

    fn default_instance() -> &'static CPublishedFile_AddAppRelationship_Response {
        static instance: ::protobuf::rt::LazyV2<CPublishedFile_AddAppRelationship_Response> = ::protobuf::rt::LazyV2::INIT;
        instance.get(CPublishedFile_AddAppRelationship_Response::new)
    }
}

impl ::protobuf::Clear for CPublishedFile_AddAppRelationship_Response {
    fn clear(&mut self) {
        self.unknown_fields.clear();
    }
}

impl ::std::fmt::Debug for CPublishedFile_AddAppRelationship_Response {
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
        ::protobuf::text_format::fmt(self, f)
    }
}

impl ::protobuf::reflect::ProtobufValue for CPublishedFile_AddAppRelationship_Response {
    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
        ::protobuf::reflect::ReflectValueRef::Message(self)
    }
}

#[derive(PartialEq,Clone,Default)]
pub struct CPublishedFile_RemoveAppRelationship_Request {
    // message fields
    publishedfileid: ::std::option::Option<u64>,
    appid: ::std::option::Option<u32>,
    relationship: ::std::option::Option<u32>,
    // special fields
    pub unknown_fields: ::protobuf::UnknownFields,
    pub cached_size: ::protobuf::CachedSize,
}

impl<'a> ::std::default::Default for &'a CPublishedFile_RemoveAppRelationship_Request {
    fn default() -> &'a CPublishedFile_RemoveAppRelationship_Request {
        <CPublishedFile_RemoveAppRelationship_Request as ::protobuf::Message>::default_instance()
    }
}

impl CPublishedFile_RemoveAppRelationship_Request {
    pub fn new() -> CPublishedFile_RemoveAppRelationship_Request {
        ::std::default::Default::default()
    }

    // optional uint64 publishedfileid = 1;


    pub fn get_publishedfileid(&self) -> u64 {
        self.publishedfileid.unwrap_or(0)
    }
    pub fn clear_publishedfileid(&mut self) {
        self.publishedfileid = ::std::option::Option::None;
    }

    pub fn has_publishedfileid(&self) -> bool {
        self.publishedfileid.is_some()
    }

    // Param is passed by value, moved
    pub fn set_publishedfileid(&mut self, v: u64) {
        self.publishedfileid = ::std::option::Option::Some(v);
    }

    // optional uint32 appid = 2;


    pub fn get_appid(&self) -> u32 {
        self.appid.unwrap_or(0)
    }
    pub fn clear_appid(&mut self) {
        self.appid = ::std::option::Option::None;
    }

    pub fn has_appid(&self) -> bool {
        self.appid.is_some()
    }

    // Param is passed by value, moved
    pub fn set_appid(&mut self, v: u32) {
        self.appid = ::std::option::Option::Some(v);
    }

    // optional uint32 relationship = 3;


    pub fn get_relationship(&self) -> u32 {
        self.relationship.unwrap_or(0)
    }
    pub fn clear_relationship(&mut self) {
        self.relationship = ::std::option::Option::None;
    }

    pub fn has_relationship(&self) -> bool {
        self.relationship.is_some()
    }

    // Param is passed by value, moved
    pub fn set_relationship(&mut self, v: u32) {
        self.relationship = ::std::option::Option::Some(v);
    }
}

impl ::protobuf::Message for CPublishedFile_RemoveAppRelationship_Request {
    fn is_initialized(&self) -> bool {
        true
    }

    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
        while !is.eof()? {
            let (field_number, wire_type) = is.read_tag_unpack()?;
            match field_number {
                1 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_uint64()?;
                    self.publishedfileid = ::std::option::Option::Some(tmp);
                },
                2 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_uint32()?;
                    self.appid = ::std::option::Option::Some(tmp);
                },
                3 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_uint32()?;
                    self.relationship = ::std::option::Option::Some(tmp);
                },
                _ => {
                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
                },
            };
        }
        ::std::result::Result::Ok(())
    }

    // Compute sizes of nested messages
    #[allow(unused_variables)]
    fn compute_size(&self) -> u32 {
        let mut my_size = 0;
        if let Some(v) = self.publishedfileid {
            my_size += ::protobuf::rt::value_size(1, v, ::protobuf::wire_format::WireTypeVarint);
        }
        if let Some(v) = self.appid {
            my_size += ::protobuf::rt::value_size(2, v, ::protobuf::wire_format::WireTypeVarint);
        }
        if let Some(v) = self.relationship {
            my_size += ::protobuf::rt::value_size(3, v, ::protobuf::wire_format::WireTypeVarint);
        }
        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
        self.cached_size.set(my_size);
        my_size
    }

    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
        if let Some(v) = self.publishedfileid {
            os.write_uint64(1, v)?;
        }
        if let Some(v) = self.appid {
            os.write_uint32(2, v)?;
        }
        if let Some(v) = self.relationship {
            os.write_uint32(3, v)?;
        }
        os.write_unknown_fields(self.get_unknown_fields())?;
        ::std::result::Result::Ok(())
    }

    fn get_cached_size(&self) -> u32 {
        self.cached_size.get()
    }

    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
        &self.unknown_fields
    }

    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
        &mut self.unknown_fields
    }

    fn as_any(&self) -> &dyn (::std::any::Any) {
        self as &dyn (::std::any::Any)
    }
    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
        self as &mut dyn (::std::any::Any)
    }
    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
        self
    }

    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
        Self::descriptor_static()
    }

    fn new() -> CPublishedFile_RemoveAppRelationship_Request {
        CPublishedFile_RemoveAppRelationship_Request::new()
    }

    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
        descriptor.get(|| {
            let mut fields = ::std::vec::Vec::new();
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeUint64>(
                "publishedfileid",
                |m: &CPublishedFile_RemoveAppRelationship_Request| { &m.publishedfileid },
                |m: &mut CPublishedFile_RemoveAppRelationship_Request| { &mut m.publishedfileid },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeUint32>(
                "appid",
                |m: &CPublishedFile_RemoveAppRelationship_Request| { &m.appid },
                |m: &mut CPublishedFile_RemoveAppRelationship_Request| { &mut m.appid },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeUint32>(
                "relationship",
                |m: &CPublishedFile_RemoveAppRelationship_Request| { &m.relationship },
                |m: &mut CPublishedFile_RemoveAppRelationship_Request| { &mut m.relationship },
            ));
            ::protobuf::reflect::MessageDescriptor::new_pb_name::<CPublishedFile_RemoveAppRelationship_Request>(
                "CPublishedFile_RemoveAppRelationship_Request",
                fields,
                file_descriptor_proto()
            )
        })
    }

    fn default_instance() -> &'static CPublishedFile_RemoveAppRelationship_Request {
        static instance: ::protobuf::rt::LazyV2<CPublishedFile_RemoveAppRelationship_Request> = ::protobuf::rt::LazyV2::INIT;
        instance.get(CPublishedFile_RemoveAppRelationship_Request::new)
    }
}

impl ::protobuf::Clear for CPublishedFile_RemoveAppRelationship_Request {
    fn clear(&mut self) {
        self.publishedfileid = ::std::option::Option::None;
        self.appid = ::std::option::Option::None;
        self.relationship = ::std::option::Option::None;
        self.unknown_fields.clear();
    }
}

impl ::std::fmt::Debug for CPublishedFile_RemoveAppRelationship_Request {
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
        ::protobuf::text_format::fmt(self, f)
    }
}

impl ::protobuf::reflect::ProtobufValue for CPublishedFile_RemoveAppRelationship_Request {
    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
        ::protobuf::reflect::ReflectValueRef::Message(self)
    }
}

#[derive(PartialEq,Clone,Default)]
pub struct CPublishedFile_RemoveAppRelationship_Response {
    // special fields
    pub unknown_fields: ::protobuf::UnknownFields,
    pub cached_size: ::protobuf::CachedSize,
}

impl<'a> ::std::default::Default for &'a CPublishedFile_RemoveAppRelationship_Response {
    fn default() -> &'a CPublishedFile_RemoveAppRelationship_Response {
        <CPublishedFile_RemoveAppRelationship_Response as ::protobuf::Message>::default_instance()
    }
}

impl CPublishedFile_RemoveAppRelationship_Response {
    pub fn new() -> CPublishedFile_RemoveAppRelationship_Response {
        ::std::default::Default::default()
    }
}

impl ::protobuf::Message for CPublishedFile_RemoveAppRelationship_Response {
    fn is_initialized(&self) -> bool {
        true
    }

    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
        while !is.eof()? {
            let (field_number, wire_type) = is.read_tag_unpack()?;
            match field_number {
                _ => {
                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
                },
            };
        }
        ::std::result::Result::Ok(())
    }

    // Compute sizes of nested messages
    #[allow(unused_variables)]
    fn compute_size(&self) -> u32 {
        let mut my_size = 0;
        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
        self.cached_size.set(my_size);
        my_size
    }

    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
        os.write_unknown_fields(self.get_unknown_fields())?;
        ::std::result::Result::Ok(())
    }

    fn get_cached_size(&self) -> u32 {
        self.cached_size.get()
    }

    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
        &self.unknown_fields
    }

    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
        &mut self.unknown_fields
    }

    fn as_any(&self) -> &dyn (::std::any::Any) {
        self as &dyn (::std::any::Any)
    }
    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
        self as &mut dyn (::std::any::Any)
    }
    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
        self
    }

    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
        Self::descriptor_static()
    }

    fn new() -> CPublishedFile_RemoveAppRelationship_Response {
        CPublishedFile_RemoveAppRelationship_Response::new()
    }

    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
        descriptor.get(|| {
            let fields = ::std::vec::Vec::new();
            ::protobuf::reflect::MessageDescriptor::new_pb_name::<CPublishedFile_RemoveAppRelationship_Response>(
                "CPublishedFile_RemoveAppRelationship_Response",
                fields,
                file_descriptor_proto()
            )
        })
    }

    fn default_instance() -> &'static CPublishedFile_RemoveAppRelationship_Response {
        static instance: ::protobuf::rt::LazyV2<CPublishedFile_RemoveAppRelationship_Response> = ::protobuf::rt::LazyV2::INIT;
        instance.get(CPublishedFile_RemoveAppRelationship_Response::new)
    }
}

impl ::protobuf::Clear for CPublishedFile_RemoveAppRelationship_Response {
    fn clear(&mut self) {
        self.unknown_fields.clear();
    }
}

impl ::std::fmt::Debug for CPublishedFile_RemoveAppRelationship_Response {
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
        ::protobuf::text_format::fmt(self, f)
    }
}

impl ::protobuf::reflect::ProtobufValue for CPublishedFile_RemoveAppRelationship_Response {
    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
        ::protobuf::reflect::ReflectValueRef::Message(self)
    }
}

#[derive(PartialEq,Clone,Default)]
pub struct CPublishedFile_GetAppRelationships_Request {
    // message fields
    publishedfileid: ::std::option::Option<u64>,
    // special fields
    pub unknown_fields: ::protobuf::UnknownFields,
    pub cached_size: ::protobuf::CachedSize,
}

impl<'a> ::std::default::Default for &'a CPublishedFile_GetAppRelationships_Request {
    fn default() -> &'a CPublishedFile_GetAppRelationships_Request {
        <CPublishedFile_GetAppRelationships_Request as ::protobuf::Message>::default_instance()
    }
}

impl CPublishedFile_GetAppRelationships_Request {
    pub fn new() -> CPublishedFile_GetAppRelationships_Request {
        ::std::default::Default::default()
    }

    // optional uint64 publishedfileid = 1;


    pub fn get_publishedfileid(&self) -> u64 {
        self.publishedfileid.unwrap_or(0)
    }
    pub fn clear_publishedfileid(&mut self) {
        self.publishedfileid = ::std::option::Option::None;
    }

    pub fn has_publishedfileid(&self) -> bool {
        self.publishedfileid.is_some()
    }

    // Param is passed by value, moved
    pub fn set_publishedfileid(&mut self, v: u64) {
        self.publishedfileid = ::std::option::Option::Some(v);
    }
}

impl ::protobuf::Message for CPublishedFile_GetAppRelationships_Request {
    fn is_initialized(&self) -> bool {
        true
    }

    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
        while !is.eof()? {
            let (field_number, wire_type) = is.read_tag_unpack()?;
            match field_number {
                1 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_uint64()?;
                    self.publishedfileid = ::std::option::Option::Some(tmp);
                },
                _ => {
                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
                },
            };
        }
        ::std::result::Result::Ok(())
    }

    // Compute sizes of nested messages
    #[allow(unused_variables)]
    fn compute_size(&self) -> u32 {
        let mut my_size = 0;
        if let Some(v) = self.publishedfileid {
            my_size += ::protobuf::rt::value_size(1, v, ::protobuf::wire_format::WireTypeVarint);
        }
        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
        self.cached_size.set(my_size);
        my_size
    }

    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
        if let Some(v) = self.publishedfileid {
            os.write_uint64(1, v)?;
        }
        os.write_unknown_fields(self.get_unknown_fields())?;
        ::std::result::Result::Ok(())
    }

    fn get_cached_size(&self) -> u32 {
        self.cached_size.get()
    }

    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
        &self.unknown_fields
    }

    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
        &mut self.unknown_fields
    }

    fn as_any(&self) -> &dyn (::std::any::Any) {
        self as &dyn (::std::any::Any)
    }
    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
        self as &mut dyn (::std::any::Any)
    }
    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
        self
    }

    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
        Self::descriptor_static()
    }

    fn new() -> CPublishedFile_GetAppRelationships_Request {
        CPublishedFile_GetAppRelationships_Request::new()
    }

    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
        descriptor.get(|| {
            let mut fields = ::std::vec::Vec::new();
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeUint64>(
                "publishedfileid",
                |m: &CPublishedFile_GetAppRelationships_Request| { &m.publishedfileid },
                |m: &mut CPublishedFile_GetAppRelationships_Request| { &mut m.publishedfileid },
            ));
            ::protobuf::reflect::MessageDescriptor::new_pb_name::<CPublishedFile_GetAppRelationships_Request>(
                "CPublishedFile_GetAppRelationships_Request",
                fields,
                file_descriptor_proto()
            )
        })
    }

    fn default_instance() -> &'static CPublishedFile_GetAppRelationships_Request {
        static instance: ::protobuf::rt::LazyV2<CPublishedFile_GetAppRelationships_Request> = ::protobuf::rt::LazyV2::INIT;
        instance.get(CPublishedFile_GetAppRelationships_Request::new)
    }
}

impl ::protobuf::Clear for CPublishedFile_GetAppRelationships_Request {
    fn clear(&mut self) {
        self.publishedfileid = ::std::option::Option::None;
        self.unknown_fields.clear();
    }
}

impl ::std::fmt::Debug for CPublishedFile_GetAppRelationships_Request {
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
        ::protobuf::text_format::fmt(self, f)
    }
}

impl ::protobuf::reflect::ProtobufValue for CPublishedFile_GetAppRelationships_Request {
    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
        ::protobuf::reflect::ReflectValueRef::Message(self)
    }
}

#[derive(PartialEq,Clone,Default)]
pub struct CPublishedFile_GetAppRelationships_Response {
    // message fields
    pub app_relationships: ::protobuf::RepeatedField<CPublishedFile_GetAppRelationships_Response_AppRelationship>,
    // special fields
    pub unknown_fields: ::protobuf::UnknownFields,
    pub cached_size: ::protobuf::CachedSize,
}

impl<'a> ::std::default::Default for &'a CPublishedFile_GetAppRelationships_Response {
    fn default() -> &'a CPublishedFile_GetAppRelationships_Response {
        <CPublishedFile_GetAppRelationships_Response as ::protobuf::Message>::default_instance()
    }
}

impl CPublishedFile_GetAppRelationships_Response {
    pub fn new() -> CPublishedFile_GetAppRelationships_Response {
        ::std::default::Default::default()
    }

    // repeated .CPublishedFile_GetAppRelationships_Response.AppRelationship app_relationships = 3;


    pub fn get_app_relationships(&self) -> &[CPublishedFile_GetAppRelationships_Response_AppRelationship] {
        &self.app_relationships
    }
    pub fn clear_app_relationships(&mut self) {
        self.app_relationships.clear();
    }

    // Param is passed by value, moved
    pub fn set_app_relationships(&mut self, v: ::protobuf::RepeatedField<CPublishedFile_GetAppRelationships_Response_AppRelationship>) {
        self.app_relationships = v;
    }

    // Mutable pointer to the field.
    pub fn mut_app_relationships(&mut self) -> &mut ::protobuf::RepeatedField<CPublishedFile_GetAppRelationships_Response_AppRelationship> {
        &mut self.app_relationships
    }

    // Take field
    pub fn take_app_relationships(&mut self) -> ::protobuf::RepeatedField<CPublishedFile_GetAppRelationships_Response_AppRelationship> {
        ::std::mem::replace(&mut self.app_relationships, ::protobuf::RepeatedField::new())
    }
}

impl ::protobuf::Message for CPublishedFile_GetAppRelationships_Response {
    fn is_initialized(&self) -> bool {
        for v in &self.app_relationships {
            if !v.is_initialized() {
                return false;
            }
        };
        true
    }

    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
        while !is.eof()? {
            let (field_number, wire_type) = is.read_tag_unpack()?;
            match field_number {
                3 => {
                    ::protobuf::rt::read_repeated_message_into(wire_type, is, &mut self.app_relationships)?;
                },
                _ => {
                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
                },
            };
        }
        ::std::result::Result::Ok(())
    }

    // Compute sizes of nested messages
    #[allow(unused_variables)]
    fn compute_size(&self) -> u32 {
        let mut my_size = 0;
        for value in &self.app_relationships {
            let len = value.compute_size();
            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
        };
        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
        self.cached_size.set(my_size);
        my_size
    }

    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
        for v in &self.app_relationships {
            os.write_tag(3, ::protobuf::wire_format::WireTypeLengthDelimited)?;
            os.write_raw_varint32(v.get_cached_size())?;
            v.write_to_with_cached_sizes(os)?;
        };
        os.write_unknown_fields(self.get_unknown_fields())?;
        ::std::result::Result::Ok(())
    }

    fn get_cached_size(&self) -> u32 {
        self.cached_size.get()
    }

    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
        &self.unknown_fields
    }

    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
        &mut self.unknown_fields
    }

    fn as_any(&self) -> &dyn (::std::any::Any) {
        self as &dyn (::std::any::Any)
    }
    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
        self as &mut dyn (::std::any::Any)
    }
    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
        self
    }

    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
        Self::descriptor_static()
    }

    fn new() -> CPublishedFile_GetAppRelationships_Response {
        CPublishedFile_GetAppRelationships_Response::new()
    }

    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
        descriptor.get(|| {
            let mut fields = ::std::vec::Vec::new();
            fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<CPublishedFile_GetAppRelationships_Response_AppRelationship>>(
                "app_relationships",
                |m: &CPublishedFile_GetAppRelationships_Response| { &m.app_relationships },
                |m: &mut CPublishedFile_GetAppRelationships_Response| { &mut m.app_relationships },
            ));
            ::protobuf::reflect::MessageDescriptor::new_pb_name::<CPublishedFile_GetAppRelationships_Response>(
                "CPublishedFile_GetAppRelationships_Response",
                fields,
                file_descriptor_proto()
            )
        })
    }

    fn default_instance() -> &'static CPublishedFile_GetAppRelationships_Response {
        static instance: ::protobuf::rt::LazyV2<CPublishedFile_GetAppRelationships_Response> = ::protobuf::rt::LazyV2::INIT;
        instance.get(CPublishedFile_GetAppRelationships_Response::new)
    }
}

impl ::protobuf::Clear for CPublishedFile_GetAppRelationships_Response {
    fn clear(&mut self) {
        self.app_relationships.clear();
        self.unknown_fields.clear();
    }
}

impl ::std::fmt::Debug for CPublishedFile_GetAppRelationships_Response {
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
        ::protobuf::text_format::fmt(self, f)
    }
}

impl ::protobuf::reflect::ProtobufValue for CPublishedFile_GetAppRelationships_Response {
    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
        ::protobuf::reflect::ReflectValueRef::Message(self)
    }
}

#[derive(PartialEq,Clone,Default)]
pub struct CPublishedFile_GetAppRelationships_Response_AppRelationship {
    // message fields
    appid: ::std::option::Option<u32>,
    relationship: ::std::option::Option<u32>,
    // special fields
    pub unknown_fields: ::protobuf::UnknownFields,
    pub cached_size: ::protobuf::CachedSize,
}

impl<'a> ::std::default::Default for &'a CPublishedFile_GetAppRelationships_Response_AppRelationship {
    fn default() -> &'a CPublishedFile_GetAppRelationships_Response_AppRelationship {
        <CPublishedFile_GetAppRelationships_Response_AppRelationship as ::protobuf::Message>::default_instance()
    }
}

impl CPublishedFile_GetAppRelationships_Response_AppRelationship {
    pub fn new() -> CPublishedFile_GetAppRelationships_Response_AppRelationship {
        ::std::default::Default::default()
    }

    // optional uint32 appid = 1;


    pub fn get_appid(&self) -> u32 {
        self.appid.unwrap_or(0)
    }
    pub fn clear_appid(&mut self) {
        self.appid = ::std::option::Option::None;
    }

    pub fn has_appid(&self) -> bool {
        self.appid.is_some()
    }

    // Param is passed by value, moved
    pub fn set_appid(&mut self, v: u32) {
        self.appid = ::std::option::Option::Some(v);
    }

    // optional uint32 relationship = 2;


    pub fn get_relationship(&self) -> u32 {
        self.relationship.unwrap_or(0)
    }
    pub fn clear_relationship(&mut self) {
        self.relationship = ::std::option::Option::None;
    }

    pub fn has_relationship(&self) -> bool {
        self.relationship.is_some()
    }

    // Param is passed by value, moved
    pub fn set_relationship(&mut self, v: u32) {
        self.relationship = ::std::option::Option::Some(v);
    }
}

impl ::protobuf::Message for CPublishedFile_GetAppRelationships_Response_AppRelationship {
    fn is_initialized(&self) -> bool {
        true
    }

    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
        while !is.eof()? {
            let (field_number, wire_type) = is.read_tag_unpack()?;
            match field_number {
                1 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_uint32()?;
                    self.appid = ::std::option::Option::Some(tmp);
                },
                2 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_uint32()?;
                    self.relationship = ::std::option::Option::Some(tmp);
                },
                _ => {
                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
                },
            };
        }
        ::std::result::Result::Ok(())
    }

    // Compute sizes of nested messages
    #[allow(unused_variables)]
    fn compute_size(&self) -> u32 {
        let mut my_size = 0;
        if let Some(v) = self.appid {
            my_size += ::protobuf::rt::value_size(1, v, ::protobuf::wire_format::WireTypeVarint);
        }
        if let Some(v) = self.relationship {
            my_size += ::protobuf::rt::value_size(2, v, ::protobuf::wire_format::WireTypeVarint);
        }
        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
        self.cached_size.set(my_size);
        my_size
    }

    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
        if let Some(v) = self.appid {
            os.write_uint32(1, v)?;
        }
        if let Some(v) = self.relationship {
            os.write_uint32(2, v)?;
        }
        os.write_unknown_fields(self.get_unknown_fields())?;
        ::std::result::Result::Ok(())
    }

    fn get_cached_size(&self) -> u32 {
        self.cached_size.get()
    }

    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
        &self.unknown_fields
    }

    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
        &mut self.unknown_fields
    }

    fn as_any(&self) -> &dyn (::std::any::Any) {
        self as &dyn (::std::any::Any)
    }
    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
        self as &mut dyn (::std::any::Any)
    }
    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
        self
    }

    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
        Self::descriptor_static()
    }

    fn new() -> CPublishedFile_GetAppRelationships_Response_AppRelationship {
        CPublishedFile_GetAppRelationships_Response_AppRelationship::new()
    }

    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
        descriptor.get(|| {
            let mut fields = ::std::vec::Vec::new();
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeUint32>(
                "appid",
                |m: &CPublishedFile_GetAppRelationships_Response_AppRelationship| { &m.appid },
                |m: &mut CPublishedFile_GetAppRelationships_Response_AppRelationship| { &mut m.appid },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeUint32>(
                "relationship",
                |m: &CPublishedFile_GetAppRelationships_Response_AppRelationship| { &m.relationship },
                |m: &mut CPublishedFile_GetAppRelationships_Response_AppRelationship| { &mut m.relationship },
            ));
            ::protobuf::reflect::MessageDescriptor::new_pb_name::<CPublishedFile_GetAppRelationships_Response_AppRelationship>(
                "CPublishedFile_GetAppRelationships_Response.AppRelationship",
                fields,
                file_descriptor_proto()
            )
        })
    }

    fn default_instance() -> &'static CPublishedFile_GetAppRelationships_Response_AppRelationship {
        static instance: ::protobuf::rt::LazyV2<CPublishedFile_GetAppRelationships_Response_AppRelationship> = ::protobuf::rt::LazyV2::INIT;
        instance.get(CPublishedFile_GetAppRelationships_Response_AppRelationship::new)
    }
}

impl ::protobuf::Clear for CPublishedFile_GetAppRelationships_Response_AppRelationship {
    fn clear(&mut self) {
        self.appid = ::std::option::Option::None;
        self.relationship = ::std::option::Option::None;
        self.unknown_fields.clear();
    }
}

impl ::std::fmt::Debug for CPublishedFile_GetAppRelationships_Response_AppRelationship {
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
        ::protobuf::text_format::fmt(self, f)
    }
}

impl ::protobuf::reflect::ProtobufValue for CPublishedFile_GetAppRelationships_Response_AppRelationship {
    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
        ::protobuf::reflect::ReflectValueRef::Message(self)
    }
}

#[derive(PartialEq,Clone,Default)]
pub struct CPublishedFile_StartPlaytimeTracking_Request {
    // message fields
    appid: ::std::option::Option<u32>,
    pub publishedfileids: ::std::vec::Vec<u64>,
    // special fields
    pub unknown_fields: ::protobuf::UnknownFields,
    pub cached_size: ::protobuf::CachedSize,
}

impl<'a> ::std::default::Default for &'a CPublishedFile_StartPlaytimeTracking_Request {
    fn default() -> &'a CPublishedFile_StartPlaytimeTracking_Request {
        <CPublishedFile_StartPlaytimeTracking_Request as ::protobuf::Message>::default_instance()
    }
}

impl CPublishedFile_StartPlaytimeTracking_Request {
    pub fn new() -> CPublishedFile_StartPlaytimeTracking_Request {
        ::std::default::Default::default()
    }

    // optional uint32 appid = 1;


    pub fn get_appid(&self) -> u32 {
        self.appid.unwrap_or(0)
    }
    pub fn clear_appid(&mut self) {
        self.appid = ::std::option::Option::None;
    }

    pub fn has_appid(&self) -> bool {
        self.appid.is_some()
    }

    // Param is passed by value, moved
    pub fn set_appid(&mut self, v: u32) {
        self.appid = ::std::option::Option::Some(v);
    }

    // repeated uint64 publishedfileids = 2;


    pub fn get_publishedfileids(&self) -> &[u64] {
        &self.publishedfileids
    }
    pub fn clear_publishedfileids(&mut self) {
        self.publishedfileids.clear();
    }

    // Param is passed by value, moved
    pub fn set_publishedfileids(&mut self, v: ::std::vec::Vec<u64>) {
        self.publishedfileids = v;
    }

    // Mutable pointer to the field.
    pub fn mut_publishedfileids(&mut self) -> &mut ::std::vec::Vec<u64> {
        &mut self.publishedfileids
    }

    // Take field
    pub fn take_publishedfileids(&mut self) -> ::std::vec::Vec<u64> {
        ::std::mem::replace(&mut self.publishedfileids, ::std::vec::Vec::new())
    }
}

impl ::protobuf::Message for CPublishedFile_StartPlaytimeTracking_Request {
    fn is_initialized(&self) -> bool {
        true
    }

    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
        while !is.eof()? {
            let (field_number, wire_type) = is.read_tag_unpack()?;
            match field_number {
                1 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_uint32()?;
                    self.appid = ::std::option::Option::Some(tmp);
                },
                2 => {
                    ::protobuf::rt::read_repeated_uint64_into(wire_type, is, &mut self.publishedfileids)?;
                },
                _ => {
                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
                },
            };
        }
        ::std::result::Result::Ok(())
    }

    // Compute sizes of nested messages
    #[allow(unused_variables)]
    fn compute_size(&self) -> u32 {
        let mut my_size = 0;
        if let Some(v) = self.appid {
            my_size += ::protobuf::rt::value_size(1, v, ::protobuf::wire_format::WireTypeVarint);
        }
        for value in &self.publishedfileids {
            my_size += ::protobuf::rt::value_size(2, *value, ::protobuf::wire_format::WireTypeVarint);
        };
        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
        self.cached_size.set(my_size);
        my_size
    }

    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
        if let Some(v) = self.appid {
            os.write_uint32(1, v)?;
        }
        for v in &self.publishedfileids {
            os.write_uint64(2, *v)?;
        };
        os.write_unknown_fields(self.get_unknown_fields())?;
        ::std::result::Result::Ok(())
    }

    fn get_cached_size(&self) -> u32 {
        self.cached_size.get()
    }

    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
        &self.unknown_fields
    }

    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
        &mut self.unknown_fields
    }

    fn as_any(&self) -> &dyn (::std::any::Any) {
        self as &dyn (::std::any::Any)
    }
    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
        self as &mut dyn (::std::any::Any)
    }
    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
        self
    }

    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
        Self::descriptor_static()
    }

    fn new() -> CPublishedFile_StartPlaytimeTracking_Request {
        CPublishedFile_StartPlaytimeTracking_Request::new()
    }

    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
        descriptor.get(|| {
            let mut fields = ::std::vec::Vec::new();
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeUint32>(
                "appid",
                |m: &CPublishedFile_StartPlaytimeTracking_Request| { &m.appid },
                |m: &mut CPublishedFile_StartPlaytimeTracking_Request| { &mut m.appid },
            ));
            fields.push(::protobuf::reflect::accessor::make_vec_accessor::<_, ::protobuf::types::ProtobufTypeUint64>(
                "publishedfileids",
                |m: &CPublishedFile_StartPlaytimeTracking_Request| { &m.publishedfileids },
                |m: &mut CPublishedFile_StartPlaytimeTracking_Request| { &mut m.publishedfileids },
            ));
            ::protobuf::reflect::MessageDescriptor::new_pb_name::<CPublishedFile_StartPlaytimeTracking_Request>(
                "CPublishedFile_StartPlaytimeTracking_Request",
                fields,
                file_descriptor_proto()
            )
        })
    }

    fn default_instance() -> &'static CPublishedFile_StartPlaytimeTracking_Request {
        static instance: ::protobuf::rt::LazyV2<CPublishedFile_StartPlaytimeTracking_Request> = ::protobuf::rt::LazyV2::INIT;
        instance.get(CPublishedFile_StartPlaytimeTracking_Request::new)
    }
}

impl ::protobuf::Clear for CPublishedFile_StartPlaytimeTracking_Request {
    fn clear(&mut self) {
        self.appid = ::std::option::Option::None;
        self.publishedfileids.clear();
        self.unknown_fields.clear();
    }
}

impl ::std::fmt::Debug for CPublishedFile_StartPlaytimeTracking_Request {
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
        ::protobuf::text_format::fmt(self, f)
    }
}

impl ::protobuf::reflect::ProtobufValue for CPublishedFile_StartPlaytimeTracking_Request {
    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
        ::protobuf::reflect::ReflectValueRef::Message(self)
    }
}

#[derive(PartialEq,Clone,Default)]
pub struct CPublishedFile_StartPlaytimeTracking_Response {
    // special fields
    pub unknown_fields: ::protobuf::UnknownFields,
    pub cached_size: ::protobuf::CachedSize,
}

impl<'a> ::std::default::Default for &'a CPublishedFile_StartPlaytimeTracking_Response {
    fn default() -> &'a CPublishedFile_StartPlaytimeTracking_Response {
        <CPublishedFile_StartPlaytimeTracking_Response as ::protobuf::Message>::default_instance()
    }
}

impl CPublishedFile_StartPlaytimeTracking_Response {
    pub fn new() -> CPublishedFile_StartPlaytimeTracking_Response {
        ::std::default::Default::default()
    }
}

impl ::protobuf::Message for CPublishedFile_StartPlaytimeTracking_Response {
    fn is_initialized(&self) -> bool {
        true
    }

    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
        while !is.eof()? {
            let (field_number, wire_type) = is.read_tag_unpack()?;
            match field_number {
                _ => {
                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
                },
            };
        }
        ::std::result::Result::Ok(())
    }

    // Compute sizes of nested messages
    #[allow(unused_variables)]
    fn compute_size(&self) -> u32 {
        let mut my_size = 0;
        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
        self.cached_size.set(my_size);
        my_size
    }

    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
        os.write_unknown_fields(self.get_unknown_fields())?;
        ::std::result::Result::Ok(())
    }

    fn get_cached_size(&self) -> u32 {
        self.cached_size.get()
    }

    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
        &self.unknown_fields
    }

    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
        &mut self.unknown_fields
    }

    fn as_any(&self) -> &dyn (::std::any::Any) {
        self as &dyn (::std::any::Any)
    }
    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
        self as &mut dyn (::std::any::Any)
    }
    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
        self
    }

    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
        Self::descriptor_static()
    }

    fn new() -> CPublishedFile_StartPlaytimeTracking_Response {
        CPublishedFile_StartPlaytimeTracking_Response::new()
    }

    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
        descriptor.get(|| {
            let fields = ::std::vec::Vec::new();
            ::protobuf::reflect::MessageDescriptor::new_pb_name::<CPublishedFile_StartPlaytimeTracking_Response>(
                "CPublishedFile_StartPlaytimeTracking_Response",
                fields,
                file_descriptor_proto()
            )
        })
    }

    fn default_instance() -> &'static CPublishedFile_StartPlaytimeTracking_Response {
        static instance: ::protobuf::rt::LazyV2<CPublishedFile_StartPlaytimeTracking_Response> = ::protobuf::rt::LazyV2::INIT;
        instance.get(CPublishedFile_StartPlaytimeTracking_Response::new)
    }
}

impl ::protobuf::Clear for CPublishedFile_StartPlaytimeTracking_Response {
    fn clear(&mut self) {
        self.unknown_fields.clear();
    }
}

impl ::std::fmt::Debug for CPublishedFile_StartPlaytimeTracking_Response {
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
        ::protobuf::text_format::fmt(self, f)
    }
}

impl ::protobuf::reflect::ProtobufValue for CPublishedFile_StartPlaytimeTracking_Response {
    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
        ::protobuf::reflect::ReflectValueRef::Message(self)
    }
}

#[derive(PartialEq,Clone,Default)]
pub struct CPublishedFile_StopPlaytimeTracking_Request {
    // message fields
    appid: ::std::option::Option<u32>,
    pub publishedfileids: ::std::vec::Vec<u64>,
    // special fields
    pub unknown_fields: ::protobuf::UnknownFields,
    pub cached_size: ::protobuf::CachedSize,
}

impl<'a> ::std::default::Default for &'a CPublishedFile_StopPlaytimeTracking_Request {
    fn default() -> &'a CPublishedFile_StopPlaytimeTracking_Request {
        <CPublishedFile_StopPlaytimeTracking_Request as ::protobuf::Message>::default_instance()
    }
}

impl CPublishedFile_StopPlaytimeTracking_Request {
    pub fn new() -> CPublishedFile_StopPlaytimeTracking_Request {
        ::std::default::Default::default()
    }

    // optional uint32 appid = 1;


    pub fn get_appid(&self) -> u32 {
        self.appid.unwrap_or(0)
    }
    pub fn clear_appid(&mut self) {
        self.appid = ::std::option::Option::None;
    }

    pub fn has_appid(&self) -> bool {
        self.appid.is_some()
    }

    // Param is passed by value, moved
    pub fn set_appid(&mut self, v: u32) {
        self.appid = ::std::option::Option::Some(v);
    }

    // repeated uint64 publishedfileids = 2;


    pub fn get_publishedfileids(&self) -> &[u64] {
        &self.publishedfileids
    }
    pub fn clear_publishedfileids(&mut self) {
        self.publishedfileids.clear();
    }

    // Param is passed by value, moved
    pub fn set_publishedfileids(&mut self, v: ::std::vec::Vec<u64>) {
        self.publishedfileids = v;
    }

    // Mutable pointer to the field.
    pub fn mut_publishedfileids(&mut self) -> &mut ::std::vec::Vec<u64> {
        &mut self.publishedfileids
    }

    // Take field
    pub fn take_publishedfileids(&mut self) -> ::std::vec::Vec<u64> {
        ::std::mem::replace(&mut self.publishedfileids, ::std::vec::Vec::new())
    }
}

impl ::protobuf::Message for CPublishedFile_StopPlaytimeTracking_Request {
    fn is_initialized(&self) -> bool {
        true
    }

    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
        while !is.eof()? {
            let (field_number, wire_type) = is.read_tag_unpack()?;
            match field_number {
                1 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_uint32()?;
                    self.appid = ::std::option::Option::Some(tmp);
                },
                2 => {
                    ::protobuf::rt::read_repeated_uint64_into(wire_type, is, &mut self.publishedfileids)?;
                },
                _ => {
                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
                },
            };
        }
        ::std::result::Result::Ok(())
    }

    // Compute sizes of nested messages
    #[allow(unused_variables)]
    fn compute_size(&self) -> u32 {
        let mut my_size = 0;
        if let Some(v) = self.appid {
            my_size += ::protobuf::rt::value_size(1, v, ::protobuf::wire_format::WireTypeVarint);
        }
        for value in &self.publishedfileids {
            my_size += ::protobuf::rt::value_size(2, *value, ::protobuf::wire_format::WireTypeVarint);
        };
        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
        self.cached_size.set(my_size);
        my_size
    }

    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
        if let Some(v) = self.appid {
            os.write_uint32(1, v)?;
        }
        for v in &self.publishedfileids {
            os.write_uint64(2, *v)?;
        };
        os.write_unknown_fields(self.get_unknown_fields())?;
        ::std::result::Result::Ok(())
    }

    fn get_cached_size(&self) -> u32 {
        self.cached_size.get()
    }

    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
        &self.unknown_fields
    }

    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
        &mut self.unknown_fields
    }

    fn as_any(&self) -> &dyn (::std::any::Any) {
        self as &dyn (::std::any::Any)
    }
    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
        self as &mut dyn (::std::any::Any)
    }
    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
        self
    }

    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
        Self::descriptor_static()
    }

    fn new() -> CPublishedFile_StopPlaytimeTracking_Request {
        CPublishedFile_StopPlaytimeTracking_Request::new()
    }

    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
        descriptor.get(|| {
            let mut fields = ::std::vec::Vec::new();
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeUint32>(
                "appid",
                |m: &CPublishedFile_StopPlaytimeTracking_Request| { &m.appid },
                |m: &mut CPublishedFile_StopPlaytimeTracking_Request| { &mut m.appid },
            ));
            fields.push(::protobuf::reflect::accessor::make_vec_accessor::<_, ::protobuf::types::ProtobufTypeUint64>(
                "publishedfileids",
                |m: &CPublishedFile_StopPlaytimeTracking_Request| { &m.publishedfileids },
                |m: &mut CPublishedFile_StopPlaytimeTracking_Request| { &mut m.publishedfileids },
            ));
            ::protobuf::reflect::MessageDescriptor::new_pb_name::<CPublishedFile_StopPlaytimeTracking_Request>(
                "CPublishedFile_StopPlaytimeTracking_Request",
                fields,
                file_descriptor_proto()
            )
        })
    }

    fn default_instance() -> &'static CPublishedFile_StopPlaytimeTracking_Request {
        static instance: ::protobuf::rt::LazyV2<CPublishedFile_StopPlaytimeTracking_Request> = ::protobuf::rt::LazyV2::INIT;
        instance.get(CPublishedFile_StopPlaytimeTracking_Request::new)
    }
}

impl ::protobuf::Clear for CPublishedFile_StopPlaytimeTracking_Request {
    fn clear(&mut self) {
        self.appid = ::std::option::Option::None;
        self.publishedfileids.clear();
        self.unknown_fields.clear();
    }
}

impl ::std::fmt::Debug for CPublishedFile_StopPlaytimeTracking_Request {
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
        ::protobuf::text_format::fmt(self, f)
    }
}

impl ::protobuf::reflect::ProtobufValue for CPublishedFile_StopPlaytimeTracking_Request {
    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
        ::protobuf::reflect::ReflectValueRef::Message(self)
    }
}

#[derive(PartialEq,Clone,Default)]
pub struct CPublishedFile_StopPlaytimeTracking_Response {
    // special fields
    pub unknown_fields: ::protobuf::UnknownFields,
    pub cached_size: ::protobuf::CachedSize,
}

impl<'a> ::std::default::Default for &'a CPublishedFile_StopPlaytimeTracking_Response {
    fn default() -> &'a CPublishedFile_StopPlaytimeTracking_Response {
        <CPublishedFile_StopPlaytimeTracking_Response as ::protobuf::Message>::default_instance()
    }
}

impl CPublishedFile_StopPlaytimeTracking_Response {
    pub fn new() -> CPublishedFile_StopPlaytimeTracking_Response {
        ::std::default::Default::default()
    }
}

impl ::protobuf::Message for CPublishedFile_StopPlaytimeTracking_Response {
    fn is_initialized(&self) -> bool {
        true
    }

    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
        while !is.eof()? {
            let (field_number, wire_type) = is.read_tag_unpack()?;
            match field_number {
                _ => {
                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
                },
            };
        }
        ::std::result::Result::Ok(())
    }

    // Compute sizes of nested messages
    #[allow(unused_variables)]
    fn compute_size(&self) -> u32 {
        let mut my_size = 0;
        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
        self.cached_size.set(my_size);
        my_size
    }

    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
        os.write_unknown_fields(self.get_unknown_fields())?;
        ::std::result::Result::Ok(())
    }

    fn get_cached_size(&self) -> u32 {
        self.cached_size.get()
    }

    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
        &self.unknown_fields
    }

    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
        &mut self.unknown_fields
    }

    fn as_any(&self) -> &dyn (::std::any::Any) {
        self as &dyn (::std::any::Any)
    }
    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
        self as &mut dyn (::std::any::Any)
    }
    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
        self
    }

    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
        Self::descriptor_static()
    }

    fn new() -> CPublishedFile_StopPlaytimeTracking_Response {
        CPublishedFile_StopPlaytimeTracking_Response::new()
    }

    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
        descriptor.get(|| {
            let fields = ::std::vec::Vec::new();
            ::protobuf::reflect::MessageDescriptor::new_pb_name::<CPublishedFile_StopPlaytimeTracking_Response>(
                "CPublishedFile_StopPlaytimeTracking_Response",
                fields,
                file_descriptor_proto()
            )
        })
    }

    fn default_instance() -> &'static CPublishedFile_StopPlaytimeTracking_Response {
        static instance: ::protobuf::rt::LazyV2<CPublishedFile_StopPlaytimeTracking_Response> = ::protobuf::rt::LazyV2::INIT;
        instance.get(CPublishedFile_StopPlaytimeTracking_Response::new)
    }
}

impl ::protobuf::Clear for CPublishedFile_StopPlaytimeTracking_Response {
    fn clear(&mut self) {
        self.unknown_fields.clear();
    }
}

impl ::std::fmt::Debug for CPublishedFile_StopPlaytimeTracking_Response {
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
        ::protobuf::text_format::fmt(self, f)
    }
}

impl ::protobuf::reflect::ProtobufValue for CPublishedFile_StopPlaytimeTracking_Response {
    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
        ::protobuf::reflect::ReflectValueRef::Message(self)
    }
}

#[derive(PartialEq,Clone,Default)]
pub struct CPublishedFile_StopPlaytimeTrackingForAllAppItems_Request {
    // message fields
    appid: ::std::option::Option<u32>,
    // special fields
    pub unknown_fields: ::protobuf::UnknownFields,
    pub cached_size: ::protobuf::CachedSize,
}

impl<'a> ::std::default::Default for &'a CPublishedFile_StopPlaytimeTrackingForAllAppItems_Request {
    fn default() -> &'a CPublishedFile_StopPlaytimeTrackingForAllAppItems_Request {
        <CPublishedFile_StopPlaytimeTrackingForAllAppItems_Request as ::protobuf::Message>::default_instance()
    }
}

impl CPublishedFile_StopPlaytimeTrackingForAllAppItems_Request {
    pub fn new() -> CPublishedFile_StopPlaytimeTrackingForAllAppItems_Request {
        ::std::default::Default::default()
    }

    // optional uint32 appid = 1;


    pub fn get_appid(&self) -> u32 {
        self.appid.unwrap_or(0)
    }
    pub fn clear_appid(&mut self) {
        self.appid = ::std::option::Option::None;
    }

    pub fn has_appid(&self) -> bool {
        self.appid.is_some()
    }

    // Param is passed by value, moved
    pub fn set_appid(&mut self, v: u32) {
        self.appid = ::std::option::Option::Some(v);
    }
}

impl ::protobuf::Message for CPublishedFile_StopPlaytimeTrackingForAllAppItems_Request {
    fn is_initialized(&self) -> bool {
        true
    }

    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
        while !is.eof()? {
            let (field_number, wire_type) = is.read_tag_unpack()?;
            match field_number {
                1 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_uint32()?;
                    self.appid = ::std::option::Option::Some(tmp);
                },
                _ => {
                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
                },
            };
        }
        ::std::result::Result::Ok(())
    }

    // Compute sizes of nested messages
    #[allow(unused_variables)]
    fn compute_size(&self) -> u32 {
        let mut my_size = 0;
        if let Some(v) = self.appid {
            my_size += ::protobuf::rt::value_size(1, v, ::protobuf::wire_format::WireTypeVarint);
        }
        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
        self.cached_size.set(my_size);
        my_size
    }

    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
        if let Some(v) = self.appid {
            os.write_uint32(1, v)?;
        }
        os.write_unknown_fields(self.get_unknown_fields())?;
        ::std::result::Result::Ok(())
    }

    fn get_cached_size(&self) -> u32 {
        self.cached_size.get()
    }

    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
        &self.unknown_fields
    }

    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
        &mut self.unknown_fields
    }

    fn as_any(&self) -> &dyn (::std::any::Any) {
        self as &dyn (::std::any::Any)
    }
    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
        self as &mut dyn (::std::any::Any)
    }
    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
        self
    }

    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
        Self::descriptor_static()
    }

    fn new() -> CPublishedFile_StopPlaytimeTrackingForAllAppItems_Request {
        CPublishedFile_StopPlaytimeTrackingForAllAppItems_Request::new()
    }

    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
        descriptor.get(|| {
            let mut fields = ::std::vec::Vec::new();
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeUint32>(
                "appid",
                |m: &CPublishedFile_StopPlaytimeTrackingForAllAppItems_Request| { &m.appid },
                |m: &mut CPublishedFile_StopPlaytimeTrackingForAllAppItems_Request| { &mut m.appid },
            ));
            ::protobuf::reflect::MessageDescriptor::new_pb_name::<CPublishedFile_StopPlaytimeTrackingForAllAppItems_Request>(
                "CPublishedFile_StopPlaytimeTrackingForAllAppItems_Request",
                fields,
                file_descriptor_proto()
            )
        })
    }

    fn default_instance() -> &'static CPublishedFile_StopPlaytimeTrackingForAllAppItems_Request {
        static instance: ::protobuf::rt::LazyV2<CPublishedFile_StopPlaytimeTrackingForAllAppItems_Request> = ::protobuf::rt::LazyV2::INIT;
        instance.get(CPublishedFile_StopPlaytimeTrackingForAllAppItems_Request::new)
    }
}

impl ::protobuf::Clear for CPublishedFile_StopPlaytimeTrackingForAllAppItems_Request {
    fn clear(&mut self) {
        self.appid = ::std::option::Option::None;
        self.unknown_fields.clear();
    }
}

impl ::std::fmt::Debug for CPublishedFile_StopPlaytimeTrackingForAllAppItems_Request {
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
        ::protobuf::text_format::fmt(self, f)
    }
}

impl ::protobuf::reflect::ProtobufValue for CPublishedFile_StopPlaytimeTrackingForAllAppItems_Request {
    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
        ::protobuf::reflect::ReflectValueRef::Message(self)
    }
}

#[derive(PartialEq,Clone,Default)]
pub struct CPublishedFile_StopPlaytimeTrackingForAllAppItems_Response {
    // special fields
    pub unknown_fields: ::protobuf::UnknownFields,
    pub cached_size: ::protobuf::CachedSize,
}

impl<'a> ::std::default::Default for &'a CPublishedFile_StopPlaytimeTrackingForAllAppItems_Response {
    fn default() -> &'a CPublishedFile_StopPlaytimeTrackingForAllAppItems_Response {
        <CPublishedFile_StopPlaytimeTrackingForAllAppItems_Response as ::protobuf::Message>::default_instance()
    }
}

impl CPublishedFile_StopPlaytimeTrackingForAllAppItems_Response {
    pub fn new() -> CPublishedFile_StopPlaytimeTrackingForAllAppItems_Response {
        ::std::default::Default::default()
    }
}

impl ::protobuf::Message for CPublishedFile_StopPlaytimeTrackingForAllAppItems_Response {
    fn is_initialized(&self) -> bool {
        true
    }

    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
        while !is.eof()? {
            let (field_number, wire_type) = is.read_tag_unpack()?;
            match field_number {
                _ => {
                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
                },
            };
        }
        ::std::result::Result::Ok(())
    }

    // Compute sizes of nested messages
    #[allow(unused_variables)]
    fn compute_size(&self) -> u32 {
        let mut my_size = 0;
        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
        self.cached_size.set(my_size);
        my_size
    }

    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
        os.write_unknown_fields(self.get_unknown_fields())?;
        ::std::result::Result::Ok(())
    }

    fn get_cached_size(&self) -> u32 {
        self.cached_size.get()
    }

    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
        &self.unknown_fields
    }

    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
        &mut self.unknown_fields
    }

    fn as_any(&self) -> &dyn (::std::any::Any) {
        self as &dyn (::std::any::Any)
    }
    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
        self as &mut dyn (::std::any::Any)
    }
    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
        self
    }

    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
        Self::descriptor_static()
    }

    fn new() -> CPublishedFile_StopPlaytimeTrackingForAllAppItems_Response {
        CPublishedFile_StopPlaytimeTrackingForAllAppItems_Response::new()
    }

    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
        descriptor.get(|| {
            let fields = ::std::vec::Vec::new();
            ::protobuf::reflect::MessageDescriptor::new_pb_name::<CPublishedFile_StopPlaytimeTrackingForAllAppItems_Response>(
                "CPublishedFile_StopPlaytimeTrackingForAllAppItems_Response",
                fields,
                file_descriptor_proto()
            )
        })
    }

    fn default_instance() -> &'static CPublishedFile_StopPlaytimeTrackingForAllAppItems_Response {
        static instance: ::protobuf::rt::LazyV2<CPublishedFile_StopPlaytimeTrackingForAllAppItems_Response> = ::protobuf::rt::LazyV2::INIT;
        instance.get(CPublishedFile_StopPlaytimeTrackingForAllAppItems_Response::new)
    }
}

impl ::protobuf::Clear for CPublishedFile_StopPlaytimeTrackingForAllAppItems_Response {
    fn clear(&mut self) {
        self.unknown_fields.clear();
    }
}

impl ::std::fmt::Debug for CPublishedFile_StopPlaytimeTrackingForAllAppItems_Response {
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
        ::protobuf::text_format::fmt(self, f)
    }
}

impl ::protobuf::reflect::ProtobufValue for CPublishedFile_StopPlaytimeTrackingForAllAppItems_Response {
    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
        ::protobuf::reflect::ReflectValueRef::Message(self)
    }
}

#[derive(PartialEq,Clone,Default)]
pub struct CPublishedFile_SetPlaytimeForControllerConfigs_Request {
    // message fields
    appid: ::std::option::Option<u32>,
    pub controller_config_usage: ::protobuf::RepeatedField<CPublishedFile_SetPlaytimeForControllerConfigs_Request_ControllerConfigUsage>,
    // special fields
    pub unknown_fields: ::protobuf::UnknownFields,
    pub cached_size: ::protobuf::CachedSize,
}

impl<'a> ::std::default::Default for &'a CPublishedFile_SetPlaytimeForControllerConfigs_Request {
    fn default() -> &'a CPublishedFile_SetPlaytimeForControllerConfigs_Request {
        <CPublishedFile_SetPlaytimeForControllerConfigs_Request as ::protobuf::Message>::default_instance()
    }
}

impl CPublishedFile_SetPlaytimeForControllerConfigs_Request {
    pub fn new() -> CPublishedFile_SetPlaytimeForControllerConfigs_Request {
        ::std::default::Default::default()
    }

    // optional uint32 appid = 1;


    pub fn get_appid(&self) -> u32 {
        self.appid.unwrap_or(0)
    }
    pub fn clear_appid(&mut self) {
        self.appid = ::std::option::Option::None;
    }

    pub fn has_appid(&self) -> bool {
        self.appid.is_some()
    }

    // Param is passed by value, moved
    pub fn set_appid(&mut self, v: u32) {
        self.appid = ::std::option::Option::Some(v);
    }

    // repeated .CPublishedFile_SetPlaytimeForControllerConfigs_Request.ControllerConfigUsage controller_config_usage = 2;


    pub fn get_controller_config_usage(&self) -> &[CPublishedFile_SetPlaytimeForControllerConfigs_Request_ControllerConfigUsage] {
        &self.controller_config_usage
    }
    pub fn clear_controller_config_usage(&mut self) {
        self.controller_config_usage.clear();
    }

    // Param is passed by value, moved
    pub fn set_controller_config_usage(&mut self, v: ::protobuf::RepeatedField<CPublishedFile_SetPlaytimeForControllerConfigs_Request_ControllerConfigUsage>) {
        self.controller_config_usage = v;
    }

    // Mutable pointer to the field.
    pub fn mut_controller_config_usage(&mut self) -> &mut ::protobuf::RepeatedField<CPublishedFile_SetPlaytimeForControllerConfigs_Request_ControllerConfigUsage> {
        &mut self.controller_config_usage
    }

    // Take field
    pub fn take_controller_config_usage(&mut self) -> ::protobuf::RepeatedField<CPublishedFile_SetPlaytimeForControllerConfigs_Request_ControllerConfigUsage> {
        ::std::mem::replace(&mut self.controller_config_usage, ::protobuf::RepeatedField::new())
    }
}

impl ::protobuf::Message for CPublishedFile_SetPlaytimeForControllerConfigs_Request {
    fn is_initialized(&self) -> bool {
        for v in &self.controller_config_usage {
            if !v.is_initialized() {
                return false;
            }
        };
        true
    }

    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
        while !is.eof()? {
            let (field_number, wire_type) = is.read_tag_unpack()?;
            match field_number {
                1 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_uint32()?;
                    self.appid = ::std::option::Option::Some(tmp);
                },
                2 => {
                    ::protobuf::rt::read_repeated_message_into(wire_type, is, &mut self.controller_config_usage)?;
                },
                _ => {
                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
                },
            };
        }
        ::std::result::Result::Ok(())
    }

    // Compute sizes of nested messages
    #[allow(unused_variables)]
    fn compute_size(&self) -> u32 {
        let mut my_size = 0;
        if let Some(v) = self.appid {
            my_size += ::protobuf::rt::value_size(1, v, ::protobuf::wire_format::WireTypeVarint);
        }
        for value in &self.controller_config_usage {
            let len = value.compute_size();
            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
        };
        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
        self.cached_size.set(my_size);
        my_size
    }

    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
        if let Some(v) = self.appid {
            os.write_uint32(1, v)?;
        }
        for v in &self.controller_config_usage {
            os.write_tag(2, ::protobuf::wire_format::WireTypeLengthDelimited)?;
            os.write_raw_varint32(v.get_cached_size())?;
            v.write_to_with_cached_sizes(os)?;
        };
        os.write_unknown_fields(self.get_unknown_fields())?;
        ::std::result::Result::Ok(())
    }

    fn get_cached_size(&self) -> u32 {
        self.cached_size.get()
    }

    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
        &self.unknown_fields
    }

    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
        &mut self.unknown_fields
    }

    fn as_any(&self) -> &dyn (::std::any::Any) {
        self as &dyn (::std::any::Any)
    }
    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
        self as &mut dyn (::std::any::Any)
    }
    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
        self
    }

    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
        Self::descriptor_static()
    }

    fn new() -> CPublishedFile_SetPlaytimeForControllerConfigs_Request {
        CPublishedFile_SetPlaytimeForControllerConfigs_Request::new()
    }

    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
        descriptor.get(|| {
            let mut fields = ::std::vec::Vec::new();
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeUint32>(
                "appid",
                |m: &CPublishedFile_SetPlaytimeForControllerConfigs_Request| { &m.appid },
                |m: &mut CPublishedFile_SetPlaytimeForControllerConfigs_Request| { &mut m.appid },
            ));
            fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<CPublishedFile_SetPlaytimeForControllerConfigs_Request_ControllerConfigUsage>>(
                "controller_config_usage",
                |m: &CPublishedFile_SetPlaytimeForControllerConfigs_Request| { &m.controller_config_usage },
                |m: &mut CPublishedFile_SetPlaytimeForControllerConfigs_Request| { &mut m.controller_config_usage },
            ));
            ::protobuf::reflect::MessageDescriptor::new_pb_name::<CPublishedFile_SetPlaytimeForControllerConfigs_Request>(
                "CPublishedFile_SetPlaytimeForControllerConfigs_Request",
                fields,
                file_descriptor_proto()
            )
        })
    }

    fn default_instance() -> &'static CPublishedFile_SetPlaytimeForControllerConfigs_Request {
        static instance: ::protobuf::rt::LazyV2<CPublishedFile_SetPlaytimeForControllerConfigs_Request> = ::protobuf::rt::LazyV2::INIT;
        instance.get(CPublishedFile_SetPlaytimeForControllerConfigs_Request::new)
    }
}

impl ::protobuf::Clear for CPublishedFile_SetPlaytimeForControllerConfigs_Request {
    fn clear(&mut self) {
        self.appid = ::std::option::Option::None;
        self.controller_config_usage.clear();
        self.unknown_fields.clear();
    }
}

impl ::std::fmt::Debug for CPublishedFile_SetPlaytimeForControllerConfigs_Request {
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
        ::protobuf::text_format::fmt(self, f)
    }
}

impl ::protobuf::reflect::ProtobufValue for CPublishedFile_SetPlaytimeForControllerConfigs_Request {
    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
        ::protobuf::reflect::ReflectValueRef::Message(self)
    }
}

#[derive(PartialEq,Clone,Default)]
pub struct CPublishedFile_SetPlaytimeForControllerConfigs_Request_ControllerConfigUsage {
    // message fields
    publishedfileid: ::std::option::Option<u64>,
    seconds_active: ::std::option::Option<f32>,
    // special fields
    pub unknown_fields: ::protobuf::UnknownFields,
    pub cached_size: ::protobuf::CachedSize,
}

impl<'a> ::std::default::Default for &'a CPublishedFile_SetPlaytimeForControllerConfigs_Request_ControllerConfigUsage {
    fn default() -> &'a CPublishedFile_SetPlaytimeForControllerConfigs_Request_ControllerConfigUsage {
        <CPublishedFile_SetPlaytimeForControllerConfigs_Request_ControllerConfigUsage as ::protobuf::Message>::default_instance()
    }
}

impl CPublishedFile_SetPlaytimeForControllerConfigs_Request_ControllerConfigUsage {
    pub fn new() -> CPublishedFile_SetPlaytimeForControllerConfigs_Request_ControllerConfigUsage {
        ::std::default::Default::default()
    }

    // optional uint64 publishedfileid = 1;


    pub fn get_publishedfileid(&self) -> u64 {
        self.publishedfileid.unwrap_or(0)
    }
    pub fn clear_publishedfileid(&mut self) {
        self.publishedfileid = ::std::option::Option::None;
    }

    pub fn has_publishedfileid(&self) -> bool {
        self.publishedfileid.is_some()
    }

    // Param is passed by value, moved
    pub fn set_publishedfileid(&mut self, v: u64) {
        self.publishedfileid = ::std::option::Option::Some(v);
    }

    // optional float seconds_active = 2;


    pub fn get_seconds_active(&self) -> f32 {
        self.seconds_active.unwrap_or(0.)
    }
    pub fn clear_seconds_active(&mut self) {
        self.seconds_active = ::std::option::Option::None;
    }

    pub fn has_seconds_active(&self) -> bool {
        self.seconds_active.is_some()
    }

    // Param is passed by value, moved
    pub fn set_seconds_active(&mut self, v: f32) {
        self.seconds_active = ::std::option::Option::Some(v);
    }
}

impl ::protobuf::Message for CPublishedFile_SetPlaytimeForControllerConfigs_Request_ControllerConfigUsage {
    fn is_initialized(&self) -> bool {
        true
    }

    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
        while !is.eof()? {
            let (field_number, wire_type) = is.read_tag_unpack()?;
            match field_number {
                1 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_uint64()?;
                    self.publishedfileid = ::std::option::Option::Some(tmp);
                },
                2 => {
                    if wire_type != ::protobuf::wire_format::WireTypeFixed32 {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_float()?;
                    self.seconds_active = ::std::option::Option::Some(tmp);
                },
                _ => {
                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
                },
            };
        }
        ::std::result::Result::Ok(())
    }

    // Compute sizes of nested messages
    #[allow(unused_variables)]
    fn compute_size(&self) -> u32 {
        let mut my_size = 0;
        if let Some(v) = self.publishedfileid {
            my_size += ::protobuf::rt::value_size(1, v, ::protobuf::wire_format::WireTypeVarint);
        }
        if let Some(v) = self.seconds_active {
            my_size += 5;
        }
        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
        self.cached_size.set(my_size);
        my_size
    }

    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
        if let Some(v) = self.publishedfileid {
            os.write_uint64(1, v)?;
        }
        if let Some(v) = self.seconds_active {
            os.write_float(2, v)?;
        }
        os.write_unknown_fields(self.get_unknown_fields())?;
        ::std::result::Result::Ok(())
    }

    fn get_cached_size(&self) -> u32 {
        self.cached_size.get()
    }

    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
        &self.unknown_fields
    }

    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
        &mut self.unknown_fields
    }

    fn as_any(&self) -> &dyn (::std::any::Any) {
        self as &dyn (::std::any::Any)
    }
    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
        self as &mut dyn (::std::any::Any)
    }
    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
        self
    }

    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
        Self::descriptor_static()
    }

    fn new() -> CPublishedFile_SetPlaytimeForControllerConfigs_Request_ControllerConfigUsage {
        CPublishedFile_SetPlaytimeForControllerConfigs_Request_ControllerConfigUsage::new()
    }

    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
        descriptor.get(|| {
            let mut fields = ::std::vec::Vec::new();
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeUint64>(
                "publishedfileid",
                |m: &CPublishedFile_SetPlaytimeForControllerConfigs_Request_ControllerConfigUsage| { &m.publishedfileid },
                |m: &mut CPublishedFile_SetPlaytimeForControllerConfigs_Request_ControllerConfigUsage| { &mut m.publishedfileid },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeFloat>(
                "seconds_active",
                |m: &CPublishedFile_SetPlaytimeForControllerConfigs_Request_ControllerConfigUsage| { &m.seconds_active },
                |m: &mut CPublishedFile_SetPlaytimeForControllerConfigs_Request_ControllerConfigUsage| { &mut m.seconds_active },
            ));
            ::protobuf::reflect::MessageDescriptor::new_pb_name::<CPublishedFile_SetPlaytimeForControllerConfigs_Request_ControllerConfigUsage>(
                "CPublishedFile_SetPlaytimeForControllerConfigs_Request.ControllerConfigUsage",
                fields,
                file_descriptor_proto()
            )
        })
    }

    fn default_instance() -> &'static CPublishedFile_SetPlaytimeForControllerConfigs_Request_ControllerConfigUsage {
        static instance: ::protobuf::rt::LazyV2<CPublishedFile_SetPlaytimeForControllerConfigs_Request_ControllerConfigUsage> = ::protobuf::rt::LazyV2::INIT;
        instance.get(CPublishedFile_SetPlaytimeForControllerConfigs_Request_ControllerConfigUsage::new)
    }
}

impl ::protobuf::Clear for CPublishedFile_SetPlaytimeForControllerConfigs_Request_ControllerConfigUsage {
    fn clear(&mut self) {
        self.publishedfileid = ::std::option::Option::None;
        self.seconds_active = ::std::option::Option::None;
        self.unknown_fields.clear();
    }
}

impl ::std::fmt::Debug for CPublishedFile_SetPlaytimeForControllerConfigs_Request_ControllerConfigUsage {
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
        ::protobuf::text_format::fmt(self, f)
    }
}

impl ::protobuf::reflect::ProtobufValue for CPublishedFile_SetPlaytimeForControllerConfigs_Request_ControllerConfigUsage {
    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
        ::protobuf::reflect::ReflectValueRef::Message(self)
    }
}

#[derive(PartialEq,Clone,Default)]
pub struct CPublishedFile_SetPlaytimeForControllerConfigs_Response {
    // special fields
    pub unknown_fields: ::protobuf::UnknownFields,
    pub cached_size: ::protobuf::CachedSize,
}

impl<'a> ::std::default::Default for &'a CPublishedFile_SetPlaytimeForControllerConfigs_Response {
    fn default() -> &'a CPublishedFile_SetPlaytimeForControllerConfigs_Response {
        <CPublishedFile_SetPlaytimeForControllerConfigs_Response as ::protobuf::Message>::default_instance()
    }
}

impl CPublishedFile_SetPlaytimeForControllerConfigs_Response {
    pub fn new() -> CPublishedFile_SetPlaytimeForControllerConfigs_Response {
        ::std::default::Default::default()
    }
}

impl ::protobuf::Message for CPublishedFile_SetPlaytimeForControllerConfigs_Response {
    fn is_initialized(&self) -> bool {
        true
    }

    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
        while !is.eof()? {
            let (field_number, wire_type) = is.read_tag_unpack()?;
            match field_number {
                _ => {
                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
                },
            };
        }
        ::std::result::Result::Ok(())
    }

    // Compute sizes of nested messages
    #[allow(unused_variables)]
    fn compute_size(&self) -> u32 {
        let mut my_size = 0;
        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
        self.cached_size.set(my_size);
        my_size
    }

    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
        os.write_unknown_fields(self.get_unknown_fields())?;
        ::std::result::Result::Ok(())
    }

    fn get_cached_size(&self) -> u32 {
        self.cached_size.get()
    }

    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
        &self.unknown_fields
    }

    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
        &mut self.unknown_fields
    }

    fn as_any(&self) -> &dyn (::std::any::Any) {
        self as &dyn (::std::any::Any)
    }
    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
        self as &mut dyn (::std::any::Any)
    }
    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
        self
    }

    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
        Self::descriptor_static()
    }

    fn new() -> CPublishedFile_SetPlaytimeForControllerConfigs_Response {
        CPublishedFile_SetPlaytimeForControllerConfigs_Response::new()
    }

    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
        descriptor.get(|| {
            let fields = ::std::vec::Vec::new();
            ::protobuf::reflect::MessageDescriptor::new_pb_name::<CPublishedFile_SetPlaytimeForControllerConfigs_Response>(
                "CPublishedFile_SetPlaytimeForControllerConfigs_Response",
                fields,
                file_descriptor_proto()
            )
        })
    }

    fn default_instance() -> &'static CPublishedFile_SetPlaytimeForControllerConfigs_Response {
        static instance: ::protobuf::rt::LazyV2<CPublishedFile_SetPlaytimeForControllerConfigs_Response> = ::protobuf::rt::LazyV2::INIT;
        instance.get(CPublishedFile_SetPlaytimeForControllerConfigs_Response::new)
    }
}

impl ::protobuf::Clear for CPublishedFile_SetPlaytimeForControllerConfigs_Response {
    fn clear(&mut self) {
        self.unknown_fields.clear();
    }
}

impl ::std::fmt::Debug for CPublishedFile_SetPlaytimeForControllerConfigs_Response {
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
        ::protobuf::text_format::fmt(self, f)
    }
}

impl ::protobuf::reflect::ProtobufValue for CPublishedFile_SetPlaytimeForControllerConfigs_Response {
    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
        ::protobuf::reflect::ReflectValueRef::Message(self)
    }
}

#[derive(PartialEq,Clone,Default)]
pub struct CPublishedFile_AddChild_Request {
    // message fields
    publishedfileid: ::std::option::Option<u64>,
    child_publishedfileid: ::std::option::Option<u64>,
    // special fields
    pub unknown_fields: ::protobuf::UnknownFields,
    pub cached_size: ::protobuf::CachedSize,
}

impl<'a> ::std::default::Default for &'a CPublishedFile_AddChild_Request {
    fn default() -> &'a CPublishedFile_AddChild_Request {
        <CPublishedFile_AddChild_Request as ::protobuf::Message>::default_instance()
    }
}

impl CPublishedFile_AddChild_Request {
    pub fn new() -> CPublishedFile_AddChild_Request {
        ::std::default::Default::default()
    }

    // optional uint64 publishedfileid = 1;


    pub fn get_publishedfileid(&self) -> u64 {
        self.publishedfileid.unwrap_or(0)
    }
    pub fn clear_publishedfileid(&mut self) {
        self.publishedfileid = ::std::option::Option::None;
    }

    pub fn has_publishedfileid(&self) -> bool {
        self.publishedfileid.is_some()
    }

    // Param is passed by value, moved
    pub fn set_publishedfileid(&mut self, v: u64) {
        self.publishedfileid = ::std::option::Option::Some(v);
    }

    // optional uint64 child_publishedfileid = 2;


    pub fn get_child_publishedfileid(&self) -> u64 {
        self.child_publishedfileid.unwrap_or(0)
    }
    pub fn clear_child_publishedfileid(&mut self) {
        self.child_publishedfileid = ::std::option::Option::None;
    }

    pub fn has_child_publishedfileid(&self) -> bool {
        self.child_publishedfileid.is_some()
    }

    // Param is passed by value, moved
    pub fn set_child_publishedfileid(&mut self, v: u64) {
        self.child_publishedfileid = ::std::option::Option::Some(v);
    }
}

impl ::protobuf::Message for CPublishedFile_AddChild_Request {
    fn is_initialized(&self) -> bool {
        true
    }

    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
        while !is.eof()? {
            let (field_number, wire_type) = is.read_tag_unpack()?;
            match field_number {
                1 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_uint64()?;
                    self.publishedfileid = ::std::option::Option::Some(tmp);
                },
                2 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_uint64()?;
                    self.child_publishedfileid = ::std::option::Option::Some(tmp);
                },
                _ => {
                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
                },
            };
        }
        ::std::result::Result::Ok(())
    }

    // Compute sizes of nested messages
    #[allow(unused_variables)]
    fn compute_size(&self) -> u32 {
        let mut my_size = 0;
        if let Some(v) = self.publishedfileid {
            my_size += ::protobuf::rt::value_size(1, v, ::protobuf::wire_format::WireTypeVarint);
        }
        if let Some(v) = self.child_publishedfileid {
            my_size += ::protobuf::rt::value_size(2, v, ::protobuf::wire_format::WireTypeVarint);
        }
        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
        self.cached_size.set(my_size);
        my_size
    }

    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
        if let Some(v) = self.publishedfileid {
            os.write_uint64(1, v)?;
        }
        if let Some(v) = self.child_publishedfileid {
            os.write_uint64(2, v)?;
        }
        os.write_unknown_fields(self.get_unknown_fields())?;
        ::std::result::Result::Ok(())
    }

    fn get_cached_size(&self) -> u32 {
        self.cached_size.get()
    }

    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
        &self.unknown_fields
    }

    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
        &mut self.unknown_fields
    }

    fn as_any(&self) -> &dyn (::std::any::Any) {
        self as &dyn (::std::any::Any)
    }
    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
        self as &mut dyn (::std::any::Any)
    }
    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
        self
    }

    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
        Self::descriptor_static()
    }

    fn new() -> CPublishedFile_AddChild_Request {
        CPublishedFile_AddChild_Request::new()
    }

    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
        descriptor.get(|| {
            let mut fields = ::std::vec::Vec::new();
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeUint64>(
                "publishedfileid",
                |m: &CPublishedFile_AddChild_Request| { &m.publishedfileid },
                |m: &mut CPublishedFile_AddChild_Request| { &mut m.publishedfileid },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeUint64>(
                "child_publishedfileid",
                |m: &CPublishedFile_AddChild_Request| { &m.child_publishedfileid },
                |m: &mut CPublishedFile_AddChild_Request| { &mut m.child_publishedfileid },
            ));
            ::protobuf::reflect::MessageDescriptor::new_pb_name::<CPublishedFile_AddChild_Request>(
                "CPublishedFile_AddChild_Request",
                fields,
                file_descriptor_proto()
            )
        })
    }

    fn default_instance() -> &'static CPublishedFile_AddChild_Request {
        static instance: ::protobuf::rt::LazyV2<CPublishedFile_AddChild_Request> = ::protobuf::rt::LazyV2::INIT;
        instance.get(CPublishedFile_AddChild_Request::new)
    }
}

impl ::protobuf::Clear for CPublishedFile_AddChild_Request {
    fn clear(&mut self) {
        self.publishedfileid = ::std::option::Option::None;
        self.child_publishedfileid = ::std::option::Option::None;
        self.unknown_fields.clear();
    }
}

impl ::std::fmt::Debug for CPublishedFile_AddChild_Request {
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
        ::protobuf::text_format::fmt(self, f)
    }
}

impl ::protobuf::reflect::ProtobufValue for CPublishedFile_AddChild_Request {
    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
        ::protobuf::reflect::ReflectValueRef::Message(self)
    }
}

#[derive(PartialEq,Clone,Default)]
pub struct CPublishedFile_AddChild_Response {
    // special fields
    pub unknown_fields: ::protobuf::UnknownFields,
    pub cached_size: ::protobuf::CachedSize,
}

impl<'a> ::std::default::Default for &'a CPublishedFile_AddChild_Response {
    fn default() -> &'a CPublishedFile_AddChild_Response {
        <CPublishedFile_AddChild_Response as ::protobuf::Message>::default_instance()
    }
}

impl CPublishedFile_AddChild_Response {
    pub fn new() -> CPublishedFile_AddChild_Response {
        ::std::default::Default::default()
    }
}

impl ::protobuf::Message for CPublishedFile_AddChild_Response {
    fn is_initialized(&self) -> bool {
        true
    }

    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
        while !is.eof()? {
            let (field_number, wire_type) = is.read_tag_unpack()?;
            match field_number {
                _ => {
                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
                },
            };
        }
        ::std::result::Result::Ok(())
    }

    // Compute sizes of nested messages
    #[allow(unused_variables)]
    fn compute_size(&self) -> u32 {
        let mut my_size = 0;
        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
        self.cached_size.set(my_size);
        my_size
    }

    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
        os.write_unknown_fields(self.get_unknown_fields())?;
        ::std::result::Result::Ok(())
    }

    fn get_cached_size(&self) -> u32 {
        self.cached_size.get()
    }

    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
        &self.unknown_fields
    }

    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
        &mut self.unknown_fields
    }

    fn as_any(&self) -> &dyn (::std::any::Any) {
        self as &dyn (::std::any::Any)
    }
    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
        self as &mut dyn (::std::any::Any)
    }
    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
        self
    }

    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
        Self::descriptor_static()
    }

    fn new() -> CPublishedFile_AddChild_Response {
        CPublishedFile_AddChild_Response::new()
    }

    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
        descriptor.get(|| {
            let fields = ::std::vec::Vec::new();
            ::protobuf::reflect::MessageDescriptor::new_pb_name::<CPublishedFile_AddChild_Response>(
                "CPublishedFile_AddChild_Response",
                fields,
                file_descriptor_proto()
            )
        })
    }

    fn default_instance() -> &'static CPublishedFile_AddChild_Response {
        static instance: ::protobuf::rt::LazyV2<CPublishedFile_AddChild_Response> = ::protobuf::rt::LazyV2::INIT;
        instance.get(CPublishedFile_AddChild_Response::new)
    }
}

impl ::protobuf::Clear for CPublishedFile_AddChild_Response {
    fn clear(&mut self) {
        self.unknown_fields.clear();
    }
}

impl ::std::fmt::Debug for CPublishedFile_AddChild_Response {
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
        ::protobuf::text_format::fmt(self, f)
    }
}

impl ::protobuf::reflect::ProtobufValue for CPublishedFile_AddChild_Response {
    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
        ::protobuf::reflect::ReflectValueRef::Message(self)
    }
}

#[derive(PartialEq,Clone,Default)]
pub struct CPublishedFile_RemoveChild_Request {
    // message fields
    publishedfileid: ::std::option::Option<u64>,
    child_publishedfileid: ::std::option::Option<u64>,
    // special fields
    pub unknown_fields: ::protobuf::UnknownFields,
    pub cached_size: ::protobuf::CachedSize,
}

impl<'a> ::std::default::Default for &'a CPublishedFile_RemoveChild_Request {
    fn default() -> &'a CPublishedFile_RemoveChild_Request {
        <CPublishedFile_RemoveChild_Request as ::protobuf::Message>::default_instance()
    }
}

impl CPublishedFile_RemoveChild_Request {
    pub fn new() -> CPublishedFile_RemoveChild_Request {
        ::std::default::Default::default()
    }

    // optional uint64 publishedfileid = 1;


    pub fn get_publishedfileid(&self) -> u64 {
        self.publishedfileid.unwrap_or(0)
    }
    pub fn clear_publishedfileid(&mut self) {
        self.publishedfileid = ::std::option::Option::None;
    }

    pub fn has_publishedfileid(&self) -> bool {
        self.publishedfileid.is_some()
    }

    // Param is passed by value, moved
    pub fn set_publishedfileid(&mut self, v: u64) {
        self.publishedfileid = ::std::option::Option::Some(v);
    }

    // optional uint64 child_publishedfileid = 2;


    pub fn get_child_publishedfileid(&self) -> u64 {
        self.child_publishedfileid.unwrap_or(0)
    }
    pub fn clear_child_publishedfileid(&mut self) {
        self.child_publishedfileid = ::std::option::Option::None;
    }

    pub fn has_child_publishedfileid(&self) -> bool {
        self.child_publishedfileid.is_some()
    }

    // Param is passed by value, moved
    pub fn set_child_publishedfileid(&mut self, v: u64) {
        self.child_publishedfileid = ::std::option::Option::Some(v);
    }
}

impl ::protobuf::Message for CPublishedFile_RemoveChild_Request {
    fn is_initialized(&self) -> bool {
        true
    }

    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
        while !is.eof()? {
            let (field_number, wire_type) = is.read_tag_unpack()?;
            match field_number {
                1 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_uint64()?;
                    self.publishedfileid = ::std::option::Option::Some(tmp);
                },
                2 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_uint64()?;
                    self.child_publishedfileid = ::std::option::Option::Some(tmp);
                },
                _ => {
                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
                },
            };
        }
        ::std::result::Result::Ok(())
    }

    // Compute sizes of nested messages
    #[allow(unused_variables)]
    fn compute_size(&self) -> u32 {
        let mut my_size = 0;
        if let Some(v) = self.publishedfileid {
            my_size += ::protobuf::rt::value_size(1, v, ::protobuf::wire_format::WireTypeVarint);
        }
        if let Some(v) = self.child_publishedfileid {
            my_size += ::protobuf::rt::value_size(2, v, ::protobuf::wire_format::WireTypeVarint);
        }
        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
        self.cached_size.set(my_size);
        my_size
    }

    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
        if let Some(v) = self.publishedfileid {
            os.write_uint64(1, v)?;
        }
        if let Some(v) = self.child_publishedfileid {
            os.write_uint64(2, v)?;
        }
        os.write_unknown_fields(self.get_unknown_fields())?;
        ::std::result::Result::Ok(())
    }

    fn get_cached_size(&self) -> u32 {
        self.cached_size.get()
    }

    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
        &self.unknown_fields
    }

    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
        &mut self.unknown_fields
    }

    fn as_any(&self) -> &dyn (::std::any::Any) {
        self as &dyn (::std::any::Any)
    }
    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
        self as &mut dyn (::std::any::Any)
    }
    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
        self
    }

    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
        Self::descriptor_static()
    }

    fn new() -> CPublishedFile_RemoveChild_Request {
        CPublishedFile_RemoveChild_Request::new()
    }

    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
        descriptor.get(|| {
            let mut fields = ::std::vec::Vec::new();
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeUint64>(
                "publishedfileid",
                |m: &CPublishedFile_RemoveChild_Request| { &m.publishedfileid },
                |m: &mut CPublishedFile_RemoveChild_Request| { &mut m.publishedfileid },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeUint64>(
                "child_publishedfileid",
                |m: &CPublishedFile_RemoveChild_Request| { &m.child_publishedfileid },
                |m: &mut CPublishedFile_RemoveChild_Request| { &mut m.child_publishedfileid },
            ));
            ::protobuf::reflect::MessageDescriptor::new_pb_name::<CPublishedFile_RemoveChild_Request>(
                "CPublishedFile_RemoveChild_Request",
                fields,
                file_descriptor_proto()
            )
        })
    }

    fn default_instance() -> &'static CPublishedFile_RemoveChild_Request {
        static instance: ::protobuf::rt::LazyV2<CPublishedFile_RemoveChild_Request> = ::protobuf::rt::LazyV2::INIT;
        instance.get(CPublishedFile_RemoveChild_Request::new)
    }
}

impl ::protobuf::Clear for CPublishedFile_RemoveChild_Request {
    fn clear(&mut self) {
        self.publishedfileid = ::std::option::Option::None;
        self.child_publishedfileid = ::std::option::Option::None;
        self.unknown_fields.clear();
    }
}

impl ::std::fmt::Debug for CPublishedFile_RemoveChild_Request {
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
        ::protobuf::text_format::fmt(self, f)
    }
}

impl ::protobuf::reflect::ProtobufValue for CPublishedFile_RemoveChild_Request {
    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
        ::protobuf::reflect::ReflectValueRef::Message(self)
    }
}

#[derive(PartialEq,Clone,Default)]
pub struct CPublishedFile_RemoveChild_Response {
    // special fields
    pub unknown_fields: ::protobuf::UnknownFields,
    pub cached_size: ::protobuf::CachedSize,
}

impl<'a> ::std::default::Default for &'a CPublishedFile_RemoveChild_Response {
    fn default() -> &'a CPublishedFile_RemoveChild_Response {
        <CPublishedFile_RemoveChild_Response as ::protobuf::Message>::default_instance()
    }
}

impl CPublishedFile_RemoveChild_Response {
    pub fn new() -> CPublishedFile_RemoveChild_Response {
        ::std::default::Default::default()
    }
}

impl ::protobuf::Message for CPublishedFile_RemoveChild_Response {
    fn is_initialized(&self) -> bool {
        true
    }

    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
        while !is.eof()? {
            let (field_number, wire_type) = is.read_tag_unpack()?;
            match field_number {
                _ => {
                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
                },
            };
        }
        ::std::result::Result::Ok(())
    }

    // Compute sizes of nested messages
    #[allow(unused_variables)]
    fn compute_size(&self) -> u32 {
        let mut my_size = 0;
        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
        self.cached_size.set(my_size);
        my_size
    }

    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
        os.write_unknown_fields(self.get_unknown_fields())?;
        ::std::result::Result::Ok(())
    }

    fn get_cached_size(&self) -> u32 {
        self.cached_size.get()
    }

    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
        &self.unknown_fields
    }

    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
        &mut self.unknown_fields
    }

    fn as_any(&self) -> &dyn (::std::any::Any) {
        self as &dyn (::std::any::Any)
    }
    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
        self as &mut dyn (::std::any::Any)
    }
    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
        self
    }

    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
        Self::descriptor_static()
    }

    fn new() -> CPublishedFile_RemoveChild_Response {
        CPublishedFile_RemoveChild_Response::new()
    }

    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
        descriptor.get(|| {
            let fields = ::std::vec::Vec::new();
            ::protobuf::reflect::MessageDescriptor::new_pb_name::<CPublishedFile_RemoveChild_Response>(
                "CPublishedFile_RemoveChild_Response",
                fields,
                file_descriptor_proto()
            )
        })
    }

    fn default_instance() -> &'static CPublishedFile_RemoveChild_Response {
        static instance: ::protobuf::rt::LazyV2<CPublishedFile_RemoveChild_Response> = ::protobuf::rt::LazyV2::INIT;
        instance.get(CPublishedFile_RemoveChild_Response::new)
    }
}

impl ::protobuf::Clear for CPublishedFile_RemoveChild_Response {
    fn clear(&mut self) {
        self.unknown_fields.clear();
    }
}

impl ::std::fmt::Debug for CPublishedFile_RemoveChild_Response {
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
        ::protobuf::text_format::fmt(self, f)
    }
}

impl ::protobuf::reflect::ProtobufValue for CPublishedFile_RemoveChild_Response {
    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
        ::protobuf::reflect::ReflectValueRef::Message(self)
    }
}

#[derive(PartialEq,Clone,Default)]
pub struct CPublishedFile_GetUserVoteSummary_Request {
    // message fields
    pub publishedfileids: ::std::vec::Vec<u64>,
    // special fields
    pub unknown_fields: ::protobuf::UnknownFields,
    pub cached_size: ::protobuf::CachedSize,
}

impl<'a> ::std::default::Default for &'a CPublishedFile_GetUserVoteSummary_Request {
    fn default() -> &'a CPublishedFile_GetUserVoteSummary_Request {
        <CPublishedFile_GetUserVoteSummary_Request as ::protobuf::Message>::default_instance()
    }
}

impl CPublishedFile_GetUserVoteSummary_Request {
    pub fn new() -> CPublishedFile_GetUserVoteSummary_Request {
        ::std::default::Default::default()
    }

    // repeated fixed64 publishedfileids = 1;


    pub fn get_publishedfileids(&self) -> &[u64] {
        &self.publishedfileids
    }
    pub fn clear_publishedfileids(&mut self) {
        self.publishedfileids.clear();
    }

    // Param is passed by value, moved
    pub fn set_publishedfileids(&mut self, v: ::std::vec::Vec<u64>) {
        self.publishedfileids = v;
    }

    // Mutable pointer to the field.
    pub fn mut_publishedfileids(&mut self) -> &mut ::std::vec::Vec<u64> {
        &mut self.publishedfileids
    }

    // Take field
    pub fn take_publishedfileids(&mut self) -> ::std::vec::Vec<u64> {
        ::std::mem::replace(&mut self.publishedfileids, ::std::vec::Vec::new())
    }
}

impl ::protobuf::Message for CPublishedFile_GetUserVoteSummary_Request {
    fn is_initialized(&self) -> bool {
        true
    }

    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
        while !is.eof()? {
            let (field_number, wire_type) = is.read_tag_unpack()?;
            match field_number {
                1 => {
                    ::protobuf::rt::read_repeated_fixed64_into(wire_type, is, &mut self.publishedfileids)?;
                },
                _ => {
                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
                },
            };
        }
        ::std::result::Result::Ok(())
    }

    // Compute sizes of nested messages
    #[allow(unused_variables)]
    fn compute_size(&self) -> u32 {
        let mut my_size = 0;
        my_size += 9 * self.publishedfileids.len() as u32;
        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
        self.cached_size.set(my_size);
        my_size
    }

    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
        for v in &self.publishedfileids {
            os.write_fixed64(1, *v)?;
        };
        os.write_unknown_fields(self.get_unknown_fields())?;
        ::std::result::Result::Ok(())
    }

    fn get_cached_size(&self) -> u32 {
        self.cached_size.get()
    }

    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
        &self.unknown_fields
    }

    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
        &mut self.unknown_fields
    }

    fn as_any(&self) -> &dyn (::std::any::Any) {
        self as &dyn (::std::any::Any)
    }
    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
        self as &mut dyn (::std::any::Any)
    }
    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
        self
    }

    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
        Self::descriptor_static()
    }

    fn new() -> CPublishedFile_GetUserVoteSummary_Request {
        CPublishedFile_GetUserVoteSummary_Request::new()
    }

    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
        descriptor.get(|| {
            let mut fields = ::std::vec::Vec::new();
            fields.push(::protobuf::reflect::accessor::make_vec_accessor::<_, ::protobuf::types::ProtobufTypeFixed64>(
                "publishedfileids",
                |m: &CPublishedFile_GetUserVoteSummary_Request| { &m.publishedfileids },
                |m: &mut CPublishedFile_GetUserVoteSummary_Request| { &mut m.publishedfileids },
            ));
            ::protobuf::reflect::MessageDescriptor::new_pb_name::<CPublishedFile_GetUserVoteSummary_Request>(
                "CPublishedFile_GetUserVoteSummary_Request",
                fields,
                file_descriptor_proto()
            )
        })
    }

    fn default_instance() -> &'static CPublishedFile_GetUserVoteSummary_Request {
        static instance: ::protobuf::rt::LazyV2<CPublishedFile_GetUserVoteSummary_Request> = ::protobuf::rt::LazyV2::INIT;
        instance.get(CPublishedFile_GetUserVoteSummary_Request::new)
    }
}

impl ::protobuf::Clear for CPublishedFile_GetUserVoteSummary_Request {
    fn clear(&mut self) {
        self.publishedfileids.clear();
        self.unknown_fields.clear();
    }
}

impl ::std::fmt::Debug for CPublishedFile_GetUserVoteSummary_Request {
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
        ::protobuf::text_format::fmt(self, f)
    }
}

impl ::protobuf::reflect::ProtobufValue for CPublishedFile_GetUserVoteSummary_Request {
    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
        ::protobuf::reflect::ReflectValueRef::Message(self)
    }
}

#[derive(PartialEq,Clone,Default)]
pub struct CPublishedFile_GetUserVoteSummary_Response {
    // message fields
    pub summaries: ::protobuf::RepeatedField<CPublishedFile_GetUserVoteSummary_Response_VoteSummary>,
    // special fields
    pub unknown_fields: ::protobuf::UnknownFields,
    pub cached_size: ::protobuf::CachedSize,
}

impl<'a> ::std::default::Default for &'a CPublishedFile_GetUserVoteSummary_Response {
    fn default() -> &'a CPublishedFile_GetUserVoteSummary_Response {
        <CPublishedFile_GetUserVoteSummary_Response as ::protobuf::Message>::default_instance()
    }
}

impl CPublishedFile_GetUserVoteSummary_Response {
    pub fn new() -> CPublishedFile_GetUserVoteSummary_Response {
        ::std::default::Default::default()
    }

    // repeated .CPublishedFile_GetUserVoteSummary_Response.VoteSummary summaries = 1;


    pub fn get_summaries(&self) -> &[CPublishedFile_GetUserVoteSummary_Response_VoteSummary] {
        &self.summaries
    }
    pub fn clear_summaries(&mut self) {
        self.summaries.clear();
    }

    // Param is passed by value, moved
    pub fn set_summaries(&mut self, v: ::protobuf::RepeatedField<CPublishedFile_GetUserVoteSummary_Response_VoteSummary>) {
        self.summaries = v;
    }

    // Mutable pointer to the field.
    pub fn mut_summaries(&mut self) -> &mut ::protobuf::RepeatedField<CPublishedFile_GetUserVoteSummary_Response_VoteSummary> {
        &mut self.summaries
    }

    // Take field
    pub fn take_summaries(&mut self) -> ::protobuf::RepeatedField<CPublishedFile_GetUserVoteSummary_Response_VoteSummary> {
        ::std::mem::replace(&mut self.summaries, ::protobuf::RepeatedField::new())
    }
}

impl ::protobuf::Message for CPublishedFile_GetUserVoteSummary_Response {
    fn is_initialized(&self) -> bool {
        for v in &self.summaries {
            if !v.is_initialized() {
                return false;
            }
        };
        true
    }

    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
        while !is.eof()? {
            let (field_number, wire_type) = is.read_tag_unpack()?;
            match field_number {
                1 => {
                    ::protobuf::rt::read_repeated_message_into(wire_type, is, &mut self.summaries)?;
                },
                _ => {
                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
                },
            };
        }
        ::std::result::Result::Ok(())
    }

    // Compute sizes of nested messages
    #[allow(unused_variables)]
    fn compute_size(&self) -> u32 {
        let mut my_size = 0;
        for value in &self.summaries {
            let len = value.compute_size();
            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
        };
        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
        self.cached_size.set(my_size);
        my_size
    }

    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
        for v in &self.summaries {
            os.write_tag(1, ::protobuf::wire_format::WireTypeLengthDelimited)?;
            os.write_raw_varint32(v.get_cached_size())?;
            v.write_to_with_cached_sizes(os)?;
        };
        os.write_unknown_fields(self.get_unknown_fields())?;
        ::std::result::Result::Ok(())
    }

    fn get_cached_size(&self) -> u32 {
        self.cached_size.get()
    }

    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
        &self.unknown_fields
    }

    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
        &mut self.unknown_fields
    }

    fn as_any(&self) -> &dyn (::std::any::Any) {
        self as &dyn (::std::any::Any)
    }
    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
        self as &mut dyn (::std::any::Any)
    }
    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
        self
    }

    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
        Self::descriptor_static()
    }

    fn new() -> CPublishedFile_GetUserVoteSummary_Response {
        CPublishedFile_GetUserVoteSummary_Response::new()
    }

    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
        descriptor.get(|| {
            let mut fields = ::std::vec::Vec::new();
            fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<CPublishedFile_GetUserVoteSummary_Response_VoteSummary>>(
                "summaries",
                |m: &CPublishedFile_GetUserVoteSummary_Response| { &m.summaries },
                |m: &mut CPublishedFile_GetUserVoteSummary_Response| { &mut m.summaries },
            ));
            ::protobuf::reflect::MessageDescriptor::new_pb_name::<CPublishedFile_GetUserVoteSummary_Response>(
                "CPublishedFile_GetUserVoteSummary_Response",
                fields,
                file_descriptor_proto()
            )
        })
    }

    fn default_instance() -> &'static CPublishedFile_GetUserVoteSummary_Response {
        static instance: ::protobuf::rt::LazyV2<CPublishedFile_GetUserVoteSummary_Response> = ::protobuf::rt::LazyV2::INIT;
        instance.get(CPublishedFile_GetUserVoteSummary_Response::new)
    }
}

impl ::protobuf::Clear for CPublishedFile_GetUserVoteSummary_Response {
    fn clear(&mut self) {
        self.summaries.clear();
        self.unknown_fields.clear();
    }
}

impl ::std::fmt::Debug for CPublishedFile_GetUserVoteSummary_Response {
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
        ::protobuf::text_format::fmt(self, f)
    }
}

impl ::protobuf::reflect::ProtobufValue for CPublishedFile_GetUserVoteSummary_Response {
    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
        ::protobuf::reflect::ReflectValueRef::Message(self)
    }
}

#[derive(PartialEq,Clone,Default)]
pub struct CPublishedFile_GetUserVoteSummary_Response_VoteSummary {
    // message fields
    publishedfileid: ::std::option::Option<u64>,
    vote_for: ::std::option::Option<bool>,
    vote_against: ::std::option::Option<bool>,
    reported: ::std::option::Option<bool>,
    // special fields
    pub unknown_fields: ::protobuf::UnknownFields,
    pub cached_size: ::protobuf::CachedSize,
}

impl<'a> ::std::default::Default for &'a CPublishedFile_GetUserVoteSummary_Response_VoteSummary {
    fn default() -> &'a CPublishedFile_GetUserVoteSummary_Response_VoteSummary {
        <CPublishedFile_GetUserVoteSummary_Response_VoteSummary as ::protobuf::Message>::default_instance()
    }
}

impl CPublishedFile_GetUserVoteSummary_Response_VoteSummary {
    pub fn new() -> CPublishedFile_GetUserVoteSummary_Response_VoteSummary {
        ::std::default::Default::default()
    }

    // optional fixed64 publishedfileid = 1;


    pub fn get_publishedfileid(&self) -> u64 {
        self.publishedfileid.unwrap_or(0)
    }
    pub fn clear_publishedfileid(&mut self) {
        self.publishedfileid = ::std::option::Option::None;
    }

    pub fn has_publishedfileid(&self) -> bool {
        self.publishedfileid.is_some()
    }

    // Param is passed by value, moved
    pub fn set_publishedfileid(&mut self, v: u64) {
        self.publishedfileid = ::std::option::Option::Some(v);
    }

    // optional bool vote_for = 2;


    pub fn get_vote_for(&self) -> bool {
        self.vote_for.unwrap_or(false)
    }
    pub fn clear_vote_for(&mut self) {
        self.vote_for = ::std::option::Option::None;
    }

    pub fn has_vote_for(&self) -> bool {
        self.vote_for.is_some()
    }

    // Param is passed by value, moved
    pub fn set_vote_for(&mut self, v: bool) {
        self.vote_for = ::std::option::Option::Some(v);
    }

    // optional bool vote_against = 3;


    pub fn get_vote_against(&self) -> bool {
        self.vote_against.unwrap_or(false)
    }
    pub fn clear_vote_against(&mut self) {
        self.vote_against = ::std::option::Option::None;
    }

    pub fn has_vote_against(&self) -> bool {
        self.vote_against.is_some()
    }

    // Param is passed by value, moved
    pub fn set_vote_against(&mut self, v: bool) {
        self.vote_against = ::std::option::Option::Some(v);
    }

    // optional bool reported = 4;


    pub fn get_reported(&self) -> bool {
        self.reported.unwrap_or(false)
    }
    pub fn clear_reported(&mut self) {
        self.reported = ::std::option::Option::None;
    }

    pub fn has_reported(&self) -> bool {
        self.reported.is_some()
    }

    // Param is passed by value, moved
    pub fn set_reported(&mut self, v: bool) {
        self.reported = ::std::option::Option::Some(v);
    }
}

impl ::protobuf::Message for CPublishedFile_GetUserVoteSummary_Response_VoteSummary {
    fn is_initialized(&self) -> bool {
        true
    }

    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
        while !is.eof()? {
            let (field_number, wire_type) = is.read_tag_unpack()?;
            match field_number {
                1 => {
                    if wire_type != ::protobuf::wire_format::WireTypeFixed64 {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_fixed64()?;
                    self.publishedfileid = ::std::option::Option::Some(tmp);
                },
                2 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_bool()?;
                    self.vote_for = ::std::option::Option::Some(tmp);
                },
                3 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_bool()?;
                    self.vote_against = ::std::option::Option::Some(tmp);
                },
                4 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_bool()?;
                    self.reported = ::std::option::Option::Some(tmp);
                },
                _ => {
                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
                },
            };
        }
        ::std::result::Result::Ok(())
    }

    // Compute sizes of nested messages
    #[allow(unused_variables)]
    fn compute_size(&self) -> u32 {
        let mut my_size = 0;
        if let Some(v) = self.publishedfileid {
            my_size += 9;
        }
        if let Some(v) = self.vote_for {
            my_size += 2;
        }
        if let Some(v) = self.vote_against {
            my_size += 2;
        }
        if let Some(v) = self.reported {
            my_size += 2;
        }
        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
        self.cached_size.set(my_size);
        my_size
    }

    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
        if let Some(v) = self.publishedfileid {
            os.write_fixed64(1, v)?;
        }
        if let Some(v) = self.vote_for {
            os.write_bool(2, v)?;
        }
        if let Some(v) = self.vote_against {
            os.write_bool(3, v)?;
        }
        if let Some(v) = self.reported {
            os.write_bool(4, v)?;
        }
        os.write_unknown_fields(self.get_unknown_fields())?;
        ::std::result::Result::Ok(())
    }

    fn get_cached_size(&self) -> u32 {
        self.cached_size.get()
    }

    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
        &self.unknown_fields
    }

    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
        &mut self.unknown_fields
    }

    fn as_any(&self) -> &dyn (::std::any::Any) {
        self as &dyn (::std::any::Any)
    }
    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
        self as &mut dyn (::std::any::Any)
    }
    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
        self
    }

    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
        Self::descriptor_static()
    }

    fn new() -> CPublishedFile_GetUserVoteSummary_Response_VoteSummary {
        CPublishedFile_GetUserVoteSummary_Response_VoteSummary::new()
    }

    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
        descriptor.get(|| {
            let mut fields = ::std::vec::Vec::new();
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeFixed64>(
                "publishedfileid",
                |m: &CPublishedFile_GetUserVoteSummary_Response_VoteSummary| { &m.publishedfileid },
                |m: &mut CPublishedFile_GetUserVoteSummary_Response_VoteSummary| { &mut m.publishedfileid },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeBool>(
                "vote_for",
                |m: &CPublishedFile_GetUserVoteSummary_Response_VoteSummary| { &m.vote_for },
                |m: &mut CPublishedFile_GetUserVoteSummary_Response_VoteSummary| { &mut m.vote_for },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeBool>(
                "vote_against",
                |m: &CPublishedFile_GetUserVoteSummary_Response_VoteSummary| { &m.vote_against },
                |m: &mut CPublishedFile_GetUserVoteSummary_Response_VoteSummary| { &mut m.vote_against },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeBool>(
                "reported",
                |m: &CPublishedFile_GetUserVoteSummary_Response_VoteSummary| { &m.reported },
                |m: &mut CPublishedFile_GetUserVoteSummary_Response_VoteSummary| { &mut m.reported },
            ));
            ::protobuf::reflect::MessageDescriptor::new_pb_name::<CPublishedFile_GetUserVoteSummary_Response_VoteSummary>(
                "CPublishedFile_GetUserVoteSummary_Response.VoteSummary",
                fields,
                file_descriptor_proto()
            )
        })
    }

    fn default_instance() -> &'static CPublishedFile_GetUserVoteSummary_Response_VoteSummary {
        static instance: ::protobuf::rt::LazyV2<CPublishedFile_GetUserVoteSummary_Response_VoteSummary> = ::protobuf::rt::LazyV2::INIT;
        instance.get(CPublishedFile_GetUserVoteSummary_Response_VoteSummary::new)
    }
}

impl ::protobuf::Clear for CPublishedFile_GetUserVoteSummary_Response_VoteSummary {
    fn clear(&mut self) {
        self.publishedfileid = ::std::option::Option::None;
        self.vote_for = ::std::option::Option::None;
        self.vote_against = ::std::option::Option::None;
        self.reported = ::std::option::Option::None;
        self.unknown_fields.clear();
    }
}

impl ::std::fmt::Debug for CPublishedFile_GetUserVoteSummary_Response_VoteSummary {
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
        ::protobuf::text_format::fmt(self, f)
    }
}

impl ::protobuf::reflect::ProtobufValue for CPublishedFile_GetUserVoteSummary_Response_VoteSummary {
    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
        ::protobuf::reflect::ReflectValueRef::Message(self)
    }
}

#[derive(PartialEq,Clone,Default)]
pub struct CPublishedFile_FileSubscribed_Notification {
    // message fields
    published_file_id: ::std::option::Option<u64>,
    app_id: ::std::option::Option<u32>,
    file_hcontent: ::std::option::Option<u64>,
    file_size: ::std::option::Option<u32>,
    rtime_subscribed: ::std::option::Option<u32>,
    is_depot_content: ::std::option::Option<bool>,
    rtime_updated: ::std::option::Option<u32>,
    pub revisions: ::protobuf::RepeatedField<CPublishedFile_FileSubscribed_Notification_RevisionData>,
    // special fields
    pub unknown_fields: ::protobuf::UnknownFields,
    pub cached_size: ::protobuf::CachedSize,
}

impl<'a> ::std::default::Default for &'a CPublishedFile_FileSubscribed_Notification {
    fn default() -> &'a CPublishedFile_FileSubscribed_Notification {
        <CPublishedFile_FileSubscribed_Notification as ::protobuf::Message>::default_instance()
    }
}

impl CPublishedFile_FileSubscribed_Notification {
    pub fn new() -> CPublishedFile_FileSubscribed_Notification {
        ::std::default::Default::default()
    }

    // optional fixed64 published_file_id = 1;


    pub fn get_published_file_id(&self) -> u64 {
        self.published_file_id.unwrap_or(0)
    }
    pub fn clear_published_file_id(&mut self) {
        self.published_file_id = ::std::option::Option::None;
    }

    pub fn has_published_file_id(&self) -> bool {
        self.published_file_id.is_some()
    }

    // Param is passed by value, moved
    pub fn set_published_file_id(&mut self, v: u64) {
        self.published_file_id = ::std::option::Option::Some(v);
    }

    // optional uint32 app_id = 2;


    pub fn get_app_id(&self) -> u32 {
        self.app_id.unwrap_or(0)
    }
    pub fn clear_app_id(&mut self) {
        self.app_id = ::std::option::Option::None;
    }

    pub fn has_app_id(&self) -> bool {
        self.app_id.is_some()
    }

    // Param is passed by value, moved
    pub fn set_app_id(&mut self, v: u32) {
        self.app_id = ::std::option::Option::Some(v);
    }

    // optional fixed64 file_hcontent = 3;


    pub fn get_file_hcontent(&self) -> u64 {
        self.file_hcontent.unwrap_or(0)
    }
    pub fn clear_file_hcontent(&mut self) {
        self.file_hcontent = ::std::option::Option::None;
    }

    pub fn has_file_hcontent(&self) -> bool {
        self.file_hcontent.is_some()
    }

    // Param is passed by value, moved
    pub fn set_file_hcontent(&mut self, v: u64) {
        self.file_hcontent = ::std::option::Option::Some(v);
    }

    // optional uint32 file_size = 4;


    pub fn get_file_size(&self) -> u32 {
        self.file_size.unwrap_or(0)
    }
    pub fn clear_file_size(&mut self) {
        self.file_size = ::std::option::Option::None;
    }

    pub fn has_file_size(&self) -> bool {
        self.file_size.is_some()
    }

    // Param is passed by value, moved
    pub fn set_file_size(&mut self, v: u32) {
        self.file_size = ::std::option::Option::Some(v);
    }

    // optional uint32 rtime_subscribed = 5;


    pub fn get_rtime_subscribed(&self) -> u32 {
        self.rtime_subscribed.unwrap_or(0)
    }
    pub fn clear_rtime_subscribed(&mut self) {
        self.rtime_subscribed = ::std::option::Option::None;
    }

    pub fn has_rtime_subscribed(&self) -> bool {
        self.rtime_subscribed.is_some()
    }

    // Param is passed by value, moved
    pub fn set_rtime_subscribed(&mut self, v: u32) {
        self.rtime_subscribed = ::std::option::Option::Some(v);
    }

    // optional bool is_depot_content = 6;


    pub fn get_is_depot_content(&self) -> bool {
        self.is_depot_content.unwrap_or(false)
    }
    pub fn clear_is_depot_content(&mut self) {
        self.is_depot_content = ::std::option::Option::None;
    }

    pub fn has_is_depot_content(&self) -> bool {
        self.is_depot_content.is_some()
    }

    // Param is passed by value, moved
    pub fn set_is_depot_content(&mut self, v: bool) {
        self.is_depot_content = ::std::option::Option::Some(v);
    }

    // optional uint32 rtime_updated = 7;


    pub fn get_rtime_updated(&self) -> u32 {
        self.rtime_updated.unwrap_or(0)
    }
    pub fn clear_rtime_updated(&mut self) {
        self.rtime_updated = ::std::option::Option::None;
    }

    pub fn has_rtime_updated(&self) -> bool {
        self.rtime_updated.is_some()
    }

    // Param is passed by value, moved
    pub fn set_rtime_updated(&mut self, v: u32) {
        self.rtime_updated = ::std::option::Option::Some(v);
    }

    // repeated .CPublishedFile_FileSubscribed_Notification.RevisionData revisions = 8;


    pub fn get_revisions(&self) -> &[CPublishedFile_FileSubscribed_Notification_RevisionData] {
        &self.revisions
    }
    pub fn clear_revisions(&mut self) {
        self.revisions.clear();
    }

    // Param is passed by value, moved
    pub fn set_revisions(&mut self, v: ::protobuf::RepeatedField<CPublishedFile_FileSubscribed_Notification_RevisionData>) {
        self.revisions = v;
    }

    // Mutable pointer to the field.
    pub fn mut_revisions(&mut self) -> &mut ::protobuf::RepeatedField<CPublishedFile_FileSubscribed_Notification_RevisionData> {
        &mut self.revisions
    }

    // Take field
    pub fn take_revisions(&mut self) -> ::protobuf::RepeatedField<CPublishedFile_FileSubscribed_Notification_RevisionData> {
        ::std::mem::replace(&mut self.revisions, ::protobuf::RepeatedField::new())
    }
}

impl ::protobuf::Message for CPublishedFile_FileSubscribed_Notification {
    fn is_initialized(&self) -> bool {
        for v in &self.revisions {
            if !v.is_initialized() {
                return false;
            }
        };
        true
    }

    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
        while !is.eof()? {
            let (field_number, wire_type) = is.read_tag_unpack()?;
            match field_number {
                1 => {
                    if wire_type != ::protobuf::wire_format::WireTypeFixed64 {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_fixed64()?;
                    self.published_file_id = ::std::option::Option::Some(tmp);
                },
                2 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_uint32()?;
                    self.app_id = ::std::option::Option::Some(tmp);
                },
                3 => {
                    if wire_type != ::protobuf::wire_format::WireTypeFixed64 {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_fixed64()?;
                    self.file_hcontent = ::std::option::Option::Some(tmp);
                },
                4 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_uint32()?;
                    self.file_size = ::std::option::Option::Some(tmp);
                },
                5 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_uint32()?;
                    self.rtime_subscribed = ::std::option::Option::Some(tmp);
                },
                6 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_bool()?;
                    self.is_depot_content = ::std::option::Option::Some(tmp);
                },
                7 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_uint32()?;
                    self.rtime_updated = ::std::option::Option::Some(tmp);
                },
                8 => {
                    ::protobuf::rt::read_repeated_message_into(wire_type, is, &mut self.revisions)?;
                },
                _ => {
                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
                },
            };
        }
        ::std::result::Result::Ok(())
    }

    // Compute sizes of nested messages
    #[allow(unused_variables)]
    fn compute_size(&self) -> u32 {
        let mut my_size = 0;
        if let Some(v) = self.published_file_id {
            my_size += 9;
        }
        if let Some(v) = self.app_id {
            my_size += ::protobuf::rt::value_size(2, v, ::protobuf::wire_format::WireTypeVarint);
        }
        if let Some(v) = self.file_hcontent {
            my_size += 9;
        }
        if let Some(v) = self.file_size {
            my_size += ::protobuf::rt::value_size(4, v, ::protobuf::wire_format::WireTypeVarint);
        }
        if let Some(v) = self.rtime_subscribed {
            my_size += ::protobuf::rt::value_size(5, v, ::protobuf::wire_format::WireTypeVarint);
        }
        if let Some(v) = self.is_depot_content {
            my_size += 2;
        }
        if let Some(v) = self.rtime_updated {
            my_size += ::protobuf::rt::value_size(7, v, ::protobuf::wire_format::WireTypeVarint);
        }
        for value in &self.revisions {
            let len = value.compute_size();
            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
        };
        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
        self.cached_size.set(my_size);
        my_size
    }

    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
        if let Some(v) = self.published_file_id {
            os.write_fixed64(1, v)?;
        }
        if let Some(v) = self.app_id {
            os.write_uint32(2, v)?;
        }
        if let Some(v) = self.file_hcontent {
            os.write_fixed64(3, v)?;
        }
        if let Some(v) = self.file_size {
            os.write_uint32(4, v)?;
        }
        if let Some(v) = self.rtime_subscribed {
            os.write_uint32(5, v)?;
        }
        if let Some(v) = self.is_depot_content {
            os.write_bool(6, v)?;
        }
        if let Some(v) = self.rtime_updated {
            os.write_uint32(7, v)?;
        }
        for v in &self.revisions {
            os.write_tag(8, ::protobuf::wire_format::WireTypeLengthDelimited)?;
            os.write_raw_varint32(v.get_cached_size())?;
            v.write_to_with_cached_sizes(os)?;
        };
        os.write_unknown_fields(self.get_unknown_fields())?;
        ::std::result::Result::Ok(())
    }

    fn get_cached_size(&self) -> u32 {
        self.cached_size.get()
    }

    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
        &self.unknown_fields
    }

    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
        &mut self.unknown_fields
    }

    fn as_any(&self) -> &dyn (::std::any::Any) {
        self as &dyn (::std::any::Any)
    }
    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
        self as &mut dyn (::std::any::Any)
    }
    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
        self
    }

    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
        Self::descriptor_static()
    }

    fn new() -> CPublishedFile_FileSubscribed_Notification {
        CPublishedFile_FileSubscribed_Notification::new()
    }

    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
        descriptor.get(|| {
            let mut fields = ::std::vec::Vec::new();
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeFixed64>(
                "published_file_id",
                |m: &CPublishedFile_FileSubscribed_Notification| { &m.published_file_id },
                |m: &mut CPublishedFile_FileSubscribed_Notification| { &mut m.published_file_id },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeUint32>(
                "app_id",
                |m: &CPublishedFile_FileSubscribed_Notification| { &m.app_id },
                |m: &mut CPublishedFile_FileSubscribed_Notification| { &mut m.app_id },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeFixed64>(
                "file_hcontent",
                |m: &CPublishedFile_FileSubscribed_Notification| { &m.file_hcontent },
                |m: &mut CPublishedFile_FileSubscribed_Notification| { &mut m.file_hcontent },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeUint32>(
                "file_size",
                |m: &CPublishedFile_FileSubscribed_Notification| { &m.file_size },
                |m: &mut CPublishedFile_FileSubscribed_Notification| { &mut m.file_size },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeUint32>(
                "rtime_subscribed",
                |m: &CPublishedFile_FileSubscribed_Notification| { &m.rtime_subscribed },
                |m: &mut CPublishedFile_FileSubscribed_Notification| { &mut m.rtime_subscribed },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeBool>(
                "is_depot_content",
                |m: &CPublishedFile_FileSubscribed_Notification| { &m.is_depot_content },
                |m: &mut CPublishedFile_FileSubscribed_Notification| { &mut m.is_depot_content },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeUint32>(
                "rtime_updated",
                |m: &CPublishedFile_FileSubscribed_Notification| { &m.rtime_updated },
                |m: &mut CPublishedFile_FileSubscribed_Notification| { &mut m.rtime_updated },
            ));
            fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<CPublishedFile_FileSubscribed_Notification_RevisionData>>(
                "revisions",
                |m: &CPublishedFile_FileSubscribed_Notification| { &m.revisions },
                |m: &mut CPublishedFile_FileSubscribed_Notification| { &mut m.revisions },
            ));
            ::protobuf::reflect::MessageDescriptor::new_pb_name::<CPublishedFile_FileSubscribed_Notification>(
                "CPublishedFile_FileSubscribed_Notification",
                fields,
                file_descriptor_proto()
            )
        })
    }

    fn default_instance() -> &'static CPublishedFile_FileSubscribed_Notification {
        static instance: ::protobuf::rt::LazyV2<CPublishedFile_FileSubscribed_Notification> = ::protobuf::rt::LazyV2::INIT;
        instance.get(CPublishedFile_FileSubscribed_Notification::new)
    }
}

impl ::protobuf::Clear for CPublishedFile_FileSubscribed_Notification {
    fn clear(&mut self) {
        self.published_file_id = ::std::option::Option::None;
        self.app_id = ::std::option::Option::None;
        self.file_hcontent = ::std::option::Option::None;
        self.file_size = ::std::option::Option::None;
        self.rtime_subscribed = ::std::option::Option::None;
        self.is_depot_content = ::std::option::Option::None;
        self.rtime_updated = ::std::option::Option::None;
        self.revisions.clear();
        self.unknown_fields.clear();
    }
}

impl ::std::fmt::Debug for CPublishedFile_FileSubscribed_Notification {
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
        ::protobuf::text_format::fmt(self, f)
    }
}

impl ::protobuf::reflect::ProtobufValue for CPublishedFile_FileSubscribed_Notification {
    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
        ::protobuf::reflect::ReflectValueRef::Message(self)
    }
}

#[derive(PartialEq,Clone,Default)]
pub struct CPublishedFile_FileSubscribed_Notification_RevisionData {
    // message fields
    revision: ::std::option::Option<EPublishedFileRevision>,
    file_hcontent: ::std::option::Option<u64>,
    rtime_updated: ::std::option::Option<u32>,
    // special fields
    pub unknown_fields: ::protobuf::UnknownFields,
    pub cached_size: ::protobuf::CachedSize,
}

impl<'a> ::std::default::Default for &'a CPublishedFile_FileSubscribed_Notification_RevisionData {
    fn default() -> &'a CPublishedFile_FileSubscribed_Notification_RevisionData {
        <CPublishedFile_FileSubscribed_Notification_RevisionData as ::protobuf::Message>::default_instance()
    }
}

impl CPublishedFile_FileSubscribed_Notification_RevisionData {
    pub fn new() -> CPublishedFile_FileSubscribed_Notification_RevisionData {
        ::std::default::Default::default()
    }

    // optional .EPublishedFileRevision revision = 1;


    pub fn get_revision(&self) -> EPublishedFileRevision {
        self.revision.unwrap_or(EPublishedFileRevision::k_EPublishedFileRevision_Default)
    }
    pub fn clear_revision(&mut self) {
        self.revision = ::std::option::Option::None;
    }

    pub fn has_revision(&self) -> bool {
        self.revision.is_some()
    }

    // Param is passed by value, moved
    pub fn set_revision(&mut self, v: EPublishedFileRevision) {
        self.revision = ::std::option::Option::Some(v);
    }

    // optional fixed64 file_hcontent = 2;


    pub fn get_file_hcontent(&self) -> u64 {
        self.file_hcontent.unwrap_or(0)
    }
    pub fn clear_file_hcontent(&mut self) {
        self.file_hcontent = ::std::option::Option::None;
    }

    pub fn has_file_hcontent(&self) -> bool {
        self.file_hcontent.is_some()
    }

    // Param is passed by value, moved
    pub fn set_file_hcontent(&mut self, v: u64) {
        self.file_hcontent = ::std::option::Option::Some(v);
    }

    // optional uint32 rtime_updated = 3;


    pub fn get_rtime_updated(&self) -> u32 {
        self.rtime_updated.unwrap_or(0)
    }
    pub fn clear_rtime_updated(&mut self) {
        self.rtime_updated = ::std::option::Option::None;
    }

    pub fn has_rtime_updated(&self) -> bool {
        self.rtime_updated.is_some()
    }

    // Param is passed by value, moved
    pub fn set_rtime_updated(&mut self, v: u32) {
        self.rtime_updated = ::std::option::Option::Some(v);
    }
}

impl ::protobuf::Message for CPublishedFile_FileSubscribed_Notification_RevisionData {
    fn is_initialized(&self) -> bool {
        true
    }

    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
        while !is.eof()? {
            let (field_number, wire_type) = is.read_tag_unpack()?;
            match field_number {
                1 => {
                    ::protobuf::rt::read_proto2_enum_with_unknown_fields_into(wire_type, is, &mut self.revision, 1, &mut self.unknown_fields)?
                },
                2 => {
                    if wire_type != ::protobuf::wire_format::WireTypeFixed64 {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_fixed64()?;
                    self.file_hcontent = ::std::option::Option::Some(tmp);
                },
                3 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_uint32()?;
                    self.rtime_updated = ::std::option::Option::Some(tmp);
                },
                _ => {
                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
                },
            };
        }
        ::std::result::Result::Ok(())
    }

    // Compute sizes of nested messages
    #[allow(unused_variables)]
    fn compute_size(&self) -> u32 {
        let mut my_size = 0;
        if let Some(v) = self.revision {
            my_size += ::protobuf::rt::enum_size(1, v);
        }
        if let Some(v) = self.file_hcontent {
            my_size += 9;
        }
        if let Some(v) = self.rtime_updated {
            my_size += ::protobuf::rt::value_size(3, v, ::protobuf::wire_format::WireTypeVarint);
        }
        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
        self.cached_size.set(my_size);
        my_size
    }

    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
        if let Some(v) = self.revision {
            os.write_enum(1, ::protobuf::ProtobufEnum::value(&v))?;
        }
        if let Some(v) = self.file_hcontent {
            os.write_fixed64(2, v)?;
        }
        if let Some(v) = self.rtime_updated {
            os.write_uint32(3, v)?;
        }
        os.write_unknown_fields(self.get_unknown_fields())?;
        ::std::result::Result::Ok(())
    }

    fn get_cached_size(&self) -> u32 {
        self.cached_size.get()
    }

    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
        &self.unknown_fields
    }

    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
        &mut self.unknown_fields
    }

    fn as_any(&self) -> &dyn (::std::any::Any) {
        self as &dyn (::std::any::Any)
    }
    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
        self as &mut dyn (::std::any::Any)
    }
    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
        self
    }

    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
        Self::descriptor_static()
    }

    fn new() -> CPublishedFile_FileSubscribed_Notification_RevisionData {
        CPublishedFile_FileSubscribed_Notification_RevisionData::new()
    }

    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
        descriptor.get(|| {
            let mut fields = ::std::vec::Vec::new();
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeEnum<EPublishedFileRevision>>(
                "revision",
                |m: &CPublishedFile_FileSubscribed_Notification_RevisionData| { &m.revision },
                |m: &mut CPublishedFile_FileSubscribed_Notification_RevisionData| { &mut m.revision },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeFixed64>(
                "file_hcontent",
                |m: &CPublishedFile_FileSubscribed_Notification_RevisionData| { &m.file_hcontent },
                |m: &mut CPublishedFile_FileSubscribed_Notification_RevisionData| { &mut m.file_hcontent },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeUint32>(
                "rtime_updated",
                |m: &CPublishedFile_FileSubscribed_Notification_RevisionData| { &m.rtime_updated },
                |m: &mut CPublishedFile_FileSubscribed_Notification_RevisionData| { &mut m.rtime_updated },
            ));
            ::protobuf::reflect::MessageDescriptor::new_pb_name::<CPublishedFile_FileSubscribed_Notification_RevisionData>(
                "CPublishedFile_FileSubscribed_Notification.RevisionData",
                fields,
                file_descriptor_proto()
            )
        })
    }

    fn default_instance() -> &'static CPublishedFile_FileSubscribed_Notification_RevisionData {
        static instance: ::protobuf::rt::LazyV2<CPublishedFile_FileSubscribed_Notification_RevisionData> = ::protobuf::rt::LazyV2::INIT;
        instance.get(CPublishedFile_FileSubscribed_Notification_RevisionData::new)
    }
}

impl ::protobuf::Clear for CPublishedFile_FileSubscribed_Notification_RevisionData {
    fn clear(&mut self) {
        self.revision = ::std::option::Option::None;
        self.file_hcontent = ::std::option::Option::None;
        self.rtime_updated = ::std::option::Option::None;
        self.unknown_fields.clear();
    }
}

impl ::std::fmt::Debug for CPublishedFile_FileSubscribed_Notification_RevisionData {
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
        ::protobuf::text_format::fmt(self, f)
    }
}

impl ::protobuf::reflect::ProtobufValue for CPublishedFile_FileSubscribed_Notification_RevisionData {
    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
        ::protobuf::reflect::ReflectValueRef::Message(self)
    }
}

#[derive(PartialEq,Clone,Default)]
pub struct CPublishedFile_FileUnsubscribed_Notification {
    // message fields
    published_file_id: ::std::option::Option<u64>,
    app_id: ::std::option::Option<u32>,
    // special fields
    pub unknown_fields: ::protobuf::UnknownFields,
    pub cached_size: ::protobuf::CachedSize,
}

impl<'a> ::std::default::Default for &'a CPublishedFile_FileUnsubscribed_Notification {
    fn default() -> &'a CPublishedFile_FileUnsubscribed_Notification {
        <CPublishedFile_FileUnsubscribed_Notification as ::protobuf::Message>::default_instance()
    }
}

impl CPublishedFile_FileUnsubscribed_Notification {
    pub fn new() -> CPublishedFile_FileUnsubscribed_Notification {
        ::std::default::Default::default()
    }

    // optional fixed64 published_file_id = 1;


    pub fn get_published_file_id(&self) -> u64 {
        self.published_file_id.unwrap_or(0)
    }
    pub fn clear_published_file_id(&mut self) {
        self.published_file_id = ::std::option::Option::None;
    }

    pub fn has_published_file_id(&self) -> bool {
        self.published_file_id.is_some()
    }

    // Param is passed by value, moved
    pub fn set_published_file_id(&mut self, v: u64) {
        self.published_file_id = ::std::option::Option::Some(v);
    }

    // optional uint32 app_id = 2;


    pub fn get_app_id(&self) -> u32 {
        self.app_id.unwrap_or(0)
    }
    pub fn clear_app_id(&mut self) {
        self.app_id = ::std::option::Option::None;
    }

    pub fn has_app_id(&self) -> bool {
        self.app_id.is_some()
    }

    // Param is passed by value, moved
    pub fn set_app_id(&mut self, v: u32) {
        self.app_id = ::std::option::Option::Some(v);
    }
}

impl ::protobuf::Message for CPublishedFile_FileUnsubscribed_Notification {
    fn is_initialized(&self) -> bool {
        true
    }

    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
        while !is.eof()? {
            let (field_number, wire_type) = is.read_tag_unpack()?;
            match field_number {
                1 => {
                    if wire_type != ::protobuf::wire_format::WireTypeFixed64 {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_fixed64()?;
                    self.published_file_id = ::std::option::Option::Some(tmp);
                },
                2 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_uint32()?;
                    self.app_id = ::std::option::Option::Some(tmp);
                },
                _ => {
                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
                },
            };
        }
        ::std::result::Result::Ok(())
    }

    // Compute sizes of nested messages
    #[allow(unused_variables)]
    fn compute_size(&self) -> u32 {
        let mut my_size = 0;
        if let Some(v) = self.published_file_id {
            my_size += 9;
        }
        if let Some(v) = self.app_id {
            my_size += ::protobuf::rt::value_size(2, v, ::protobuf::wire_format::WireTypeVarint);
        }
        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
        self.cached_size.set(my_size);
        my_size
    }

    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
        if let Some(v) = self.published_file_id {
            os.write_fixed64(1, v)?;
        }
        if let Some(v) = self.app_id {
            os.write_uint32(2, v)?;
        }
        os.write_unknown_fields(self.get_unknown_fields())?;
        ::std::result::Result::Ok(())
    }

    fn get_cached_size(&self) -> u32 {
        self.cached_size.get()
    }

    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
        &self.unknown_fields
    }

    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
        &mut self.unknown_fields
    }

    fn as_any(&self) -> &dyn (::std::any::Any) {
        self as &dyn (::std::any::Any)
    }
    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
        self as &mut dyn (::std::any::Any)
    }
    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
        self
    }

    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
        Self::descriptor_static()
    }

    fn new() -> CPublishedFile_FileUnsubscribed_Notification {
        CPublishedFile_FileUnsubscribed_Notification::new()
    }

    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
        descriptor.get(|| {
            let mut fields = ::std::vec::Vec::new();
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeFixed64>(
                "published_file_id",
                |m: &CPublishedFile_FileUnsubscribed_Notification| { &m.published_file_id },
                |m: &mut CPublishedFile_FileUnsubscribed_Notification| { &mut m.published_file_id },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeUint32>(
                "app_id",
                |m: &CPublishedFile_FileUnsubscribed_Notification| { &m.app_id },
                |m: &mut CPublishedFile_FileUnsubscribed_Notification| { &mut m.app_id },
            ));
            ::protobuf::reflect::MessageDescriptor::new_pb_name::<CPublishedFile_FileUnsubscribed_Notification>(
                "CPublishedFile_FileUnsubscribed_Notification",
                fields,
                file_descriptor_proto()
            )
        })
    }

    fn default_instance() -> &'static CPublishedFile_FileUnsubscribed_Notification {
        static instance: ::protobuf::rt::LazyV2<CPublishedFile_FileUnsubscribed_Notification> = ::protobuf::rt::LazyV2::INIT;
        instance.get(CPublishedFile_FileUnsubscribed_Notification::new)
    }
}

impl ::protobuf::Clear for CPublishedFile_FileUnsubscribed_Notification {
    fn clear(&mut self) {
        self.published_file_id = ::std::option::Option::None;
        self.app_id = ::std::option::Option::None;
        self.unknown_fields.clear();
    }
}

impl ::std::fmt::Debug for CPublishedFile_FileUnsubscribed_Notification {
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
        ::protobuf::text_format::fmt(self, f)
    }
}

impl ::protobuf::reflect::ProtobufValue for CPublishedFile_FileUnsubscribed_Notification {
    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
        ::protobuf::reflect::ReflectValueRef::Message(self)
    }
}

#[derive(PartialEq,Clone,Default)]
pub struct CPublishedFile_FileDeleted_Client_Notification {
    // message fields
    published_file_id: ::std::option::Option<u64>,
    app_id: ::std::option::Option<u32>,
    // special fields
    pub unknown_fields: ::protobuf::UnknownFields,
    pub cached_size: ::protobuf::CachedSize,
}

impl<'a> ::std::default::Default for &'a CPublishedFile_FileDeleted_Client_Notification {
    fn default() -> &'a CPublishedFile_FileDeleted_Client_Notification {
        <CPublishedFile_FileDeleted_Client_Notification as ::protobuf::Message>::default_instance()
    }
}

impl CPublishedFile_FileDeleted_Client_Notification {
    pub fn new() -> CPublishedFile_FileDeleted_Client_Notification {
        ::std::default::Default::default()
    }

    // optional fixed64 published_file_id = 1;


    pub fn get_published_file_id(&self) -> u64 {
        self.published_file_id.unwrap_or(0)
    }
    pub fn clear_published_file_id(&mut self) {
        self.published_file_id = ::std::option::Option::None;
    }

    pub fn has_published_file_id(&self) -> bool {
        self.published_file_id.is_some()
    }

    // Param is passed by value, moved
    pub fn set_published_file_id(&mut self, v: u64) {
        self.published_file_id = ::std::option::Option::Some(v);
    }

    // optional uint32 app_id = 2;


    pub fn get_app_id(&self) -> u32 {
        self.app_id.unwrap_or(0)
    }
    pub fn clear_app_id(&mut self) {
        self.app_id = ::std::option::Option::None;
    }

    pub fn has_app_id(&self) -> bool {
        self.app_id.is_some()
    }

    // Param is passed by value, moved
    pub fn set_app_id(&mut self, v: u32) {
        self.app_id = ::std::option::Option::Some(v);
    }
}

impl ::protobuf::Message for CPublishedFile_FileDeleted_Client_Notification {
    fn is_initialized(&self) -> bool {
        true
    }

    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
        while !is.eof()? {
            let (field_number, wire_type) = is.read_tag_unpack()?;
            match field_number {
                1 => {
                    if wire_type != ::protobuf::wire_format::WireTypeFixed64 {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_fixed64()?;
                    self.published_file_id = ::std::option::Option::Some(tmp);
                },
                2 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_uint32()?;
                    self.app_id = ::std::option::Option::Some(tmp);
                },
                _ => {
                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
                },
            };
        }
        ::std::result::Result::Ok(())
    }

    // Compute sizes of nested messages
    #[allow(unused_variables)]
    fn compute_size(&self) -> u32 {
        let mut my_size = 0;
        if let Some(v) = self.published_file_id {
            my_size += 9;
        }
        if let Some(v) = self.app_id {
            my_size += ::protobuf::rt::value_size(2, v, ::protobuf::wire_format::WireTypeVarint);
        }
        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
        self.cached_size.set(my_size);
        my_size
    }

    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
        if let Some(v) = self.published_file_id {
            os.write_fixed64(1, v)?;
        }
        if let Some(v) = self.app_id {
            os.write_uint32(2, v)?;
        }
        os.write_unknown_fields(self.get_unknown_fields())?;
        ::std::result::Result::Ok(())
    }

    fn get_cached_size(&self) -> u32 {
        self.cached_size.get()
    }

    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
        &self.unknown_fields
    }

    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
        &mut self.unknown_fields
    }

    fn as_any(&self) -> &dyn (::std::any::Any) {
        self as &dyn (::std::any::Any)
    }
    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
        self as &mut dyn (::std::any::Any)
    }
    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
        self
    }

    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
        Self::descriptor_static()
    }

    fn new() -> CPublishedFile_FileDeleted_Client_Notification {
        CPublishedFile_FileDeleted_Client_Notification::new()
    }

    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
        descriptor.get(|| {
            let mut fields = ::std::vec::Vec::new();
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeFixed64>(
                "published_file_id",
                |m: &CPublishedFile_FileDeleted_Client_Notification| { &m.published_file_id },
                |m: &mut CPublishedFile_FileDeleted_Client_Notification| { &mut m.published_file_id },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeUint32>(
                "app_id",
                |m: &CPublishedFile_FileDeleted_Client_Notification| { &m.app_id },
                |m: &mut CPublishedFile_FileDeleted_Client_Notification| { &mut m.app_id },
            ));
            ::protobuf::reflect::MessageDescriptor::new_pb_name::<CPublishedFile_FileDeleted_Client_Notification>(
                "CPublishedFile_FileDeleted_Client_Notification",
                fields,
                file_descriptor_proto()
            )
        })
    }

    fn default_instance() -> &'static CPublishedFile_FileDeleted_Client_Notification {
        static instance: ::protobuf::rt::LazyV2<CPublishedFile_FileDeleted_Client_Notification> = ::protobuf::rt::LazyV2::INIT;
        instance.get(CPublishedFile_FileDeleted_Client_Notification::new)
    }
}

impl ::protobuf::Clear for CPublishedFile_FileDeleted_Client_Notification {
    fn clear(&mut self) {
        self.published_file_id = ::std::option::Option::None;
        self.app_id = ::std::option::Option::None;
        self.unknown_fields.clear();
    }
}

impl ::std::fmt::Debug for CPublishedFile_FileDeleted_Client_Notification {
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
        ::protobuf::text_format::fmt(self, f)
    }
}

impl ::protobuf::reflect::ProtobufValue for CPublishedFile_FileDeleted_Client_Notification {
    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
        ::protobuf::reflect::ReflectValueRef::Message(self)
    }
}

#[derive(Clone,PartialEq,Eq,Debug,Hash)]
pub enum EPublishedFileRevision {
    k_EPublishedFileRevision_Default = 0,
    k_EPublishedFileRevision_Latest = 1,
    k_EPublishedFileRevision_ApprovedSnapshot = 2,
    k_EPublishedFileRevision_ApprovedSnapshot_China = 3,
    k_EPublishedFileRevision_RejectedSnapshot = 4,
    k_EPublishedFileRevision_RejectedSnapshot_China = 5,
}

impl ::protobuf::ProtobufEnum for EPublishedFileRevision {
    fn value(&self) -> i32 {
        *self as i32
    }

    fn from_i32(value: i32) -> ::std::option::Option<EPublishedFileRevision> {
        match value {
            0 => ::std::option::Option::Some(EPublishedFileRevision::k_EPublishedFileRevision_Default),
            1 => ::std::option::Option::Some(EPublishedFileRevision::k_EPublishedFileRevision_Latest),
            2 => ::std::option::Option::Some(EPublishedFileRevision::k_EPublishedFileRevision_ApprovedSnapshot),
            3 => ::std::option::Option::Some(EPublishedFileRevision::k_EPublishedFileRevision_ApprovedSnapshot_China),
            4 => ::std::option::Option::Some(EPublishedFileRevision::k_EPublishedFileRevision_RejectedSnapshot),
            5 => ::std::option::Option::Some(EPublishedFileRevision::k_EPublishedFileRevision_RejectedSnapshot_China),
            _ => ::std::option::Option::None
        }
    }

    fn values() -> &'static [Self] {
        static values: &'static [EPublishedFileRevision] = &[
            EPublishedFileRevision::k_EPublishedFileRevision_Default,
            EPublishedFileRevision::k_EPublishedFileRevision_Latest,
            EPublishedFileRevision::k_EPublishedFileRevision_ApprovedSnapshot,
            EPublishedFileRevision::k_EPublishedFileRevision_ApprovedSnapshot_China,
            EPublishedFileRevision::k_EPublishedFileRevision_RejectedSnapshot,
            EPublishedFileRevision::k_EPublishedFileRevision_RejectedSnapshot_China,
        ];
        values
    }

    fn enum_descriptor_static() -> &'static ::protobuf::reflect::EnumDescriptor {
        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::EnumDescriptor> = ::protobuf::rt::LazyV2::INIT;
        descriptor.get(|| {
            ::protobuf::reflect::EnumDescriptor::new_pb_name::<EPublishedFileRevision>("EPublishedFileRevision", file_descriptor_proto())
        })
    }
}

impl ::std::marker::Copy for EPublishedFileRevision {
}

impl ::std::default::Default for EPublishedFileRevision {
    fn default() -> Self {
        EPublishedFileRevision::k_EPublishedFileRevision_Default
    }
}

impl ::protobuf::reflect::ProtobufValue for EPublishedFileRevision {
    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
        ::protobuf::reflect::ReflectValueRef::Enum(::protobuf::ProtobufEnum::descriptor(self))
    }
}

#[derive(Clone,PartialEq,Eq,Debug,Hash)]
pub enum EPublishedFileForSaleStatus {
    k_PFFSS_NotForSale = 0,
    k_PFFSS_PendingApproval = 1,
    k_PFFSS_ApprovedForSale = 2,
    k_PFFSS_RejectedForSale = 3,
    k_PFFSS_NoLongerForSale = 4,
    k_PFFSS_TentativeApproval = 5,
}

impl ::protobuf::ProtobufEnum for EPublishedFileForSaleStatus {
    fn value(&self) -> i32 {
        *self as i32
    }

    fn from_i32(value: i32) -> ::std::option::Option<EPublishedFileForSaleStatus> {
        match value {
            0 => ::std::option::Option::Some(EPublishedFileForSaleStatus::k_PFFSS_NotForSale),
            1 => ::std::option::Option::Some(EPublishedFileForSaleStatus::k_PFFSS_PendingApproval),
            2 => ::std::option::Option::Some(EPublishedFileForSaleStatus::k_PFFSS_ApprovedForSale),
            3 => ::std::option::Option::Some(EPublishedFileForSaleStatus::k_PFFSS_RejectedForSale),
            4 => ::std::option::Option::Some(EPublishedFileForSaleStatus::k_PFFSS_NoLongerForSale),
            5 => ::std::option::Option::Some(EPublishedFileForSaleStatus::k_PFFSS_TentativeApproval),
            _ => ::std::option::Option::None
        }
    }

    fn values() -> &'static [Self] {
        static values: &'static [EPublishedFileForSaleStatus] = &[
            EPublishedFileForSaleStatus::k_PFFSS_NotForSale,
            EPublishedFileForSaleStatus::k_PFFSS_PendingApproval,
            EPublishedFileForSaleStatus::k_PFFSS_ApprovedForSale,
            EPublishedFileForSaleStatus::k_PFFSS_RejectedForSale,
            EPublishedFileForSaleStatus::k_PFFSS_NoLongerForSale,
            EPublishedFileForSaleStatus::k_PFFSS_TentativeApproval,
        ];
        values
    }

    fn enum_descriptor_static() -> &'static ::protobuf::reflect::EnumDescriptor {
        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::EnumDescriptor> = ::protobuf::rt::LazyV2::INIT;
        descriptor.get(|| {
            ::protobuf::reflect::EnumDescriptor::new_pb_name::<EPublishedFileForSaleStatus>("EPublishedFileForSaleStatus", file_descriptor_proto())
        })
    }
}

impl ::std::marker::Copy for EPublishedFileForSaleStatus {
}

impl ::std::default::Default for EPublishedFileForSaleStatus {
    fn default() -> Self {
        EPublishedFileForSaleStatus::k_PFFSS_NotForSale
    }
}

impl ::protobuf::reflect::ProtobufValue for EPublishedFileForSaleStatus {
    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
        ::protobuf::reflect::ReflectValueRef::Enum(::protobuf::ProtobufEnum::descriptor(self))
    }
}

static file_descriptor_proto_data: &'static [u8] = b"\
    \n-steammessages_publishedfile.steamclient.proto\x1a,steammessages_unifi\
    ed_base.steamclient.proto\x1a\x0benums.proto\"\xa4\x01\n\x20CPublishedFi\
    le_Subscribe_Request\x12(\n\x0fpublishedfileid\x18\x01\x20\x01(\x04R\x0f\
    publishedfileid\x12\x1b\n\tlist_type\x18\x02\x20\x01(\rR\x08listType\x12\
    \x14\n\x05appid\x18\x03\x20\x01(\x05R\x05appid\x12#\n\rnotify_client\x18\
    \x04\x20\x01(\x08R\x0cnotifyClient\"#\n!CPublishedFile_Subscribe_Respons\
    e\"\xa6\x01\n\"CPublishedFile_Unsubscribe_Request\x12(\n\x0fpublishedfil\
    eid\x18\x01\x20\x01(\x04R\x0fpublishedfileid\x12\x1b\n\tlist_type\x18\
    \x02\x20\x01(\rR\x08listType\x12\x14\n\x05appid\x18\x03\x20\x01(\x05R\
    \x05appid\x12#\n\rnotify_client\x18\x04\x20\x01(\x08R\x0cnotifyClient\"%\
    \n#CPublishedFile_Unsubscribe_Response\"O\n#CPublishedFile_CanSubscribe_\
    Request\x12(\n\x0fpublishedfileid\x18\x01\x20\x01(\x04R\x0fpublishedfile\
    id\"K\n$CPublishedFile_CanSubscribe_Response\x12#\n\rcan_subscribe\x18\
    \x01\x20\x01(\x08R\x0ccanSubscribe\"\x9e\x0c\n\x1eCPublishedFile_Publish\
    _Request\x12C\n\x05appid\x18\x01\x20\x01(\rR\x05appidB-\x82\xb5\x18)App\
    \x20Id\x20this\x20file\x20is\x20being\x20published\x20FROM.\x12R\n\x0eco\
    nsumer_appid\x18\x02\x20\x01(\rR\rconsumerAppidB+\x82\xb5\x18'App\x20Id\
    \x20this\x20file\x20is\x20being\x20published\x20TO.\x12Z\n\rcloudfilenam\
    e\x18\x03\x20\x01(\tR\rcloudfilenameB4\x82\xb5\x180Name\x20of\x20the\x20\
    file\x20to\x20publish\x20in\x20the\x20user's\x20cloud.\x12q\n\x15preview\
    _cloudfilename\x18\x04\x20\x01(\tR\x14previewCloudfilenameB<\x82\xb5\x18\
    8Name\x20of\x20the\x20file\x20to\x20use\x20as\x20the\x20published\x20fil\
    e's\x20preview.\x12<\n\x05title\x18\x05\x20\x01(\tR\x05titleB&\x82\xb5\
    \x18\"Text\x20title\x20for\x20the\x20published\x20file.\x12W\n\x10file_d\
    escription\x18\x06\x20\x01(\tR\x0ffileDescriptionB,\x82\xb5\x18(Text\x20\
    description\x20for\x20the\x20published\x20file.\x12V\n\tfile_type\x18\
    \x07\x20\x01(\rR\x08fileTypeB9\x82\xb5\x185(EWorkshopFileType)\x20Type\
    \x20of\x20Workshop\x20file\x20to\x20publish.\x12_\n\x16consumer_shortcut\
    _name\x18\x08\x20\x01(\tR\x14consumerShortcutNameB)\x82\xb5\x18%Shortcut\
    \x20name\x20for\x20the\x20published\x20file.\x12Z\n\x10youtube_username\
    \x18\t\x20\x01(\tR\x0fyoutubeUsernameB/\x82\xb5\x18+(Optional)\x20User's\
    \x20YouTube\x20account\x20username.\x12l\n\x0fyoutube_videoid\x18\n\x20\
    \x01(\tR\x0eyoutubeVideoidBC\x82\xb5\x18?(Optional)\x20Video\x20Id\x20of\
    \x20a\x20YouTube\x20video\x20for\x20this\x20published\x20file.\x12\x8d\
    \x01\n\nvisibility\x18\x0b\x20\x01(\rR\nvisibilityBm\x82\xb5\x18i(ERemot\
    eStoragePublishedFileVisibility)\x20Visibility\x20of\x20the\x20published\
    \x20file\x20(private,\x20friends,\x20public,\x20etc.)\x12x\n\x0credirect\
    _uri\x18\x0c\x20\x01(\tR\x0bredirectUriBU\x82\xb5\x18Q(Optional)\x20If\
    \x20supplied,\x20the\x20resulting\x20published\x20file's\x20Id\x20is\x20\
    appended\x20to\x20the\x20URI.\x12J\n\x04tags\x18\r\x20\x03(\tR\x04tagsB6\
    \x82\xb5\x182Array\x20of\x20text\x20tags\x20to\x20apply\x20to\x20the\x20\
    published\x20file.\x12i\n\x0fcollection_type\x18\x0e\x20\x01(\tR\x0ecoll\
    ectionTypeB@\x82\xb5\x18<(Optional)\x20Type\x20of\x20collection\x20the\
    \x20published\x20file\x20represents.\x12W\n\tgame_type\x18\x0f\x20\x01(\
    \tR\x08gameTypeB:\x82\xb5\x186(Optional)\x20Type\x20of\x20game\x20the\
    \x20published\x20file\x20represents.\x12`\n\x03url\x18\x10\x20\x01(\tR\
    \x03urlBN\x82\xb5\x18J(Optional)\x20If\x20this\x20represents\x20a\x20gam\
    e,\x20this\x20is\x20the\x20URL\x20to\x20that\x20game's\x20page.\"n\n\x1f\
    CPublishedFile_Publish_Response\x12(\n\x0fpublishedfileid\x18\x01\x20\
    \x01(\x04R\x0fpublishedfileid\x12!\n\x0credirect_uri\x18\x02\x20\x01(\tR\
    \x0bredirectUri\"\x8d\x0c\n!CPublishedFile_GetDetails_Request\x12b\n\x10\
    publishedfileids\x18\x01\x20\x03(\x06R\x10publishedfileidsB6\x82\xb5\x18\
    2Set\x20of\x20published\x20file\x20Ids\x20to\x20retrieve\x20details\x20f\
    or.\x12^\n\x0bincludetags\x18\x02\x20\x01(\x08R\x0bincludetagsB<\x82\xb5\
    \x188If\x20true,\x20return\x20tag\x20information\x20in\x20the\x20returne\
    d\x20details.\x12~\n\x19includeadditionalpreviews\x18\x03\x20\x01(\x08R\
    \x19includeadditionalpreviewsB@\x82\xb5\x18<If\x20true,\x20return\x20pre\
    view\x20information\x20in\x20the\x20returned\x20details.\x12_\n\x0finclu\
    dechildren\x18\x04\x20\x01(\x08R\x0fincludechildrenB5\x82\xb5\x181If\x20\
    true,\x20return\x20children\x20in\x20the\x20returned\x20details.\x12a\n\
    \rincludekvtags\x18\x05\x20\x01(\x08R\rincludekvtagsB;\x82\xb5\x187If\
    \x20true,\x20return\x20key\x20value\x20tags\x20in\x20the\x20returned\x20\
    details.\x12Z\n\x0cincludevotes\x18\x06\x20\x01(\x08R\x0cincludevotesB6\
    \x82\xb5\x182If\x20true,\x20return\x20vote\x20data\x20in\x20the\x20retur\
    ned\x20details.\x12u\n\x11short_description\x18\x08\x20\x01(\x08R\x10sho\
    rtDescriptionBH\x82\xb5\x18DIf\x20true,\x20return\x20a\x20short\x20descr\
    iption\x20instead\x20of\x20the\x20full\x20description.\x12`\n\x12include\
    forsaledata\x18\n\x20\x01(\x08R\x12includeforsaledataB0\x82\xb5\x18,If\
    \x20true,\x20return\x20pricing\x20data,\x20if\x20applicable.\x12S\n\x0fi\
    ncludemetadata\x18\x0b\x20\x01(\x08R\x0fincludemetadataB)\x82\xb5\x18%If\
    \x20true,\x20populate\x20the\x20metadata\x20field.\x12_\n\x08language\
    \x18\x0c\x20\x01(\x05:\x010R\x08languageB@\x82\xb5\x18<Specifies\x20the\
    \x20localized\x20text\x20to\x20return.\x20Defaults\x20to\x20English.\x12\
    |\n\x15return_playtime_stats\x18\r\x20\x01(\rR\x13returnPlaytimeStatsBH\
    \x82\xb5\x18DReturn\x20playtime\x20stats\x20for\x20the\x20specified\x20n\
    umber\x20of\x20days\x20before\x20today.\x12\x14\n\x05appid\x18\x0e\x20\
    \x01(\rR\x05appid\x12^\n\x18strip_description_bbcode\x18\x0f\x20\x01(\
    \x08R\x16stripDescriptionBbcodeB$\x82\xb5\x18\x20Strips\x20BBCode\x20fro\
    m\x20descriptions.\x12\x95\x01\n\x10desired_revision\x18\x10\x20\x01(\
    \x0e2\x17.EPublishedFileRevision:\x20k_EPublishedFileRevision_DefaultR\
    \x0fdesiredRevisionB/\x82\xb5\x18+Return\x20the\x20data\x20for\x20the\
    \x20specified\x20revision.\x12i\n\x10includereactions\x18\x11\x20\x01(\
    \x08:\x05falseR\x10includereactionsB6\x82\xb5\x182If\x20true,\x20then\
    \x20reactions\x20to\x20items\x20will\x20be\x20returned.\"\xff\"\n\x14Pub\
    lishedFileDetails\x12\x16\n\x06result\x18\x01\x20\x01(\rR\x06result\x12(\
    \n\x0fpublishedfileid\x18\x02\x20\x01(\x04R\x0fpublishedfileid\x12\x18\n\
    \x07creator\x18\x03\x20\x01(\x06R\x07creator\x12#\n\rcreator_appid\x18\
    \x04\x20\x01(\rR\x0ccreatorAppid\x12%\n\x0econsumer_appid\x18\x05\x20\
    \x01(\rR\rconsumerAppid\x12/\n\x13consumer_shortcutid\x18\x06\x20\x01(\r\
    R\x12consumerShortcutid\x12\x1a\n\x08filename\x18\x07\x20\x01(\tR\x08fil\
    ename\x12\x1b\n\tfile_size\x18\x08\x20\x01(\x04R\x08fileSize\x12*\n\x11p\
    review_file_size\x18\t\x20\x01(\x04R\x0fpreviewFileSize\x12\x19\n\x08fil\
    e_url\x18\n\x20\x01(\tR\x07fileUrl\x12\x1f\n\x0bpreview_url\x18\x0b\x20\
    \x01(\tR\npreviewUrl\x12&\n\x0eyoutubevideoid\x18\x0c\x20\x01(\tR\x0eyou\
    tubevideoid\x12\x10\n\x03url\x18\r\x20\x01(\tR\x03url\x12#\n\rhcontent_f\
    ile\x18\x0e\x20\x01(\x06R\x0chcontentFile\x12)\n\x10hcontent_preview\x18\
    \x0f\x20\x01(\x06R\x0fhcontentPreview\x12\x14\n\x05title\x18\x10\x20\x01\
    (\tR\x05title\x12)\n\x10file_description\x18\x11\x20\x01(\tR\x0ffileDesc\
    ription\x12+\n\x11short_description\x18\x12\x20\x01(\tR\x10shortDescript\
    ion\x12!\n\x0ctime_created\x18\x13\x20\x01(\rR\x0btimeCreated\x12!\n\x0c\
    time_updated\x18\x14\x20\x01(\rR\x0btimeUpdated\x12\x1e\n\nvisibility\
    \x18\x15\x20\x01(\rR\nvisibility\x12\x14\n\x05flags\x18\x16\x20\x01(\rR\
    \x05flags\x12#\n\rworkshop_file\x18\x17\x20\x01(\x08R\x0cworkshopFile\
    \x12+\n\x11workshop_accepted\x18\x18\x20\x01(\x08R\x10workshopAccepted\
    \x12,\n\x12show_subscribe_all\x18\x19\x20\x01(\x08R\x10showSubscribeAll\
    \x124\n\x16num_comments_developer\x18\x1a\x20\x01(\x05R\x14numCommentsDe\
    veloper\x12.\n\x13num_comments_public\x18\x1b\x20\x01(\x05R\x11numCommen\
    tsPublic\x12\x16\n\x06banned\x18\x1c\x20\x01(\x08R\x06banned\x12\x1d\n\n\
    ban_reason\x18\x1d\x20\x01(\tR\tbanReason\x12\x16\n\x06banner\x18\x1e\
    \x20\x01(\x06R\x06banner\x12$\n\x0ecan_be_deleted\x18\x1f\x20\x01(\x08R\
    \x0ccanBeDeleted\x12\"\n\x0cincompatible\x18\x20\x20\x01(\x08R\x0cincomp\
    atible\x12\x19\n\x08app_name\x18!\x20\x01(\tR\x07appName\x12\x1b\n\tfile\
    _type\x18\"\x20\x01(\rR\x08fileType\x12#\n\rcan_subscribe\x18#\x20\x01(\
    \x08R\x0ccanSubscribe\x12$\n\rsubscriptions\x18$\x20\x01(\rR\rsubscripti\
    ons\x12\x1c\n\tfavorited\x18%\x20\x01(\rR\tfavorited\x12\x1c\n\tfollower\
    s\x18&\x20\x01(\rR\tfollowers\x125\n\x16lifetime_subscriptions\x18'\x20\
    \x01(\rR\x15lifetimeSubscriptions\x12-\n\x12lifetime_favorited\x18(\x20\
    \x01(\rR\x11lifetimeFavorited\x12-\n\x12lifetime_followers\x18)\x20\x01(\
    \rR\x11lifetimeFollowers\x12+\n\x11lifetime_playtime\x18>\x20\x01(\x04R\
    \x10lifetimePlaytime\x12<\n\x1alifetime_playtime_sessions\x18?\x20\x01(\
    \x04R\x18lifetimePlaytimeSessions\x12\x14\n\x05views\x18*\x20\x01(\rR\
    \x05views\x12\x1f\n\x0bimage_width\x18+\x20\x01(\rR\nimageWidth\x12!\n\
    \x0cimage_height\x18,\x20\x01(\rR\x0bimageHeight\x12\x1b\n\timage_url\
    \x18-\x20\x01(\tR\x08imageUrl\x12\x1f\n\x0bspoiler_tag\x18.\x20\x01(\x08\
    R\nspoilerTag\x12\x1e\n\nshortcutid\x18/\x20\x01(\rR\nshortcutid\x12\"\n\
    \x0cshortcutname\x180\x20\x01(\tR\x0cshortcutname\x12!\n\x0cnum_children\
    \x181\x20\x01(\rR\x0bnumChildren\x12\x1f\n\x0bnum_reports\x182\x20\x01(\
    \rR\nnumReports\x129\n\x08previews\x183\x20\x03(\x0b2\x1d.PublishedFileD\
    etails.PreviewR\x08previews\x12-\n\x04tags\x184\x20\x03(\x0b2\x19.Publis\
    hedFileDetails.TagR\x04tags\x127\n\x08children\x185\x20\x03(\x0b2\x1b.Pu\
    blishedFileDetails.ChildR\x08children\x123\n\x06kvtags\x186\x20\x03(\x0b\
    2\x1b.PublishedFileDetails.KVTagR\x06kvtags\x12;\n\tvote_data\x187\x20\
    \x01(\x0b2\x1e.PublishedFileDetails.VoteDataR\x08voteData\x12J\n\x0eplay\
    time_stats\x18@\x20\x01(\x0b2#.PublishedFileDetails.PlaytimeStatsR\rplay\
    timeStats\x12\x82\x01\n\x0ftime_subscribed\x188\x20\x01(\rR\x0etimeSubsc\
    ribedBY\x82\xb5\x18UOnly\x20valid\x20in\x20PublishedFile.GetUserFiles\
    \x20and\x20not\x20normal\x20PublishedFile.GetDetail\x20calls\x12n\n\rfor\
    _sale_data\x189\x20\x01(\x0b2!.PublishedFileDetails.ForSaleDataR\x0bforS\
    aleDataB'\x82\xb5\x18#Pricing\x20information,\x20if\x20applicable.\x12A\
    \n\x08metadata\x18:\x20\x01(\tR\x08metadataB%\x82\xb5\x18!Metadata\x20as\
    sociated\x20with\x20the\x20item\x12M\n\x08language\x18=\x20\x01(\x05:\
    \x010R\x08languageB.\x82\xb5\x18*The\x20language\x20of\x20the\x20title\
    \x20and\x20description.\x126\n\x17maybe_inappropriate_sex\x18A\x20\x01(\
    \x08R\x15maybeInappropriateSex\x12@\n\x1cmaybe_inappropriate_violence\
    \x18B\x20\x01(\x08R\x1amaybeInappropriateViolence\x12g\n\x16revision_cha\
    nge_number\x18C\x20\x01(\x04R\x14revisionChangeNumberB1\x82\xb5\x18-The\
    \x20change\x20number\x20for\x20the\x20specified\x20revision.\x12\xe6\x01\
    \n\x08revision\x18D\x20\x01(\x0e2\x17.EPublishedFileRevision:\x20k_EPubl\
    ishedFileRevision_DefaultR\x08revisionB\x8e\x01\x82\xb5\x18\x89\x01The\
    \x20revision\x20of\x20the\x20data\x20returned,\x20usually\x20k_EPublishe\
    dFileRevision_Latest,\x20but\x20can\x20be\x20another\x20revision/snapsho\
    t\x20depending\x20on\x20the\x20caller.\x12a\n\x13available_revisions\x18\
    E\x20\x03(\x0e2\x17.EPublishedFileRevisionR\x12availableRevisionsB\x17\
    \x82\xb5\x18\x13Available\x20revisions\x12X\n\treactions\x18F\x20\x03(\
    \x0b2\x1e.PublishedFileDetails.ReactionR\treactionsB\x1a\x82\xb5\x18\x16\
    Reactions\x20to\x20this\x20item\x12o\n\x15ban_text_check_result\x18G\x20\
    \x01(\x0e2\x17.EBanContentCheckResult:#k_EBanContentCheckResult_NotScann\
    edR\x12banTextCheckResult\x1aX\n\x03Tag\x12\x10\n\x03tag\x18\x01\x20\x01\
    (\tR\x03tag\x12\x1c\n\tadminonly\x18\x02\x20\x01(\x08R\tadminonly\x12!\n\
    \x0cdisplay_name\x18\x03\x20\x01(\tR\x0bdisplayName\x1a\x81\x02\n\x07Pre\
    view\x12\x1c\n\tpreviewid\x18\x01\x20\x01(\x04R\tpreviewid\x12\x1c\n\tso\
    rtorder\x18\x02\x20\x01(\rR\tsortorder\x12\x10\n\x03url\x18\x03\x20\x01(\
    \tR\x03url\x12\x12\n\x04size\x18\x04\x20\x01(\rR\x04size\x12\x1a\n\x08fi\
    lename\x18\x05\x20\x01(\tR\x08filename\x12&\n\x0eyoutubevideoid\x18\x06\
    \x20\x01(\tR\x0eyoutubevideoid\x12!\n\x0cpreview_type\x18\x07\x20\x01(\r\
    R\x0bpreviewType\x12-\n\x12external_reference\x18\x08\x20\x01(\tR\x11ext\
    ernalReference\x1al\n\x05Child\x12(\n\x0fpublishedfileid\x18\x01\x20\x01\
    (\x04R\x0fpublishedfileid\x12\x1c\n\tsortorder\x18\x02\x20\x01(\rR\tsort\
    order\x12\x1b\n\tfile_type\x18\x03\x20\x01(\rR\x08fileType\x1a/\n\x05KVT\
    ag\x12\x10\n\x03key\x18\x01\x20\x01(\tR\x03key\x12\x14\n\x05value\x18\
    \x02\x20\x01(\tR\x05value\x1aZ\n\x08VoteData\x12\x14\n\x05score\x18\x01\
    \x20\x01(\x02R\x05score\x12\x19\n\x08votes_up\x18\x02\x20\x01(\rR\x07vot\
    esUp\x12\x1d\n\nvotes_down\x18\x03\x20\x01(\rR\tvotesDown\x1a\xbe\x02\n\
    \x0bForSaleData\x12\x1e\n\x0bis_for_sale\x18\x01\x20\x01(\x08R\tisForSal\
    e\x12%\n\x0eprice_category\x18\x02\x20\x01(\rR\rpriceCategory\x12J\n\x07\
    estatus\x18\x03\x20\x01(\x0e2\x1c.EPublishedFileForSaleStatus:\x12k_PFFS\
    S_NotForSaleR\x07estatus\x120\n\x14price_category_floor\x18\x04\x20\x01(\
    \rR\x12priceCategoryFloor\x129\n\x1aprice_is_pay_what_you_want\x18\x05\
    \x20\x01(\x08R\x15priceIsPayWhatYouWant\x12/\n\x13discount_percentage\
    \x18\x06\x20\x01(\rR\x12discountPercentage\x1a]\n\rPlaytimeStats\x12)\n\
    \x10playtime_seconds\x18\x01\x20\x01(\x04R\x0fplaytimeSeconds\x12!\n\x0c\
    num_sessions\x18\x02\x20\x01(\x04R\x0bnumSessions\x1a@\n\x08Reaction\x12\
    \x1e\n\nreactionid\x18\x01\x20\x01(\rR\nreactionid\x12\x14\n\x05count\
    \x18\x02\x20\x01(\rR\x05count\"o\n\"CPublishedFile_GetDetails_Response\
    \x12I\n\x14publishedfiledetails\x18\x01\x20\x03(\x0b2\x15.PublishedFileD\
    etailsR\x14publishedfiledetails\"\xb8\x03\n\"CPublishedFile_GetItemInfo_\
    Request\x12\x15\n\x06app_id\x18\x01\x20\x01(\rR\x05appId\x12*\n\x11last_\
    time_updated\x18\x02\x20\x01(\rR\x0flastTimeUpdated\x12W\n\x0eworkshop_i\
    tems\x18\x03\x20\x03(\x0b20.CPublishedFile_GetItemInfo_Request.WorkshopI\
    temR\rworkshopItems\x1a\xf5\x01\n\x0cWorkshopItem\x12*\n\x11published_fi\
    le_id\x18\x01\x20\x01(\x06R\x0fpublishedFileId\x12!\n\x0ctime_updated\
    \x18\x02\x20\x01(\rR\x0btimeUpdated\x12\x95\x01\n\x10desired_revision\
    \x18\x03\x20\x01(\x0e2\x17.EPublishedFileRevision:\x20k_EPublishedFileRe\
    vision_DefaultR\x0fdesiredRevisionB/\x82\xb5\x18+Return\x20the\x20data\
    \x20for\x20the\x20specified\x20revision.\"\xe4\x02\n#CPublishedFile_GetI\
    temInfo_Response\x12\x1f\n\x0bupdate_time\x18\x01\x20\x01(\rR\nupdateTim\
    e\x12\\\n\x0eworkshop_items\x18\x02\x20\x03(\x0b25.CPublishedFile_GetIte\
    mInfo_Response.WorkshopItemInfoR\rworkshopItems\x12#\n\rprivate_items\
    \x18\x03\x20\x03(\x06R\x0cprivateItems\x1a\x98\x01\n\x10WorkshopItemInfo\
    \x12*\n\x11published_file_id\x18\x01\x20\x01(\x06R\x0fpublishedFileId\
    \x12!\n\x0ctime_updated\x18\x02\x20\x01(\rR\x0btimeUpdated\x12\x1f\n\x0b\
    manifest_id\x18\x03\x20\x01(\x06R\nmanifestId\x12\x14\n\x05flags\x18\x04\
    \x20\x01(\rR\x05flags\"\xdb\x19\n#CPublishedFile_GetUserFiles_Request\
    \x12S\n\x07steamid\x18\x01\x20\x01(\x06R\x07steamidB9\x82\xb5\x185Steam\
    \x20ID\x20of\x20the\x20user\x20whose\x20files\x20are\x20being\x20request\
    ed.\x12M\n\x05appid\x18\x02\x20\x01(\rR\x05appidB7\x82\xb5\x183App\x20Id\
    \x20of\x20the\x20app\x20that\x20the\x20files\x20were\x20published\x20to.\
    \x12@\n\x04page\x18\x04\x20\x01(\r:\x011R\x04pageB)\x82\xb5\x18%(Optiona\
    l)\x20Starting\x20page\x20for\x20results.\x12\\\n\nnumperpage\x18\x05\
    \x20\x01(\r:\x011R\nnumperpageB9\x82\xb5\x185(Optional)\x20The\x20number\
    \x20of\x20results,\x20per\x20page\x20to\x20return.\x12I\n\x04type\x18\
    \x06\x20\x01(\t:\x07myfilesR\x04typeB,\x82\xb5\x18((Optional)\x20Type\
    \x20of\x20files\x20to\x20be\x20returned.\x12e\n\nsortmethod\x18\x07\x20\
    \x01(\t:\x0blastupdatedR\nsortmethodB8\x82\xb5\x184(Optional)\x20Sorting\
    \x20method\x20to\x20use\x20on\x20returned\x20values.\x12D\n\x07privacy\
    \x18\t\x20\x01(\rR\x07privacyB*\x82\xb5\x18&(optional)\x20Filter\x20by\
    \x20privacy\x20settings.\x12v\n\x0crequiredtags\x18\n\x20\x03(\tR\x0creq\
    uiredtagsBR\x82\xb5\x18N(Optional)\x20Tags\x20that\x20must\x20be\x20pres\
    ent\x20on\x20a\x20published\x20file\x20to\x20satisfy\x20the\x20query.\
    \x12z\n\x0cexcludedtags\x18\x0b\x20\x03(\tR\x0cexcludedtagsBV\x82\xb5\
    \x18R(Optional)\x20Tags\x20that\x20must\x20NOT\x20be\x20present\x20on\
    \x20a\x20published\x20file\x20to\x20satisfy\x20the\x20query.\x12~\n\x10r\
    equired_kv_tags\x18\x1e\x20\x03(\x0b2*.CPublishedFile_GetUserFiles_Reque\
    st.KVTagR\x0erequiredKvTagsB(\x82\xb5\x18$Required\x20key-value\x20tags\
    \x20to\x20match\x20on.\x12G\n\x08filetype\x18\x0e\x20\x01(\rR\x08filetyp\
    eB+\x82\xb5\x18'(Optional)\x20File\x20type\x20to\x20match\x20files\x20to\
    .\x12o\n\rcreator_appid\x18\x0f\x20\x01(\rR\x0ccreatorAppidBJ\x82\xb5\
    \x18FApp\x20Id\x20of\x20the\x20app\x20that\x20published\x20the\x20files,\
    \x20only\x20matched\x20if\x20specified.\x12]\n\x14match_cloud_filename\
    \x18\x10\x20\x01(\tR\x12matchCloudFilenameB+\x82\xb5\x18'Match\x20this\
    \x20cloud\x20filename\x20if\x20specified.\x12~\n\x15cache_max_age_second\
    s\x18\x1b\x20\x01(\r:\x010R\x12cacheMaxAgeSecondsBH\x82\xb5\x18DAllow\
    \x20stale\x20data\x20to\x20be\x20returned\x20for\x20the\x20specified\x20\
    number\x20of\x20seconds.\x12_\n\x08language\x18\x1d\x20\x01(\x05:\x010R\
    \x08languageB@\x82\xb5\x18<Specifies\x20the\x20localized\x20text\x20to\
    \x20return.\x20Defaults\x20to\x20English.\x12\xae\x01\n\ttaggroups\x18\"\
    \x20\x03(\x0b2-.CPublishedFile_GetUserFiles_Request.TagGroupR\ttaggroups\
    Ba\x82\xb5\x18](Optional)\x20At\x20least\x20one\x20of\x20the\x20tags\x20\
    must\x20be\x20present\x20on\x20a\x20published\x20file\x20to\x20satisfy\
    \x20the\x20query.\x12t\n\ttotalonly\x18\x11\x20\x01(\x08R\ttotalonlyBV\
    \x82\xb5\x18R(Optional)\x20If\x20true,\x20only\x20return\x20the\x20total\
    \x20number\x20of\x20files\x20that\x20satisfy\x20this\x20query.\x12w\n\
    \x08ids_only\x18\x12\x20\x01(\x08R\x07idsOnlyB\\\x82\xb5\x18X(Optional)\
    \x20If\x20true,\x20only\x20return\x20the\x20published\x20file\x20ids\x20\
    of\x20files\x20that\x20satisfy\x20this\x20query.\x12D\n\x10return_vote_d\
    ata\x18\x13\x20\x01(\x08:\x04trueR\x0ereturnVoteDataB\x14\x82\xb5\x18\
    \x10Return\x20vote\x20data\x12D\n\x0breturn_tags\x18\x14\x20\x01(\x08R\n\
    returnTagsB#\x82\xb5\x18\x1fReturn\x20tags\x20in\x20the\x20file\x20detai\
    ls\x12Y\n\x0ereturn_kv_tags\x18\x15\x20\x01(\x08:\x04trueR\x0creturnKvTa\
    gsB-\x82\xb5\x18)Return\x20key-value\x20tags\x20in\x20the\x20file\x20det\
    ails\x12g\n\x0freturn_previews\x18\x16\x20\x01(\x08R\x0ereturnPreviewsB>\
    \x82\xb5\x18:Return\x20preview\x20image\x20and\x20video\x20details\x20in\
    \x20the\x20file\x20details\x12V\n\x0freturn_children\x18\x17\x20\x01(\
    \x08R\x0ereturnChildrenB-\x82\xb5\x18)Return\x20child\x20item\x20ids\x20\
    in\x20the\x20file\x20details\x12\x84\x01\n\x18return_short_description\
    \x18\x18\x20\x01(\x08:\x04trueR\x16returnShortDescriptionBD\x82\xb5\x18@\
    Populate\x20the\x20short_description\x20field\x20instead\x20of\x20file_d\
    escription\x12^\n\x14return_for_sale_data\x18\x1a\x20\x01(\x08R\x11retur\
    nForSaleDataB-\x82\xb5\x18)Return\x20pricing\x20information,\x20if\x20ap\
    plicable\x12O\n\x0freturn_metadata\x18\x1c\x20\x01(\x08:\x05falseR\x0ere\
    turnMetadataB\x1f\x82\xb5\x18\x1bPopulate\x20the\x20metadata\x20field\
    \x12|\n\x15return_playtime_stats\x18\x1f\x20\x01(\rR\x13returnPlaytimeSt\
    atsBH\x82\xb5\x18DReturn\x20playtime\x20stats\x20for\x20the\x20specified\
    \x20number\x20of\x20days\x20before\x20today.\x12^\n\x18strip_description\
    _bbcode\x18\x20\x20\x01(\x08R\x16stripDescriptionBbcodeB$\x82\xb5\x18\
    \x20Strips\x20BBCode\x20from\x20descriptions.\x12h\n\x10return_reactions\
    \x18#\x20\x01(\x08:\x05falseR\x0freturnReactionsB6\x82\xb5\x182If\x20tru\
    e,\x20then\x20reactions\x20to\x20items\x20will\x20be\x20returned.\x12Y\n\
    \x13startindex_override\x18\x19\x20\x01(\rR\x12startindexOverrideB(\x82\
    \xb5\x18$Backwards\x20compatible\x20for\x20the\x20client.\x12\x95\x01\n\
    \x10desired_revision\x18!\x20\x01(\x0e2\x17.EPublishedFileRevision:\x20k\
    _EPublishedFileRevision_DefaultR\x0fdesiredRevisionB/\x82\xb5\x18+Return\
    \x20the\x20data\x20for\x20the\x20specified\x20revision.\x1a/\n\x05KVTag\
    \x12\x10\n\x03key\x18\x01\x20\x01(\tR\x03key\x12\x14\n\x05value\x18\x02\
    \x20\x01(\tR\x05value\x1a\x1e\n\x08TagGroup\x12\x12\n\x04tags\x18\x01\
    \x20\x03(\tR\x04tags\"\xd1\x02\n$CPublishedFile_GetUserFiles_Response\
    \x12\x14\n\x05total\x18\x01\x20\x01(\rR\x05total\x12\x1e\n\nstartindex\
    \x18\x02\x20\x01(\rR\nstartindex\x12I\n\x14publishedfiledetails\x18\x03\
    \x20\x03(\x0b2\x15.PublishedFileDetailsR\x14publishedfiledetails\x12=\n\
    \x04apps\x18\x04\x20\x03(\x0b2).CPublishedFile_GetUserFiles_Response.App\
    R\x04apps\x1ai\n\x03App\x12\x14\n\x05appid\x18\x01\x20\x01(\rR\x05appid\
    \x12\x12\n\x04name\x18\x02\x20\x01(\tR\x04name\x12\x1e\n\nshortcutid\x18\
    \x03\x20\x01(\rR\nshortcutid\x12\x18\n\x07private\x18\x04\x20\x01(\x08R\
    \x07private\"\xd9\x02\n1CPublishedFile_AreFilesInSubscriptionList_Reques\
    t\x12\x14\n\x05appid\x18\x01\x20\x01(\rR\x05appid\x12*\n\x10publishedfil\
    eids\x18\x02\x20\x03(\x06R\x10publishedfileids\x120\n\x08listtype\x18\
    \x03\x20\x01(\rR\x08listtypeB\x14\x82\xb5\x18\x10See\x20EUCMListType\x12\
    F\n\x08filetype\x18\x04\x20\x01(\rR\x08filetypeB*\x82\xb5\x18&See\x20EPu\
    blishedFileInfoMatchingFileType\x12h\n\x10workshopfiletype\x18\x05\x20\
    \x01(\rR\x10workshopfiletypeB<\x82\xb5\x188See\x20EWorkshopFileType.\x20\
    \x20If\x20specified,\x20overrides\x20filetype\"\xd2\x01\n2CPublishedFile\
    _AreFilesInSubscriptionList_Response\x12P\n\x05files\x18\x01\x20\x03(\
    \x0b2:.CPublishedFile_AreFilesInSubscriptionList_Response.InListR\x05fil\
    es\x1aJ\n\x06InList\x12(\n\x0fpublishedfileid\x18\x01\x20\x01(\x06R\x0fp\
    ublishedfileid\x12\x16\n\x06inlist\x18\x02\x20\x01(\x08R\x06inlist\"\x87\
    \x07\n\x1dCPublishedFile_Update_Request\x12@\n\x05appid\x18\x01\x20\x01(\
    \rR\x05appidB*\x82\xb5\x18&App\x20Id\x20this\x20published\x20file\x20bel\
    ongs\x20to.\x12]\n\x0fpublishedfileid\x18\x02\x20\x01(\x06R\x0fpublished\
    fileidB3\x82\xb5\x18/Published\x20file\x20id\x20of\x20the\x20file\x20we'\
    d\x20like\x20update.\x12A\n\x05title\x18\x03\x20\x01(\tR\x05titleB+\x82\
    \xb5\x18'(Optional)\x20Title\x20of\x20the\x20published\x20file.\x12\\\n\
    \x10file_description\x18\x04\x20\x01(\tR\x0ffileDescriptionB1\x82\xb5\
    \x18-(Optional)\x20Description\x20of\x20the\x20published\x20file.\x12P\n\
    \nvisibility\x18\x05\x20\x01(\rR\nvisibilityB0\x82\xb5\x18,(Optional)\
    \x20Visibility\x20of\x20the\x20published\x20file.\x12F\n\x04tags\x18\x06\
    \x20\x03(\tR\x04tagsB2\x82\xb5\x18.(Optional)\x20Set\x20of\x20tags\x20fo\
    r\x20the\x20published\x20file.\x12K\n\x08filename\x18\x07\x20\x01(\tR\
    \x08filenameB/\x82\xb5\x18+(Optional)\x20Filename\x20for\x20the\x20publi\
    shed\x20file.\x12b\n\x10preview_filename\x18\x08\x20\x01(\tR\x0fpreviewF\
    ilenameB7\x82\xb5\x183(Optional)\x20Preview\x20filename\x20for\x20the\
    \x20published\x20file.\x12j\n\x0bimage_width\x18\x0f\x20\x01(\rR\nimageW\
    idthBI\x82\xb5\x18E(Optional)\x20If\x20this\x20is\x20an\x20image\x20file\
    ,\x20you\x20can\x20specify\x20the\x20image\x20width.\x12m\n\x0cimage_hei\
    ght\x18\x10\x20\x01(\rR\x0bimageHeightBJ\x82\xb5\x18F(Optional)\x20If\
    \x20this\x20is\x20an\x20image\x20file,\x20you\x20can\x20specify\x20the\
    \x20image\x20height.\"\x20\n\x1eCPublishedFile_Update_Response\"\xde\x01\
    \n,CPublishedFile_GetChangeHistoryEntry_Request\x12t\n\x0fpublishedfilei\
    d\x18\x01\x20\x01(\x06R\x0fpublishedfileidBJ\x82\xb5\x18FPublished\x20fi\
    le\x20id\x20of\x20the\x20file\x20we'd\x20like\x20to\x20get\x20the\x20cha\
    nge\x20history\x20for.\x12\x1c\n\ttimestamp\x18\x02\x20\x01(\rR\ttimesta\
    mp\x12\x1a\n\x08language\x18\x03\x20\x01(\x05R\x08language\"z\n-CPublish\
    edFile_GetChangeHistoryEntry_Response\x12-\n\x12change_description\x18\
    \x01\x20\x01(\tR\x11changeDescription\x12\x1a\n\x08language\x18\x02\x20\
    \x01(\x05R\x08language\"\xd7\x02\n'CPublishedFile_GetChangeHistory_Reque\
    st\x12t\n\x0fpublishedfileid\x18\x01\x20\x01(\x06R\x0fpublishedfileidBJ\
    \x82\xb5\x18FPublished\x20file\x20id\x20of\x20the\x20file\x20we'd\x20lik\
    e\x20to\x20get\x20the\x20change\x20history\x20for.\x12K\n\ntotal_only\
    \x18\x02\x20\x01(\x08R\ttotalOnlyB,\x82\xb5\x18(Return\x20the\x20total\
    \x20number\x20of\x20changes\x20only.\x12\x1e\n\nstartindex\x18\x03\x20\
    \x01(\rR\nstartindex\x12\x14\n\x05count\x18\x04\x20\x01(\rR\x05count\x12\
    3\n\x08language\x18\x05\x20\x01(\x05:\x010R\x08languageB\x14\x82\xb5\x18\
    \x10Desired\x20language\"\x85\x02\n(CPublishedFile_GetChangeHistory_Resp\
    onse\x12M\n\x07changes\x18\x01\x20\x03(\x0b23.CPublishedFile_GetChangeHi\
    story_Response.ChangeLogR\x07changes\x12\x14\n\x05total\x18\x02\x20\x01(\
    \rR\x05total\x1at\n\tChangeLog\x12\x1c\n\ttimestamp\x18\x01\x20\x01(\rR\
    \ttimestamp\x12-\n\x12change_description\x18\x02\x20\x01(\tR\x11changeDe\
    scription\x12\x1a\n\x08language\x18\x03\x20\x01(\x05R\x08language\"\xaf\
    \x06\n)CPublishedFile_RefreshVotingQueue_Request\x12\x14\n\x05appid\x18\
    \x01\x20\x01(\rR\x05appid\x12T\n\x12matching_file_type\x18\x02\x20\x01(\
    \rR\x10matchingFileTypeB&\x82\xb5\x18\"EPublishedFileInfoMatchingFileTyp\
    e\x12r\n\x04tags\x18\x03\x20\x03(\tR\x04tagsB^\x82\xb5\x18ZInclude\x20fi\
    les\x20that\x20have\x20all\x20the\x20tags\x20or\x20any\x20of\x20the\x20t\
    ags\x20if\x20match_all_tags\x20is\x20set\x20to\x20false.\x12\xa3\x01\n\
    \x0ematch_all_tags\x18\x04\x20\x01(\x08:\x04trueR\x0cmatchAllTagsBw\x82\
    \xb5\x18sIf\x20true,\x20then\x20files\x20must\x20have\x20all\x20the\x20t\
    ags\x20specified.\x20\x20If\x20false,\x20then\x20must\x20have\x20at\x20l\
    east\x20one\x20of\x20the\x20tags\x20specified.\x12W\n\rexcluded_tags\x18\
    \x05\x20\x03(\tR\x0cexcludedTagsB2\x82\xb5\x18.Exclude\x20any\x20files\
    \x20that\x20have\x20any\x20of\x20these\x20tags.\x12|\n\x12desired_queue_\
    size\x18\x06\x20\x01(\rR\x10desiredQueueSizeBN\x82\xb5\x18JDesired\x20nu\
    mber\x20of\x20items\x20in\x20the\x20voting\x20queue.\x20\x20May\x20be\
    \x20clamped\x20by\x20the\x20server\x12\xa4\x01\n\x10desired_revision\x18\
    \x08\x20\x01(\x0e2\x17.EPublishedFileRevision:\x20k_EPublishedFileRevisi\
    on_DefaultR\x0fdesiredRevisionB>\x82\xb5\x18:Filter\x20to\x20items\x20th\
    at\x20have\x20data\x20for\x20the\x20specified\x20revision.\",\n*CPublish\
    edFile_RefreshVotingQueue_Response\"\xc3\x1f\n!CPublishedFile_QueryFiles\
    _Request\x12W\n\nquery_type\x18\x01\x20\x01(\rR\tqueryTypeB8\x82\xb5\x18\
    4enumeration\x20EPublishedFileQueryType\x20in\x20clientenums.h\x12$\n\
    \x04page\x18\x02\x20\x01(\rR\x04pageB\x10\x82\xb5\x18\x0cCurrent\x20page\
    \x12\xf0\x01\n\x06cursor\x18'\x20\x01(\tR\x06cursorB\xd7\x01\x82\xb5\x18\
    \xd2\x01Cursor\x20to\x20paginate\x20through\x20the\x20results\x20(set\
    \x20to\x20'*'\x20for\x20the\x20first\x20request).\x20\x20Prefer\x20this\
    \x20over\x20using\x20the\x20page\x20parameter,\x20as\x20it\x20will\x20al\
    low\x20you\x20to\x20do\x20deep\x20pagination.\x20\x20When\x20used,\x20th\
    e\x20page\x20parameter\x20will\x20be\x20ignored.\x12\\\n\nnumperpage\x18\
    \x03\x20\x01(\r:\x011R\nnumperpageB9\x82\xb5\x185(Optional)\x20The\x20nu\
    mber\x20of\x20results,\x20per\x20page\x20to\x20return.\x12C\n\rcreator_a\
    ppid\x18\x04\x20\x01(\rR\x0ccreatorAppidB\x1e\x82\xb5\x18\x1aApp\x20that\
    \x20created\x20the\x20files\x125\n\x05appid\x18\x05\x20\x01(\rR\x05appid\
    B\x1f\x82\xb5\x18\x1bApp\x20that\x20consumes\x20the\x20files\x12\\\n\x0c\
    requiredtags\x18\x06\x20\x03(\tR\x0crequiredtagsB8\x82\xb5\x184Tags\x20t\
    o\x20match\x20on.\x20See\x20match_all_tags\x20parameter\x20below\x12z\n\
    \x0cexcludedtags\x18\x07\x20\x03(\tR\x0cexcludedtagsBV\x82\xb5\x18R(Opti\
    onal)\x20Tags\x20that\x20must\x20NOT\x20be\x20present\x20on\x20a\x20publ\
    ished\x20file\x20to\x20satisfy\x20the\x20query.\x12\x98\x01\n\x0ematch_a\
    ll_tags\x18\x08\x20\x01(\x08:\x04trueR\x0cmatchAllTagsBl\x82\xb5\x18hIf\
    \x20true,\x20then\x20items\x20must\x20have\x20all\x20the\x20tags\x20spec\
    ified,\x20otherwise\x20they\x20must\x20have\x20at\x20least\x20one\x20of\
    \x20the\x20tags.\x12`\n\x0erequired_flags\x18\t\x20\x03(\tR\rrequiredFla\
    gsB9\x82\xb5\x185Required\x20flags\x20that\x20must\x20be\x20set\x20on\
    \x20any\x20returned\x20items\x12Y\n\romitted_flags\x18\n\x20\x03(\tR\x0c\
    omittedFlagsB4\x82\xb5\x180Flags\x20that\x20must\x20not\x20be\x20set\x20\
    on\x20any\x20returned\x20items\x12U\n\x0bsearch_text\x18\x0b\x20\x01(\tR\
    \nsearchTextB4\x82\xb5\x180Text\x20to\x20match\x20in\x20the\x20item's\
    \x20title\x20or\x20description\x12B\n\x08filetype\x18\x0c\x20\x01(\rR\
    \x08filetypeB&\x82\xb5\x18\"EPublishedFileInfoMatchingFileType\x12f\n\
    \x15child_publishedfileid\x18\r\x20\x01(\x06R\x14childPublishedfileidB1\
    \x82\xb5\x18-Find\x20all\x20items\x20that\x20reference\x20the\x20given\
    \x20item.\x12\x88\x01\n\x04days\x18\x0e\x20\x01(\rR\x04daysBt\x82\xb5\
    \x18pIf\x20query_type\x20is\x20k_PublishedFileQueryType_RankedByTrend,\
    \x20then\x20this\x20is\x20the\x20number\x20of\x20days\x20to\x20get\x20vo\
    tes\x20for\x20[1,7].\x12\xc8\x01\n\x19include_recent_votes_only\x18\x0f\
    \x20\x01(\x08R\x16includeRecentVotesOnlyB\x8c\x01\x82\xb5\x18\x87\x01If\
    \x20query_type\x20is\x20k_PublishedFileQueryType_RankedByTrend,\x20then\
    \x20limit\x20result\x20set\x20just\x20to\x20items\x20that\x20have\x20vot\
    es\x20within\x20the\x20day\x20range\x20given\x12~\n\x15cache_max_age_sec\
    onds\x18\x1f\x20\x01(\r:\x010R\x12cacheMaxAgeSecondsBH\x82\xb5\x18DAllow\
    \x20stale\x20data\x20to\x20be\x20returned\x20for\x20the\x20specified\x20\
    number\x20of\x20seconds.\x12j\n\x08language\x18!\x20\x01(\x05:\x010R\x08\
    languageBK\x82\xb5\x18GLanguage\x20to\x20search\x20in\x20and\x20also\x20\
    what\x20gets\x20returned.\x20Defaults\x20to\x20English.\x12|\n\x10requir\
    ed_kv_tags\x18\"\x20\x03(\x0b2(.CPublishedFile_QueryFiles_Request.KVTagR\
    \x0erequiredKvTagsB(\x82\xb5\x18$Required\x20key-value\x20tags\x20to\x20\
    match\x20on.\x12\xac\x01\n\ttaggroups\x18*\x20\x03(\x0b2+.CPublishedFile\
    _QueryFiles_Request.TagGroupR\ttaggroupsBa\x82\xb5\x18](Optional)\x20At\
    \x20least\x20one\x20of\x20the\x20tags\x20must\x20be\x20present\x20on\x20\
    a\x20published\x20file\x20to\x20satisfy\x20the\x20query.\x12t\n\ttotalon\
    ly\x18\x10\x20\x01(\x08R\ttotalonlyBV\x82\xb5\x18R(Optional)\x20If\x20tr\
    ue,\x20only\x20return\x20the\x20total\x20number\x20of\x20files\x20that\
    \x20satisfy\x20this\x20query.\x12w\n\x08ids_only\x18#\x20\x01(\x08R\x07i\
    dsOnlyB\\\x82\xb5\x18X(Optional)\x20If\x20true,\x20only\x20return\x20the\
    \x20published\x20file\x20ids\x20of\x20files\x20that\x20satisfy\x20this\
    \x20query.\x12>\n\x10return_vote_data\x18\x11\x20\x01(\x08R\x0ereturnVot\
    eDataB\x14\x82\xb5\x18\x10Return\x20vote\x20data\x12D\n\x0breturn_tags\
    \x18\x12\x20\x01(\x08R\nreturnTagsB#\x82\xb5\x18\x1fReturn\x20tags\x20in\
    \x20the\x20file\x20details\x12S\n\x0ereturn_kv_tags\x18\x13\x20\x01(\x08\
    R\x0creturnKvTagsB-\x82\xb5\x18)Return\x20key-value\x20tags\x20in\x20the\
    \x20file\x20details\x12g\n\x0freturn_previews\x18\x14\x20\x01(\x08R\x0er\
    eturnPreviewsB>\x82\xb5\x18:Return\x20preview\x20image\x20and\x20video\
    \x20details\x20in\x20the\x20file\x20details\x12V\n\x0freturn_children\
    \x18\x15\x20\x01(\x08R\x0ereturnChildrenB-\x82\xb5\x18)Return\x20child\
    \x20item\x20ids\x20in\x20the\x20file\x20details\x12~\n\x18return_short_d\
    escription\x18\x16\x20\x01(\x08R\x16returnShortDescriptionBD\x82\xb5\x18\
    @Populate\x20the\x20short_description\x20field\x20instead\x20of\x20file_\
    description\x12^\n\x14return_for_sale_data\x18\x1e\x20\x01(\x08R\x11retu\
    rnForSaleDataB-\x82\xb5\x18)Return\x20pricing\x20information,\x20if\x20a\
    pplicable\x12I\n\x0freturn_metadata\x18\x20\x20\x01(\x08:\x05falseR\x0er\
    eturnMetadataB\x19\x82\xb5\x18\x15Populate\x20the\x20metadata\x12|\n\x15\
    return_playtime_stats\x18$\x20\x01(\rR\x13returnPlaytimeStatsBH\x82\xb5\
    \x18DReturn\x20playtime\x20stats\x20for\x20the\x20specified\x20number\
    \x20of\x20days\x20before\x20today.\x12\xc6\x01\n\x0ereturn_details\x18%\
    \x20\x01(\x08R\rreturnDetailsB\x9e\x01\x82\xb5\x18\x99\x01By\x20default,\
    \x20if\x20none\x20of\x20the\x20other\x20'return_*'\x20fields\x20are\x20s\
    et,\x20only\x20some\x20voting\x20details\x20are\x20returned.\x20Set\x20t\
    his\x20to\x20true\x20to\x20return\x20the\x20default\x20set\x20of\x20deta\
    ils.\x12^\n\x18strip_description_bbcode\x18&\x20\x01(\x08R\x16stripDescr\
    iptionBbcodeB$\x82\xb5\x18\x20Strips\x20BBCode\x20from\x20descriptions.\
    \x12\x95\x01\n\x10desired_revision\x18(\x20\x01(\x0e2\x17.EPublishedFile\
    Revision:\x20k_EPublishedFileRevision_DefaultR\x0fdesiredRevisionB/\x82\
    \xb5\x18+Return\x20the\x20data\x20for\x20the\x20specified\x20revision.\
    \x12h\n\x10return_reactions\x18+\x20\x01(\x08:\x05falseR\x0freturnReacti\
    onsB6\x82\xb5\x182If\x20true,\x20then\x20reactions\x20to\x20items\x20wil\
    l\x20be\x20returned.\x1a/\n\x05KVTag\x12\x10\n\x03key\x18\x01\x20\x01(\t\
    R\x03key\x12\x14\n\x05value\x18\x02\x20\x01(\tR\x05value\x1a\x1e\n\x08Ta\
    gGroup\x12\x12\n\x04tags\x18\x01\x20\x03(\tR\x04tags\"\xaf\x03\n\"CPubli\
    shedFile_QueryFiles_Response\x12[\n\x05total\x18\x01\x20\x01(\rR\x05tota\
    lBE\x82\xb5\x18ANumber\x20of\x20matches\x20found,\x20not\x20necessarily\
    \x20number\x20of\x20items\x20returned\x12\xa3\x01\n\x14publishedfiledeta\
    ils\x18\x02\x20\x03(\x0b2\x15.PublishedFileDetailsR\x14publishedfiledeta\
    ilsBX\x82\xb5\x18TEach\x20file\x20details\x20will\x20be\x20populated,\
    \x20depending\x20on\x20what\x20return\x20values\x20were\x20requested.\
    \x12\x85\x01\n\x0bnext_cursor\x18\x03\x20\x01(\tR\nnextCursorBd\x82\xb5\
    \x18`If\x20a\x20paging\x20cursor\x20was\x20used,\x20then\x20this\x20will\
    \x20be\x20the\x20next\x20cursor\x20to\x20use\x20for\x20paging\x20through\
    \x20results\"\x8f\x01\n)CPublishedFile_AddAppRelationship_Request\x12(\n\
    \x0fpublishedfileid\x18\x01\x20\x01(\x04R\x0fpublishedfileid\x12\x14\n\
    \x05appid\x18\x02\x20\x01(\rR\x05appid\x12\"\n\x0crelationship\x18\x03\
    \x20\x01(\rR\x0crelationship\",\n*CPublishedFile_AddAppRelationship_Resp\
    onse\"\x92\x01\n,CPublishedFile_RemoveAppRelationship_Request\x12(\n\x0f\
    publishedfileid\x18\x01\x20\x01(\x04R\x0fpublishedfileid\x12\x14\n\x05ap\
    pid\x18\x02\x20\x01(\rR\x05appid\x12\"\n\x0crelationship\x18\x03\x20\x01\
    (\rR\x0crelationship\"/\n-CPublishedFile_RemoveAppRelationship_Response\
    \"V\n*CPublishedFile_GetAppRelationships_Request\x12(\n\x0fpublishedfile\
    id\x18\x01\x20\x01(\x04R\x0fpublishedfileid\"\xe5\x01\n+CPublishedFile_G\
    etAppRelationships_Response\x12i\n\x11app_relationships\x18\x03\x20\x03(\
    \x0b2<.CPublishedFile_GetAppRelationships_Response.AppRelationshipR\x10a\
    ppRelationships\x1aK\n\x0fAppRelationship\x12\x14\n\x05appid\x18\x01\x20\
    \x01(\rR\x05appid\x12\"\n\x0crelationship\x18\x02\x20\x01(\rR\x0crelatio\
    nship\"p\n,CPublishedFile_StartPlaytimeTracking_Request\x12\x14\n\x05app\
    id\x18\x01\x20\x01(\rR\x05appid\x12*\n\x10publishedfileids\x18\x02\x20\
    \x03(\x04R\x10publishedfileids\"/\n-CPublishedFile_StartPlaytimeTracking\
    _Response\"o\n+CPublishedFile_StopPlaytimeTracking_Request\x12\x14\n\x05\
    appid\x18\x01\x20\x01(\rR\x05appid\x12*\n\x10publishedfileids\x18\x02\
    \x20\x03(\x04R\x10publishedfileids\".\n,CPublishedFile_StopPlaytimeTrack\
    ing_Response\"Q\n9CPublishedFile_StopPlaytimeTrackingForAllAppItems_Requ\
    est\x12\x14\n\x05appid\x18\x01\x20\x01(\rR\x05appid\"<\n:CPublishedFile_\
    StopPlaytimeTrackingForAllAppItems_Response\"\xc0\x02\n6CPublishedFile_S\
    etPlaytimeForControllerConfigs_Request\x12\x14\n\x05appid\x18\x01\x20\
    \x01(\rR\x05appid\x12\x85\x01\n\x17controller_config_usage\x18\x02\x20\
    \x03(\x0b2M.CPublishedFile_SetPlaytimeForControllerConfigs_Request.Contr\
    ollerConfigUsageR\x15controllerConfigUsage\x1ah\n\x15ControllerConfigUsa\
    ge\x12(\n\x0fpublishedfileid\x18\x01\x20\x01(\x04R\x0fpublishedfileid\
    \x12%\n\x0eseconds_active\x18\x02\x20\x01(\x02R\rsecondsActive\"9\n7CPub\
    lishedFile_SetPlaytimeForControllerConfigs_Response\"\x80\x01\n\x1fCPubl\
    ishedFile_AddChild_Request\x12(\n\x0fpublishedfileid\x18\x01\x20\x01(\
    \x04R\x0fpublishedfileid\x123\n\x15child_publishedfileid\x18\x02\x20\x01\
    (\x04R\x14childPublishedfileid\"\"\n\x20CPublishedFile_AddChild_Response\
    \"\x83\x01\n\"CPublishedFile_RemoveChild_Request\x12(\n\x0fpublishedfile\
    id\x18\x01\x20\x01(\x04R\x0fpublishedfileid\x123\n\x15child_publishedfil\
    eid\x18\x02\x20\x01(\x04R\x14childPublishedfileid\"%\n#CPublishedFile_Re\
    moveChild_Response\"W\n)CPublishedFile_GetUserVoteSummary_Request\x12*\n\
    \x10publishedfileids\x18\x01\x20\x03(\x06R\x10publishedfileids\"\x97\x02\
    \n*CPublishedFile_GetUserVoteSummary_Response\x12U\n\tsummaries\x18\x01\
    \x20\x03(\x0b27.CPublishedFile_GetUserVoteSummary_Response.VoteSummaryR\
    \tsummaries\x1a\x91\x01\n\x0bVoteSummary\x12(\n\x0fpublishedfileid\x18\
    \x01\x20\x01(\x06R\x0fpublishedfileid\x12\x19\n\x08vote_for\x18\x02\x20\
    \x01(\x08R\x07voteFor\x12!\n\x0cvote_against\x18\x03\x20\x01(\x08R\x0bvo\
    teAgainst\x12\x1a\n\x08reported\x18\x04\x20\x01(\x08R\x08reported\"\xbf\
    \x06\n*CPublishedFile_FileSubscribed_Notification\x12Q\n\x11published_fi\
    le_id\x18\x01\x20\x01(\x06R\x0fpublishedFileIdB%\x82\xb5\x18!PublishedFi\
    leID_t\x20for\x20the\x20content\x12\x15\n\x06app_id\x18\x02\x20\x01(\rR\
    \x05appId\x12H\n\rfile_hcontent\x18\x03\x20\x01(\x06R\x0cfileHcontentB#\
    \x82\xb5\x18\x1fUGC\x20file\x20handle\x20or\x20manifest\x20GID\x12\x1b\n\
    \tfile_size\x18\x04\x20\x01(\rR\x08fileSize\x12)\n\x10rtime_subscribed\
    \x18\x05\x20\x01(\rR\x0frtimeSubscribed\x12^\n\x10is_depot_content\x18\
    \x06\x20\x01(\x08R\x0eisDepotContentB4\x82\xb5\x180True\x20if\x20worksho\
    p\x20item\x20is\x20delivered\x20via\x20Steampipe\x12B\n\rrtime_updated\
    \x18\x07\x20\x01(\rR\x0crtimeUpdatedB\x1d\x82\xb5\x18\x19Last\x20time\
    \x20content\x20updated\x12\x8d\x01\n\trevisions\x18\x08\x20\x03(\x0b28.C\
    PublishedFile_FileSubscribed_Notification.RevisionDataR\trevisionsB5\x82\
    \xb5\x181Data\x20for\x20each\x20of\x20the\x20revisions\x20that\x20this\
    \x20item\x20has\x1a\xe0\x01\n\x0cRevisionData\x12U\n\x08revision\x18\x01\
    \x20\x01(\x0e2\x17.EPublishedFileRevision:\x20k_EPublishedFileRevision_D\
    efaultR\x08revision\x125\n\rfile_hcontent\x18\x02\x20\x01(\x06R\x0cfileH\
    contentB\x10\x82\xb5\x18\x0cManifest\x20GID\x12B\n\rrtime_updated\x18\
    \x03\x20\x01(\rR\x0crtimeUpdatedB\x1d\x82\xb5\x18\x19Last\x20time\x20con\
    tent\x20updated\"\x98\x01\n,CPublishedFile_FileUnsubscribed_Notification\
    \x12Q\n\x11published_file_id\x18\x01\x20\x01(\x06R\x0fpublishedFileIdB%\
    \x82\xb5\x18!PublishedFileID_t\x20for\x20the\x20content\x12\x15\n\x06app\
    _id\x18\x02\x20\x01(\rR\x05appId\"\x9a\x01\n.CPublishedFile_FileDeleted_\
    Client_Notification\x12Q\n\x11published_file_id\x18\x01\x20\x01(\x06R\
    \x0fpublishedFileIdB%\x82\xb5\x18!PublishedFileID_t\x20for\x20the\x20con\
    tent\x12\x15\n\x06app_id\x18\x02\x20\x01(\rR\x05appId*\xab\x02\n\x16EPub\
    lishedFileRevision\x12$\n\x20k_EPublishedFileRevision_Default\x10\0\x12#\
    \n\x1fk_EPublishedFileRevision_Latest\x10\x01\x12-\n)k_EPublishedFileRev\
    ision_ApprovedSnapshot\x10\x02\x123\n/k_EPublishedFileRevision_ApprovedS\
    napshot_China\x10\x03\x12-\n)k_EPublishedFileRevision_RejectedSnapshot\
    \x10\x04\x123\n/k_EPublishedFileRevision_RejectedSnapshot_China\x10\x05*\
    \xc8\x01\n\x1bEPublishedFileForSaleStatus\x12\x16\n\x12k_PFFSS_NotForSal\
    e\x10\0\x12\x1b\n\x17k_PFFSS_PendingApproval\x10\x01\x12\x1b\n\x17k_PFFS\
    S_ApprovedForSale\x10\x02\x12\x1b\n\x17k_PFFSS_RejectedForSale\x10\x03\
    \x12\x1b\n\x17k_PFFSS_NoLongerForSale\x10\x04\x12\x1d\n\x19k_PFFSS_Tenta\
    tiveApproval\x10\x052\xd7\x1e\n\rPublishedFile\x12\x81\x01\n\tSubscribe\
    \x12!.CPublishedFile_Subscribe_Request\x1a\".CPublishedFile_Subscribe_Re\
    sponse\"-\x82\xb5\x18)Subscribes\x20the\x20user\x20to\x20the\x20publishe\
    d\x20file\x12\x8b\x01\n\x0bUnsubscribe\x12#.CPublishedFile_Unsubscribe_R\
    equest\x1a$.CPublishedFile_Unsubscribe_Response\"1\x82\xb5\x18-Unsubscri\
    bes\x20the\x20user\x20from\x20the\x20published\x20file\x12\x96\x01\n\x0c\
    CanSubscribe\x12$.CPublishedFile_CanSubscribe_Request\x1a%.CPublishedFil\
    e_CanSubscribe_Response\"9\x82\xb5\x185Check\x20if\x20the\x20user\x20can\
    \x20subscribe\x20to\x20the\x20published\x20file\x12\x80\x01\n\x07Publish\
    \x12\x1f.CPublishedFile_Publish_Request\x1a\x20.CPublishedFile_Publish_R\
    esponse\"2\x82\xb5\x18.Publishes\x20a\x20clouded\x20user\x20file\x20to\
    \x20the\x20Workshop.\x12\x90\x01\n\nGetDetails\x12\".CPublishedFile_GetD\
    etails_Request\x1a#.CPublishedFile_GetDetails_Response\"9\x82\xb5\x185Re\
    trieves\x20information\x20about\x20a\x20set\x20of\x20published\x20files.\
    \x12\x93\x01\n\x0bGetItemInfo\x12#.CPublishedFile_GetItemInfo_Request\
    \x1a$.CPublishedFile_GetItemInfo_Response\"9\x82\xb5\x185Retrieves\x20in\
    formation\x20about\x20a\x20set\x20of\x20published\x20files.\x12\x85\x01\
    \n\x0cGetUserFiles\x12$.CPublishedFile_GetUserFiles_Request\x1a%.CPublis\
    hedFile_GetUserFiles_Response\"(\x82\xb5\x18$Retrieves\x20files\x20publi\
    shed\x20by\x20a\x20user.\x12\xd5\x01\n\x1aAreFilesInSubscriptionList\x12\
    2.CPublishedFile_AreFilesInSubscriptionList_Request\x1a3.CPublishedFile_\
    AreFilesInSubscriptionList_Response\"N\x82\xb5\x18JDetermines\x20which\
    \x20files\x20in\x20the\x20given\x20list\x20are\x20in\x20a\x20user's\x20s\
    ubscription\x20list\x12z\n\x06Update\x12\x1e.CPublishedFile_Update_Reque\
    st\x1a\x1f.CPublishedFile_Update_Response\"/\x82\xb5\x18+Updates\x20info\
    rmation\x20about\x20a\x20published\x20file.\x12\xc0\x01\n\x15GetChangeHi\
    storyEntry\x12-.CPublishedFile_GetChangeHistoryEntry_Request\x1a..CPubli\
    shedFile_GetChangeHistoryEntry_Response\"H\x82\xb5\x18DReturns\x20data\
    \x20on\x20a\x20specific\x20change\x20history\x20entry\x20for\x20a\x20pub\
    lished\x20file\x12\xa4\x01\n\x10GetChangeHistory\x12(.CPublishedFile_Get\
    ChangeHistory_Request\x1a).CPublishedFile_GetChangeHistory_Response\";\
    \x82\xb5\x187Returns\x20data\x20on\x20the\x20change\x20history\x20for\
    \x20a\x20published\x20file\x12\x98\x01\n\x12RefreshVotingQueue\x12*.CPub\
    lishedFile_RefreshVotingQueue_Request\x1a+.CPublishedFile_RefreshVotingQ\
    ueue_Response\")\x82\xb5\x18%Refresh\x20the\x20voting\x20queue\x20for\
    \x20the\x20user\x12\x86\x01\n\nQueryFiles\x12\".CPublishedFile_QueryFile\
    s_Request\x1a#.CPublishedFile_QueryFiles_Response\"/\x82\xb5\x18+Perform\
    s\x20a\x20search\x20query\x20for\x20published\x20files\x12\xb3\x01\n\x12\
    AddAppRelationship\x12*.CPublishedFile_AddAppRelationship_Request\x1a+.C\
    PublishedFile_AddAppRelationship_Response\"D\x82\xb5\x18@Adds\x20a\x20re\
    lationship\x20between\x20the\x20published\x20file\x20and\x20the\x20given\
    \x20app\x12\xbe\x01\n\x15RemoveAppRelationship\x12-.CPublishedFile_Remov\
    eAppRelationship_Request\x1a..CPublishedFile_RemoveAppRelationship_Respo\
    nse\"F\x82\xb5\x18BRemove\x20a\x20relationship\x20between\x20the\x20publ\
    ished\x20file\x20and\x20the\x20given\x20app\x12\xb3\x01\n\x13GetAppRelat\
    ionships\x12+.CPublishedFile_GetAppRelationships_Request\x1a,.CPublished\
    File_GetAppRelationships_Response\"A\x82\xb5\x18=Returns\x20the\x20list\
    \x20of\x20app\x20relationships\x20for\x20this\x20published\x20file\x12\
    \xb3\x01\n\x15StartPlaytimeTracking\x12-.CPublishedFile_StartPlaytimeTra\
    cking_Request\x1a..CPublishedFile_StartPlaytimeTracking_Response\";\x82\
    \xb5\x187Start\x20usage\x20tracking\x20for\x20a\x20given\x20set\x20of\
    \x20published\x20files\x12\xb0\x01\n\x14StopPlaytimeTracking\x12,.CPubli\
    shedFile_StopPlaytimeTracking_Request\x1a-.CPublishedFile_StopPlaytimeTr\
    acking_Response\";\x82\xb5\x187Stops\x20usage\x20tracking\x20for\x20a\
    \x20given\x20set\x20of\x20published\x20files\x12\xed\x01\n\"StopPlaytime\
    TrackingForAllAppItems\x12:.CPublishedFile_StopPlaytimeTrackingForAllApp\
    Items_Request\x1a;.CPublishedFile_StopPlaytimeTrackingForAllAppItems_Res\
    ponse\"N\x82\xb5\x18JStops\x20usage\x20tracking\x20for\x20all\x20items\
    \x20currently\x20tracked\x20for\x20the\x20specified\x20app\x12\x98\x02\n\
    \x1fSetPlaytimeForControllerConfigs\x127.CPublishedFile_SetPlaytimeForCo\
    ntrollerConfigs_Request\x1a8.CPublishedFile_SetPlaytimeForControllerConf\
    igs_Response\"\x81\x01\x82\xb5\x18}Stops\x20usage\x20tracking\x20all\x20\
    controller\x20configs\x20for\x20the\x20given\x20app\x20and\x20set\x20the\
    \x20usage\x20time\x20for\x20the\x20for\x20the\x20given\x20controller\x20\
    configs\x12\x8f\x01\n\x08AddChild\x12\x20.CPublishedFile_AddChild_Reques\
    t\x1a!.CPublishedFile_AddChild_Response\">\x82\xb5\x18:Adds\x20a\x20pare\
    nt->child\x20relationship\x20between\x20the\x20given\x20items.\x12\x99\
    \x01\n\x0bRemoveChild\x12#.CPublishedFile_RemoveChild_Request\x1a$.CPubl\
    ishedFile_RemoveChild_Response\"?\x82\xb5\x18;Removes\x20parent->child\
    \x20relationship\x20between\x20the\x20given\x20items.\x12\x88\x01\n\x12G\
    etUserVoteSummary\x12*.CPublishedFile_GetUserVoteSummary_Request\x1a+.CP\
    ublishedFile_GetUserVoteSummary_Response\"\x19\x82\xb5\x18\x15Get\x20use\
    r\x20vote\x20summary\x1a+\x82\xb5\x18'A\x20service\x20to\x20access\x20pu\
    blished\x20file\x20data2\x8d\x04\n\x13PublishedFileClient\x12\x93\x01\n\
    \x14NotifyFileSubscribed\x12+.CPublishedFile_FileSubscribed_Notification\
    \x1a\x0b.NoResponse\"A\x82\xb5\x18=Notification\x20from\x20the\x20server\
    \x20when\x20a\x20user\x20subscribes\x20to\x20a\x20file\x12\x9b\x01\n\x16\
    NotifyFileUnsubscribed\x12-.CPublishedFile_FileUnsubscribed_Notification\
    \x1a\x0b.NoResponse\"E\x82\xb5\x18ANotification\x20from\x20the\x20server\
    \x20when\x20a\x20user\x20unsubscribes\x20from\x20a\x20file\x12\x94\x01\n\
    \x11NotifyFileDeleted\x12/.CPublishedFile_FileDeleted_Client_Notificatio\
    n\x1a\x0b.NoResponse\"A\x82\xb5\x18=Notification\x20from\x20the\x20serve\
    r\x20when\x20a\x20published\x20file\x20is\x20deleted\x1a+\x82\xb5\x18#Pu\
    blished\x20file\x20client\x20notifications\xc0\xb5\x18\x02B\x03\x80\x01\
    \x01J\xe5\x8d\x02\n\x07\x12\x05\0\0\x9d\x05\x01\n\t\n\x02\x03\0\x12\x03\
    \0\06\n\t\n\x02\x03\x01\x12\x03\x01\0\x15\n\x08\n\x01\x08\x12\x03\x03\0\
    \"\n\t\n\x02\x08\x10\x12\x03\x03\0\"\n\n\n\x02\x05\0\x12\x04\x05\0\x0c\
    \x01\n\n\n\x03\x05\0\x01\x12\x03\x05\x05\x1b\n\x0b\n\x04\x05\0\x02\0\x12\
    \x03\x06\x08-\n\x0c\n\x05\x05\0\x02\0\x01\x12\x03\x06\x08(\n\x0c\n\x05\
    \x05\0\x02\0\x02\x12\x03\x06+,\n\x0b\n\x04\x05\0\x02\x01\x12\x03\x07\x08\
    ,\n\x0c\n\x05\x05\0\x02\x01\x01\x12\x03\x07\x08'\n\x0c\n\x05\x05\0\x02\
    \x01\x02\x12\x03\x07*+\n\x0b\n\x04\x05\0\x02\x02\x12\x03\x08\x086\n\x0c\
    \n\x05\x05\0\x02\x02\x01\x12\x03\x08\x081\n\x0c\n\x05\x05\0\x02\x02\x02\
    \x12\x03\x0845\n\x0b\n\x04\x05\0\x02\x03\x12\x03\t\x08<\n\x0c\n\x05\x05\
    \0\x02\x03\x01\x12\x03\t\x087\n\x0c\n\x05\x05\0\x02\x03\x02\x12\x03\t:;\
    \n\x0b\n\x04\x05\0\x02\x04\x12\x03\n\x086\n\x0c\n\x05\x05\0\x02\x04\x01\
    \x12\x03\n\x081\n\x0c\n\x05\x05\0\x02\x04\x02\x12\x03\n45\n\x0b\n\x04\
    \x05\0\x02\x05\x12\x03\x0b\x08<\n\x0c\n\x05\x05\0\x02\x05\x01\x12\x03\
    \x0b\x087\n\x0c\n\x05\x05\0\x02\x05\x02\x12\x03\x0b:;\n\n\n\x02\x05\x01\
    \x12\x04\x0e\0\x15\x01\n\n\n\x03\x05\x01\x01\x12\x03\x0e\x05\x20\n\x0b\n\
    \x04\x05\x01\x02\0\x12\x03\x0f\x08\x1f\n\x0c\n\x05\x05\x01\x02\0\x01\x12\
    \x03\x0f\x08\x1a\n\x0c\n\x05\x05\x01\x02\0\x02\x12\x03\x0f\x1d\x1e\n\x0b\
    \n\x04\x05\x01\x02\x01\x12\x03\x10\x08$\n\x0c\n\x05\x05\x01\x02\x01\x01\
    \x12\x03\x10\x08\x1f\n\x0c\n\x05\x05\x01\x02\x01\x02\x12\x03\x10\"#\n\
    \x0b\n\x04\x05\x01\x02\x02\x12\x03\x11\x08$\n\x0c\n\x05\x05\x01\x02\x02\
    \x01\x12\x03\x11\x08\x1f\n\x0c\n\x05\x05\x01\x02\x02\x02\x12\x03\x11\"#\
    \n\x0b\n\x04\x05\x01\x02\x03\x12\x03\x12\x08$\n\x0c\n\x05\x05\x01\x02\
    \x03\x01\x12\x03\x12\x08\x1f\n\x0c\n\x05\x05\x01\x02\x03\x02\x12\x03\x12\
    \"#\n\x0b\n\x04\x05\x01\x02\x04\x12\x03\x13\x08$\n\x0c\n\x05\x05\x01\x02\
    \x04\x01\x12\x03\x13\x08\x1f\n\x0c\n\x05\x05\x01\x02\x04\x02\x12\x03\x13\
    \"#\n\x0b\n\x04\x05\x01\x02\x05\x12\x03\x14\x08&\n\x0c\n\x05\x05\x01\x02\
    \x05\x01\x12\x03\x14\x08!\n\x0c\n\x05\x05\x01\x02\x05\x02\x12\x03\x14$%\
    \n\n\n\x02\x04\0\x12\x04\x17\0\x1c\x01\n\n\n\x03\x04\0\x01\x12\x03\x17\
    \x08(\n\x0b\n\x04\x04\0\x02\0\x12\x03\x18\x08,\n\x0c\n\x05\x04\0\x02\0\
    \x04\x12\x03\x18\x08\x10\n\x0c\n\x05\x04\0\x02\0\x05\x12\x03\x18\x11\x17\
    \n\x0c\n\x05\x04\0\x02\0\x01\x12\x03\x18\x18'\n\x0c\n\x05\x04\0\x02\0\
    \x03\x12\x03\x18*+\n\x0b\n\x04\x04\0\x02\x01\x12\x03\x19\x08&\n\x0c\n\
    \x05\x04\0\x02\x01\x04\x12\x03\x19\x08\x10\n\x0c\n\x05\x04\0\x02\x01\x05\
    \x12\x03\x19\x11\x17\n\x0c\n\x05\x04\0\x02\x01\x01\x12\x03\x19\x18!\n\
    \x0c\n\x05\x04\0\x02\x01\x03\x12\x03\x19$%\n\x0b\n\x04\x04\0\x02\x02\x12\
    \x03\x1a\x08!\n\x0c\n\x05\x04\0\x02\x02\x04\x12\x03\x1a\x08\x10\n\x0c\n\
    \x05\x04\0\x02\x02\x05\x12\x03\x1a\x11\x16\n\x0c\n\x05\x04\0\x02\x02\x01\
    \x12\x03\x1a\x17\x1c\n\x0c\n\x05\x04\0\x02\x02\x03\x12\x03\x1a\x1f\x20\n\
    \x0b\n\x04\x04\0\x02\x03\x12\x03\x1b\x08(\n\x0c\n\x05\x04\0\x02\x03\x04\
    \x12\x03\x1b\x08\x10\n\x0c\n\x05\x04\0\x02\x03\x05\x12\x03\x1b\x11\x15\n\
    \x0c\n\x05\x04\0\x02\x03\x01\x12\x03\x1b\x16#\n\x0c\n\x05\x04\0\x02\x03\
    \x03\x12\x03\x1b&'\n\n\n\x02\x04\x01\x12\x04\x1e\0\x1f\x01\n\n\n\x03\x04\
    \x01\x01\x12\x03\x1e\x08)\n\n\n\x02\x04\x02\x12\x04!\0&\x01\n\n\n\x03\
    \x04\x02\x01\x12\x03!\x08*\n\x0b\n\x04\x04\x02\x02\0\x12\x03\"\x08,\n\
    \x0c\n\x05\x04\x02\x02\0\x04\x12\x03\"\x08\x10\n\x0c\n\x05\x04\x02\x02\0\
    \x05\x12\x03\"\x11\x17\n\x0c\n\x05\x04\x02\x02\0\x01\x12\x03\"\x18'\n\
    \x0c\n\x05\x04\x02\x02\0\x03\x12\x03\"*+\n\x0b\n\x04\x04\x02\x02\x01\x12\
    \x03#\x08&\n\x0c\n\x05\x04\x02\x02\x01\x04\x12\x03#\x08\x10\n\x0c\n\x05\
    \x04\x02\x02\x01\x05\x12\x03#\x11\x17\n\x0c\n\x05\x04\x02\x02\x01\x01\
    \x12\x03#\x18!\n\x0c\n\x05\x04\x02\x02\x01\x03\x12\x03#$%\n\x0b\n\x04\
    \x04\x02\x02\x02\x12\x03$\x08!\n\x0c\n\x05\x04\x02\x02\x02\x04\x12\x03$\
    \x08\x10\n\x0c\n\x05\x04\x02\x02\x02\x05\x12\x03$\x11\x16\n\x0c\n\x05\
    \x04\x02\x02\x02\x01\x12\x03$\x17\x1c\n\x0c\n\x05\x04\x02\x02\x02\x03\
    \x12\x03$\x1f\x20\n\x0b\n\x04\x04\x02\x02\x03\x12\x03%\x08(\n\x0c\n\x05\
    \x04\x02\x02\x03\x04\x12\x03%\x08\x10\n\x0c\n\x05\x04\x02\x02\x03\x05\
    \x12\x03%\x11\x15\n\x0c\n\x05\x04\x02\x02\x03\x01\x12\x03%\x16#\n\x0c\n\
    \x05\x04\x02\x02\x03\x03\x12\x03%&'\n\n\n\x02\x04\x03\x12\x04(\0)\x01\n\
    \n\n\x03\x04\x03\x01\x12\x03(\x08+\n\n\n\x02\x04\x04\x12\x04+\0-\x01\n\n\
    \n\x03\x04\x04\x01\x12\x03+\x08+\n\x0b\n\x04\x04\x04\x02\0\x12\x03,\x08,\
    \n\x0c\n\x05\x04\x04\x02\0\x04\x12\x03,\x08\x10\n\x0c\n\x05\x04\x04\x02\
    \0\x05\x12\x03,\x11\x17\n\x0c\n\x05\x04\x04\x02\0\x01\x12\x03,\x18'\n\
    \x0c\n\x05\x04\x04\x02\0\x03\x12\x03,*+\n\n\n\x02\x04\x05\x12\x04/\01\
    \x01\n\n\n\x03\x04\x05\x01\x12\x03/\x08,\n\x0b\n\x04\x04\x05\x02\0\x12\
    \x030\x08(\n\x0c\n\x05\x04\x05\x02\0\x04\x12\x030\x08\x10\n\x0c\n\x05\
    \x04\x05\x02\0\x05\x12\x030\x11\x15\n\x0c\n\x05\x04\x05\x02\0\x01\x12\
    \x030\x16#\n\x0c\n\x05\x04\x05\x02\0\x03\x12\x030&'\n\n\n\x02\x04\x06\
    \x12\x043\0D\x01\n\n\n\x03\x04\x06\x01\x12\x033\x08&\n\x0b\n\x04\x04\x06\
    \x02\0\x12\x034\x08`\n\x0c\n\x05\x04\x06\x02\0\x04\x12\x034\x08\x10\n\
    \x0c\n\x05\x04\x06\x02\0\x05\x12\x034\x11\x17\n\x0c\n\x05\x04\x06\x02\0\
    \x01\x12\x034\x18\x1d\n\x0c\n\x05\x04\x06\x02\0\x03\x12\x034\x20!\n\x0c\
    \n\x05\x04\x06\x02\0\x08\x12\x034\"_\n\x0f\n\x08\x04\x06\x02\0\x08\xd0\
    \x86\x03\x12\x034#^\n\x0b\n\x04\x04\x06\x02\x01\x12\x035\x08g\n\x0c\n\
    \x05\x04\x06\x02\x01\x04\x12\x035\x08\x10\n\x0c\n\x05\x04\x06\x02\x01\
    \x05\x12\x035\x11\x17\n\x0c\n\x05\x04\x06\x02\x01\x01\x12\x035\x18&\n\
    \x0c\n\x05\x04\x06\x02\x01\x03\x12\x035)*\n\x0c\n\x05\x04\x06\x02\x01\
    \x08\x12\x035+f\n\x0f\n\x08\x04\x06\x02\x01\x08\xd0\x86\x03\x12\x035,e\n\
    \x0b\n\x04\x04\x06\x02\x02\x12\x036\x08o\n\x0c\n\x05\x04\x06\x02\x02\x04\
    \x12\x036\x08\x10\n\x0c\n\x05\x04\x06\x02\x02\x05\x12\x036\x11\x17\n\x0c\
    \n\x05\x04\x06\x02\x02\x01\x12\x036\x18%\n\x0c\n\x05\x04\x06\x02\x02\x03\
    \x12\x036()\n\x0c\n\x05\x04\x06\x02\x02\x08\x12\x036*n\n\x0f\n\x08\x04\
    \x06\x02\x02\x08\xd0\x86\x03\x12\x036+m\n\x0b\n\x04\x04\x06\x02\x03\x12\
    \x037\x08\x7f\n\x0c\n\x05\x04\x06\x02\x03\x04\x12\x037\x08\x10\n\x0c\n\
    \x05\x04\x06\x02\x03\x05\x12\x037\x11\x17\n\x0c\n\x05\x04\x06\x02\x03\
    \x01\x12\x037\x18-\n\x0c\n\x05\x04\x06\x02\x03\x03\x12\x03701\n\x0c\n\
    \x05\x04\x06\x02\x03\x08\x12\x0372~\n\x0f\n\x08\x04\x06\x02\x03\x08\xd0\
    \x86\x03\x12\x0373}\n\x0b\n\x04\x04\x06\x02\x04\x12\x038\x08Y\n\x0c\n\
    \x05\x04\x06\x02\x04\x04\x12\x038\x08\x10\n\x0c\n\x05\x04\x06\x02\x04\
    \x05\x12\x038\x11\x17\n\x0c\n\x05\x04\x06\x02\x04\x01\x12\x038\x18\x1d\n\
    \x0c\n\x05\x04\x06\x02\x04\x03\x12\x038\x20!\n\x0c\n\x05\x04\x06\x02\x04\
    \x08\x12\x038\"X\n\x0f\n\x08\x04\x06\x02\x04\x08\xd0\x86\x03\x12\x038#W\
    \n\x0b\n\x04\x04\x06\x02\x05\x12\x039\x08j\n\x0c\n\x05\x04\x06\x02\x05\
    \x04\x12\x039\x08\x10\n\x0c\n\x05\x04\x06\x02\x05\x05\x12\x039\x11\x17\n\
    \x0c\n\x05\x04\x06\x02\x05\x01\x12\x039\x18(\n\x0c\n\x05\x04\x06\x02\x05\
    \x03\x12\x039+,\n\x0c\n\x05\x04\x06\x02\x05\x08\x12\x039-i\n\x0f\n\x08\
    \x04\x06\x02\x05\x08\xd0\x86\x03\x12\x039.h\n\x0b\n\x04\x04\x06\x02\x06\
    \x12\x03:\x08p\n\x0c\n\x05\x04\x06\x02\x06\x04\x12\x03:\x08\x10\n\x0c\n\
    \x05\x04\x06\x02\x06\x05\x12\x03:\x11\x17\n\x0c\n\x05\x04\x06\x02\x06\
    \x01\x12\x03:\x18!\n\x0c\n\x05\x04\x06\x02\x06\x03\x12\x03:$%\n\x0c\n\
    \x05\x04\x06\x02\x06\x08\x12\x03:&o\n\x0f\n\x08\x04\x06\x02\x06\x08\xd0\
    \x86\x03\x12\x03:'n\n\x0b\n\x04\x04\x06\x02\x07\x12\x03;\x08m\n\x0c\n\
    \x05\x04\x06\x02\x07\x04\x12\x03;\x08\x10\n\x0c\n\x05\x04\x06\x02\x07\
    \x05\x12\x03;\x11\x17\n\x0c\n\x05\x04\x06\x02\x07\x01\x12\x03;\x18.\n\
    \x0c\n\x05\x04\x06\x02\x07\x03\x12\x03;12\n\x0c\n\x05\x04\x06\x02\x07\
    \x08\x12\x03;3l\n\x0f\n\x08\x04\x06\x02\x07\x08\xd0\x86\x03\x12\x03;4k\n\
    \x0b\n\x04\x04\x06\x02\x08\x12\x03<\x08m\n\x0c\n\x05\x04\x06\x02\x08\x04\
    \x12\x03<\x08\x10\n\x0c\n\x05\x04\x06\x02\x08\x05\x12\x03<\x11\x17\n\x0c\
    \n\x05\x04\x06\x02\x08\x01\x12\x03<\x18(\n\x0c\n\x05\x04\x06\x02\x08\x03\
    \x12\x03<+,\n\x0c\n\x05\x04\x06\x02\x08\x08\x12\x03<-l\n\x0f\n\x08\x04\
    \x06\x02\x08\x08\xd0\x86\x03\x12\x03<.k\n\x0c\n\x04\x04\x06\x02\t\x12\
    \x04=\x08\x81\x01\n\x0c\n\x05\x04\x06\x02\t\x04\x12\x03=\x08\x10\n\x0c\n\
    \x05\x04\x06\x02\t\x05\x12\x03=\x11\x17\n\x0c\n\x05\x04\x06\x02\t\x01\
    \x12\x03=\x18'\n\x0c\n\x05\x04\x06\x02\t\x03\x12\x03=*,\n\r\n\x05\x04\
    \x06\x02\t\x08\x12\x04=-\x80\x01\n\x0f\n\x08\x04\x06\x02\t\x08\xd0\x86\
    \x03\x12\x03=.\x7f\n\x0c\n\x04\x04\x06\x02\n\x12\x04>\x08\xa6\x01\n\x0c\
    \n\x05\x04\x06\x02\n\x04\x12\x03>\x08\x10\n\x0c\n\x05\x04\x06\x02\n\x05\
    \x12\x03>\x11\x17\n\x0c\n\x05\x04\x06\x02\n\x01\x12\x03>\x18\"\n\x0c\n\
    \x05\x04\x06\x02\n\x03\x12\x03>%'\n\r\n\x05\x04\x06\x02\n\x08\x12\x04>(\
    \xa5\x01\n\x10\n\x08\x04\x06\x02\n\x08\xd0\x86\x03\x12\x04>)\xa4\x01\n\
    \x0c\n\x04\x04\x06\x02\x0b\x12\x04?\x08\x90\x01\n\x0c\n\x05\x04\x06\x02\
    \x0b\x04\x12\x03?\x08\x10\n\x0c\n\x05\x04\x06\x02\x0b\x05\x12\x03?\x11\
    \x17\n\x0c\n\x05\x04\x06\x02\x0b\x01\x12\x03?\x18$\n\x0c\n\x05\x04\x06\
    \x02\x0b\x03\x12\x03?')\n\r\n\x05\x04\x06\x02\x0b\x08\x12\x04?*\x8f\x01\
    \n\x10\n\x08\x04\x06\x02\x0b\x08\xd0\x86\x03\x12\x04?+\x8e\x01\n\x0b\n\
    \x04\x04\x06\x02\x0c\x12\x03@\x08i\n\x0c\n\x05\x04\x06\x02\x0c\x04\x12\
    \x03@\x08\x10\n\x0c\n\x05\x04\x06\x02\x0c\x05\x12\x03@\x11\x17\n\x0c\n\
    \x05\x04\x06\x02\x0c\x01\x12\x03@\x18\x1c\n\x0c\n\x05\x04\x06\x02\x0c\
    \x03\x12\x03@\x1f!\n\x0c\n\x05\x04\x06\x02\x0c\x08\x12\x03@\"h\n\x0f\n\
    \x08\x04\x06\x02\x0c\x08\xd0\x86\x03\x12\x03@#g\n\x0b\n\x04\x04\x06\x02\
    \r\x12\x03A\x08~\n\x0c\n\x05\x04\x06\x02\r\x04\x12\x03A\x08\x10\n\x0c\n\
    \x05\x04\x06\x02\r\x05\x12\x03A\x11\x17\n\x0c\n\x05\x04\x06\x02\r\x01\
    \x12\x03A\x18'\n\x0c\n\x05\x04\x06\x02\r\x03\x12\x03A*,\n\x0c\n\x05\x04\
    \x06\x02\r\x08\x12\x03A-}\n\x0f\n\x08\x04\x06\x02\r\x08\xd0\x86\x03\x12\
    \x03A.|\n\x0b\n\x04\x04\x06\x02\x0e\x12\x03B\x08r\n\x0c\n\x05\x04\x06\
    \x02\x0e\x04\x12\x03B\x08\x10\n\x0c\n\x05\x04\x06\x02\x0e\x05\x12\x03B\
    \x11\x17\n\x0c\n\x05\x04\x06\x02\x0e\x01\x12\x03B\x18!\n\x0c\n\x05\x04\
    \x06\x02\x0e\x03\x12\x03B$&\n\x0c\n\x05\x04\x06\x02\x0e\x08\x12\x03B'q\n\
    \x0f\n\x08\x04\x06\x02\x0e\x08\xd0\x86\x03\x12\x03B(p\n\x0c\n\x04\x04\
    \x06\x02\x0f\x12\x04C\x08\x80\x01\n\x0c\n\x05\x04\x06\x02\x0f\x04\x12\
    \x03C\x08\x10\n\x0c\n\x05\x04\x06\x02\x0f\x05\x12\x03C\x11\x17\n\x0c\n\
    \x05\x04\x06\x02\x0f\x01\x12\x03C\x18\x1b\n\x0c\n\x05\x04\x06\x02\x0f\
    \x03\x12\x03C\x1e\x20\n\x0c\n\x05\x04\x06\x02\x0f\x08\x12\x03C!\x7f\n\
    \x0f\n\x08\x04\x06\x02\x0f\x08\xd0\x86\x03\x12\x03C\"~\n\n\n\x02\x04\x07\
    \x12\x04F\0I\x01\n\n\n\x03\x04\x07\x01\x12\x03F\x08'\n\x0b\n\x04\x04\x07\
    \x02\0\x12\x03G\x08,\n\x0c\n\x05\x04\x07\x02\0\x04\x12\x03G\x08\x10\n\
    \x0c\n\x05\x04\x07\x02\0\x05\x12\x03G\x11\x17\n\x0c\n\x05\x04\x07\x02\0\
    \x01\x12\x03G\x18'\n\x0c\n\x05\x04\x07\x02\0\x03\x12\x03G*+\n\x0b\n\x04\
    \x04\x07\x02\x01\x12\x03H\x08)\n\x0c\n\x05\x04\x07\x02\x01\x04\x12\x03H\
    \x08\x10\n\x0c\n\x05\x04\x07\x02\x01\x05\x12\x03H\x11\x17\n\x0c\n\x05\
    \x04\x07\x02\x01\x01\x12\x03H\x18$\n\x0c\n\x05\x04\x07\x02\x01\x03\x12\
    \x03H'(\n\n\n\x02\x04\x08\x12\x04K\0[\x01\n\n\n\x03\x04\x08\x01\x12\x03K\
    \x08)\n\x0b\n\x04\x04\x08\x02\0\x12\x03L\x08u\n\x0c\n\x05\x04\x08\x02\0\
    \x04\x12\x03L\x08\x10\n\x0c\n\x05\x04\x08\x02\0\x05\x12\x03L\x11\x18\n\
    \x0c\n\x05\x04\x08\x02\0\x01\x12\x03L\x19)\n\x0c\n\x05\x04\x08\x02\0\x03\
    \x12\x03L,-\n\x0c\n\x05\x04\x08\x02\0\x08\x12\x03L.t\n\x0f\n\x08\x04\x08\
    \x02\0\x08\xd0\x86\x03\x12\x03L/s\n\x0b\n\x04\x04\x08\x02\x01\x12\x03M\
    \x08s\n\x0c\n\x05\x04\x08\x02\x01\x04\x12\x03M\x08\x10\n\x0c\n\x05\x04\
    \x08\x02\x01\x05\x12\x03M\x11\x15\n\x0c\n\x05\x04\x08\x02\x01\x01\x12\
    \x03M\x16!\n\x0c\n\x05\x04\x08\x02\x01\x03\x12\x03M$%\n\x0c\n\x05\x04\
    \x08\x02\x01\x08\x12\x03M&r\n\x0f\n\x08\x04\x08\x02\x01\x08\xd0\x86\x03\
    \x12\x03M'q\n\x0c\n\x04\x04\x08\x02\x02\x12\x04N\x08\x85\x01\n\x0c\n\x05\
    \x04\x08\x02\x02\x04\x12\x03N\x08\x10\n\x0c\n\x05\x04\x08\x02\x02\x05\
    \x12\x03N\x11\x15\n\x0c\n\x05\x04\x08\x02\x02\x01\x12\x03N\x16/\n\x0c\n\
    \x05\x04\x08\x02\x02\x03\x12\x03N23\n\r\n\x05\x04\x08\x02\x02\x08\x12\
    \x04N4\x84\x01\n\x10\n\x08\x04\x08\x02\x02\x08\xd0\x86\x03\x12\x04N5\x83\
    \x01\n\x0b\n\x04\x04\x08\x02\x03\x12\x03O\x08p\n\x0c\n\x05\x04\x08\x02\
    \x03\x04\x12\x03O\x08\x10\n\x0c\n\x05\x04\x08\x02\x03\x05\x12\x03O\x11\
    \x15\n\x0c\n\x05\x04\x08\x02\x03\x01\x12\x03O\x16%\n\x0c\n\x05\x04\x08\
    \x02\x03\x03\x12\x03O()\n\x0c\n\x05\x04\x08\x02\x03\x08\x12\x03O*o\n\x0f\
    \n\x08\x04\x08\x02\x03\x08\xd0\x86\x03\x12\x03O+n\n\x0b\n\x04\x04\x08\
    \x02\x04\x12\x03P\x08t\n\x0c\n\x05\x04\x08\x02\x04\x04\x12\x03P\x08\x10\
    \n\x0c\n\x05\x04\x08\x02\x04\x05\x12\x03P\x11\x15\n\x0c\n\x05\x04\x08\
    \x02\x04\x01\x12\x03P\x16#\n\x0c\n\x05\x04\x08\x02\x04\x03\x12\x03P&'\n\
    \x0c\n\x05\x04\x08\x02\x04\x08\x12\x03P(s\n\x0f\n\x08\x04\x08\x02\x04\
    \x08\xd0\x86\x03\x12\x03P)r\n\x0b\n\x04\x04\x08\x02\x05\x12\x03Q\x08n\n\
    \x0c\n\x05\x04\x08\x02\x05\x04\x12\x03Q\x08\x10\n\x0c\n\x05\x04\x08\x02\
    \x05\x05\x12\x03Q\x11\x15\n\x0c\n\x05\x04\x08\x02\x05\x01\x12\x03Q\x16\"\
    \n\x0c\n\x05\x04\x08\x02\x05\x03\x12\x03Q%&\n\x0c\n\x05\x04\x08\x02\x05\
    \x08\x12\x03Q'm\n\x0f\n\x08\x04\x08\x02\x05\x08\xd0\x86\x03\x12\x03Q(l\n\
    \x0c\n\x04\x04\x08\x02\x06\x12\x04R\x08\x85\x01\n\x0c\n\x05\x04\x08\x02\
    \x06\x04\x12\x03R\x08\x10\n\x0c\n\x05\x04\x08\x02\x06\x05\x12\x03R\x11\
    \x15\n\x0c\n\x05\x04\x08\x02\x06\x01\x12\x03R\x16'\n\x0c\n\x05\x04\x08\
    \x02\x06\x03\x12\x03R*+\n\r\n\x05\x04\x08\x02\x06\x08\x12\x04R,\x84\x01\
    \n\x10\n\x08\x04\x08\x02\x06\x08\xd0\x86\x03\x12\x04R-\x83\x01\n\x0b\n\
    \x04\x04\x08\x02\x07\x12\x03S\x08o\n\x0c\n\x05\x04\x08\x02\x07\x04\x12\
    \x03S\x08\x10\n\x0c\n\x05\x04\x08\x02\x07\x05\x12\x03S\x11\x15\n\x0c\n\
    \x05\x04\x08\x02\x07\x01\x12\x03S\x16(\n\x0c\n\x05\x04\x08\x02\x07\x03\
    \x12\x03S+-\n\x0c\n\x05\x04\x08\x02\x07\x08\x12\x03S.n\n\x0f\n\x08\x04\
    \x08\x02\x07\x08\xd0\x86\x03\x12\x03S/m\n\x0b\n\x04\x04\x08\x02\x08\x12\
    \x03T\x08e\n\x0c\n\x05\x04\x08\x02\x08\x04\x12\x03T\x08\x10\n\x0c\n\x05\
    \x04\x08\x02\x08\x05\x12\x03T\x11\x15\n\x0c\n\x05\x04\x08\x02\x08\x01\
    \x12\x03T\x16%\n\x0c\n\x05\x04\x08\x02\x08\x03\x12\x03T(*\n\x0c\n\x05\
    \x04\x08\x02\x08\x08\x12\x03T+d\n\x0f\n\x08\x04\x08\x02\x08\x08\xd0\x86\
    \x03\x12\x03T,c\n\x0c\n\x04\x04\x08\x02\t\x12\x04U\x08\x83\x01\n\x0c\n\
    \x05\x04\x08\x02\t\x04\x12\x03U\x08\x10\n\x0c\n\x05\x04\x08\x02\t\x05\
    \x12\x03U\x11\x16\n\x0c\n\x05\x04\x08\x02\t\x01\x12\x03U\x17\x1f\n\x0c\n\
    \x05\x04\x08\x02\t\x03\x12\x03U\"$\n\r\n\x05\x04\x08\x02\t\x08\x12\x04U%\
    \x82\x01\n\x0c\n\x05\x04\x08\x02\t\x07\x12\x03U01\n\x10\n\x08\x04\x08\
    \x02\t\x08\xd0\x86\x03\x12\x04U3\x81\x01\n\x0c\n\x04\x04\x08\x02\n\x12\
    \x04V\x08\x8c\x01\n\x0c\n\x05\x04\x08\x02\n\x04\x12\x03V\x08\x10\n\x0c\n\
    \x05\x04\x08\x02\n\x05\x12\x03V\x11\x17\n\x0c\n\x05\x04\x08\x02\n\x01\
    \x12\x03V\x18-\n\x0c\n\x05\x04\x08\x02\n\x03\x12\x03V02\n\r\n\x05\x04\
    \x08\x02\n\x08\x12\x04V3\x8b\x01\n\x10\n\x08\x04\x08\x02\n\x08\xd0\x86\
    \x03\x12\x04V4\x8a\x01\n\x0b\n\x04\x04\x08\x02\x0b\x12\x03W\x08#\n\x0c\n\
    \x05\x04\x08\x02\x0b\x04\x12\x03W\x08\x10\n\x0c\n\x05\x04\x08\x02\x0b\
    \x05\x12\x03W\x11\x17\n\x0c\n\x05\x04\x08\x02\x0b\x01\x12\x03W\x18\x1d\n\
    \x0c\n\x05\x04\x08\x02\x0b\x03\x12\x03W\x20\"\n\x0b\n\x04\x04\x08\x02\
    \x0c\x12\x03X\x08i\n\x0c\n\x05\x04\x08\x02\x0c\x04\x12\x03X\x08\x10\n\
    \x0c\n\x05\x04\x08\x02\x0c\x05\x12\x03X\x11\x15\n\x0c\n\x05\x04\x08\x02\
    \x0c\x01\x12\x03X\x16.\n\x0c\n\x05\x04\x08\x02\x0c\x03\x12\x03X13\n\x0c\
    \n\x05\x04\x08\x02\x0c\x08\x12\x03X4h\n\x0f\n\x08\x04\x08\x02\x0c\x08\
    \xd0\x86\x03\x12\x03X5g\n\x0c\n\x04\x04\x08\x02\r\x12\x04Y\x08\xab\x01\n\
    \x0c\n\x05\x04\x08\x02\r\x04\x12\x03Y\x08\x10\n\x0c\n\x05\x04\x08\x02\r\
    \x06\x12\x03Y\x11(\n\x0c\n\x05\x04\x08\x02\r\x01\x12\x03Y)9\n\x0c\n\x05\
    \x04\x08\x02\r\x03\x12\x03Y<>\n\r\n\x05\x04\x08\x02\r\x08\x12\x04Y?\xaa\
    \x01\n\x0c\n\x05\x04\x08\x02\r\x07\x12\x03YJj\n\x10\n\x08\x04\x08\x02\r\
    \x08\xd0\x86\x03\x12\x04Yl\xa9\x01\n\x0c\n\x04\x04\x08\x02\x0e\x12\x04Z\
    \x08\x84\x01\n\x0c\n\x05\x04\x08\x02\x0e\x04\x12\x03Z\x08\x10\n\x0c\n\
    \x05\x04\x08\x02\x0e\x05\x12\x03Z\x11\x15\n\x0c\n\x05\x04\x08\x02\x0e\
    \x01\x12\x03Z\x16&\n\x0c\n\x05\x04\x08\x02\x0e\x03\x12\x03Z)+\n\r\n\x05\
    \x04\x08\x02\x0e\x08\x12\x04Z,\x83\x01\n\x0c\n\x05\x04\x08\x02\x0e\x07\
    \x12\x03Z7<\n\x10\n\x08\x04\x08\x02\x0e\x08\xd0\x86\x03\x12\x04Z>\x82\
    \x01\n\x0b\n\x02\x04\t\x12\x05]\0\xd8\x01\x01\n\n\n\x03\x04\t\x01\x12\
    \x03]\x08\x1c\n\x0c\n\x04\x04\t\x03\0\x12\x04^\x08b\t\n\x0c\n\x05\x04\t\
    \x03\0\x01\x12\x03^\x10\x13\n\r\n\x06\x04\t\x03\0\x02\0\x12\x03_\x10(\n\
    \x0e\n\x07\x04\t\x03\0\x02\0\x04\x12\x03_\x10\x18\n\x0e\n\x07\x04\t\x03\
    \0\x02\0\x05\x12\x03_\x19\x1f\n\x0e\n\x07\x04\t\x03\0\x02\0\x01\x12\x03_\
    \x20#\n\x0e\n\x07\x04\t\x03\0\x02\0\x03\x12\x03_&'\n\r\n\x06\x04\t\x03\0\
    \x02\x01\x12\x03`\x10,\n\x0e\n\x07\x04\t\x03\0\x02\x01\x04\x12\x03`\x10\
    \x18\n\x0e\n\x07\x04\t\x03\0\x02\x01\x05\x12\x03`\x19\x1d\n\x0e\n\x07\
    \x04\t\x03\0\x02\x01\x01\x12\x03`\x1e'\n\x0e\n\x07\x04\t\x03\0\x02\x01\
    \x03\x12\x03`*+\n\r\n\x06\x04\t\x03\0\x02\x02\x12\x03a\x101\n\x0e\n\x07\
    \x04\t\x03\0\x02\x02\x04\x12\x03a\x10\x18\n\x0e\n\x07\x04\t\x03\0\x02\
    \x02\x05\x12\x03a\x19\x1f\n\x0e\n\x07\x04\t\x03\0\x02\x02\x01\x12\x03a\
    \x20,\n\x0e\n\x07\x04\t\x03\0\x02\x02\x03\x12\x03a/0\n\x0c\n\x04\x04\t\
    \x03\x01\x12\x04d\x08m\t\n\x0c\n\x05\x04\t\x03\x01\x01\x12\x03d\x10\x17\
    \n\r\n\x06\x04\t\x03\x01\x02\0\x12\x03e\x10.\n\x0e\n\x07\x04\t\x03\x01\
    \x02\0\x04\x12\x03e\x10\x18\n\x0e\n\x07\x04\t\x03\x01\x02\0\x05\x12\x03e\
    \x19\x1f\n\x0e\n\x07\x04\t\x03\x01\x02\0\x01\x12\x03e\x20)\n\x0e\n\x07\
    \x04\t\x03\x01\x02\0\x03\x12\x03e,-\n\r\n\x06\x04\t\x03\x01\x02\x01\x12\
    \x03f\x10.\n\x0e\n\x07\x04\t\x03\x01\x02\x01\x04\x12\x03f\x10\x18\n\x0e\
    \n\x07\x04\t\x03\x01\x02\x01\x05\x12\x03f\x19\x1f\n\x0e\n\x07\x04\t\x03\
    \x01\x02\x01\x01\x12\x03f\x20)\n\x0e\n\x07\x04\t\x03\x01\x02\x01\x03\x12\
    \x03f,-\n\r\n\x06\x04\t\x03\x01\x02\x02\x12\x03g\x10(\n\x0e\n\x07\x04\t\
    \x03\x01\x02\x02\x04\x12\x03g\x10\x18\n\x0e\n\x07\x04\t\x03\x01\x02\x02\
    \x05\x12\x03g\x19\x1f\n\x0e\n\x07\x04\t\x03\x01\x02\x02\x01\x12\x03g\x20\
    #\n\x0e\n\x07\x04\t\x03\x01\x02\x02\x03\x12\x03g&'\n\r\n\x06\x04\t\x03\
    \x01\x02\x03\x12\x03h\x10)\n\x0e\n\x07\x04\t\x03\x01\x02\x03\x04\x12\x03\
    h\x10\x18\n\x0e\n\x07\x04\t\x03\x01\x02\x03\x05\x12\x03h\x19\x1f\n\x0e\n\
    \x07\x04\t\x03\x01\x02\x03\x01\x12\x03h\x20$\n\x0e\n\x07\x04\t\x03\x01\
    \x02\x03\x03\x12\x03h'(\n\r\n\x06\x04\t\x03\x01\x02\x04\x12\x03i\x10-\n\
    \x0e\n\x07\x04\t\x03\x01\x02\x04\x04\x12\x03i\x10\x18\n\x0e\n\x07\x04\t\
    \x03\x01\x02\x04\x05\x12\x03i\x19\x1f\n\x0e\n\x07\x04\t\x03\x01\x02\x04\
    \x01\x12\x03i\x20(\n\x0e\n\x07\x04\t\x03\x01\x02\x04\x03\x12\x03i+,\n\r\
    \n\x06\x04\t\x03\x01\x02\x05\x12\x03j\x103\n\x0e\n\x07\x04\t\x03\x01\x02\
    \x05\x04\x12\x03j\x10\x18\n\x0e\n\x07\x04\t\x03\x01\x02\x05\x05\x12\x03j\
    \x19\x1f\n\x0e\n\x07\x04\t\x03\x01\x02\x05\x01\x12\x03j\x20.\n\x0e\n\x07\
    \x04\t\x03\x01\x02\x05\x03\x12\x03j12\n\r\n\x06\x04\t\x03\x01\x02\x06\
    \x12\x03k\x101\n\x0e\n\x07\x04\t\x03\x01\x02\x06\x04\x12\x03k\x10\x18\n\
    \x0e\n\x07\x04\t\x03\x01\x02\x06\x05\x12\x03k\x19\x1f\n\x0e\n\x07\x04\t\
    \x03\x01\x02\x06\x01\x12\x03k\x20,\n\x0e\n\x07\x04\t\x03\x01\x02\x06\x03\
    \x12\x03k/0\n\r\n\x06\x04\t\x03\x01\x02\x07\x12\x03l\x107\n\x0e\n\x07\
    \x04\t\x03\x01\x02\x07\x04\x12\x03l\x10\x18\n\x0e\n\x07\x04\t\x03\x01\
    \x02\x07\x05\x12\x03l\x19\x1f\n\x0e\n\x07\x04\t\x03\x01\x02\x07\x01\x12\
    \x03l\x202\n\x0e\n\x07\x04\t\x03\x01\x02\x07\x03\x12\x03l56\n\x0c\n\x04\
    \x04\t\x03\x02\x12\x04o\x08s\t\n\x0c\n\x05\x04\t\x03\x02\x01\x12\x03o\
    \x10\x15\n\r\n\x06\x04\t\x03\x02\x02\0\x12\x03p\x104\n\x0e\n\x07\x04\t\
    \x03\x02\x02\0\x04\x12\x03p\x10\x18\n\x0e\n\x07\x04\t\x03\x02\x02\0\x05\
    \x12\x03p\x19\x1f\n\x0e\n\x07\x04\t\x03\x02\x02\0\x01\x12\x03p\x20/\n\
    \x0e\n\x07\x04\t\x03\x02\x02\0\x03\x12\x03p23\n\r\n\x06\x04\t\x03\x02\
    \x02\x01\x12\x03q\x10.\n\x0e\n\x07\x04\t\x03\x02\x02\x01\x04\x12\x03q\
    \x10\x18\n\x0e\n\x07\x04\t\x03\x02\x02\x01\x05\x12\x03q\x19\x1f\n\x0e\n\
    \x07\x04\t\x03\x02\x02\x01\x01\x12\x03q\x20)\n\x0e\n\x07\x04\t\x03\x02\
    \x02\x01\x03\x12\x03q,-\n\r\n\x06\x04\t\x03\x02\x02\x02\x12\x03r\x10.\n\
    \x0e\n\x07\x04\t\x03\x02\x02\x02\x04\x12\x03r\x10\x18\n\x0e\n\x07\x04\t\
    \x03\x02\x02\x02\x05\x12\x03r\x19\x1f\n\x0e\n\x07\x04\t\x03\x02\x02\x02\
    \x01\x12\x03r\x20)\n\x0e\n\x07\x04\t\x03\x02\x02\x02\x03\x12\x03r,-\n\
    \x0c\n\x04\x04\t\x03\x03\x12\x04u\x08x\t\n\x0c\n\x05\x04\t\x03\x03\x01\
    \x12\x03u\x10\x15\n\r\n\x06\x04\t\x03\x03\x02\0\x12\x03v\x10(\n\x0e\n\
    \x07\x04\t\x03\x03\x02\0\x04\x12\x03v\x10\x18\n\x0e\n\x07\x04\t\x03\x03\
    \x02\0\x05\x12\x03v\x19\x1f\n\x0e\n\x07\x04\t\x03\x03\x02\0\x01\x12\x03v\
    \x20#\n\x0e\n\x07\x04\t\x03\x03\x02\0\x03\x12\x03v&'\n\r\n\x06\x04\t\x03\
    \x03\x02\x01\x12\x03w\x10*\n\x0e\n\x07\x04\t\x03\x03\x02\x01\x04\x12\x03\
    w\x10\x18\n\x0e\n\x07\x04\t\x03\x03\x02\x01\x05\x12\x03w\x19\x1f\n\x0e\n\
    \x07\x04\t\x03\x03\x02\x01\x01\x12\x03w\x20%\n\x0e\n\x07\x04\t\x03\x03\
    \x02\x01\x03\x12\x03w()\n\x0c\n\x04\x04\t\x03\x04\x12\x04z\x08~\t\n\x0c\
    \n\x05\x04\t\x03\x04\x01\x12\x03z\x10\x18\n\r\n\x06\x04\t\x03\x04\x02\0\
    \x12\x03{\x10)\n\x0e\n\x07\x04\t\x03\x04\x02\0\x04\x12\x03{\x10\x18\n\
    \x0e\n\x07\x04\t\x03\x04\x02\0\x05\x12\x03{\x19\x1e\n\x0e\n\x07\x04\t\
    \x03\x04\x02\0\x01\x12\x03{\x1f$\n\x0e\n\x07\x04\t\x03\x04\x02\0\x03\x12\
    \x03{'(\n\r\n\x06\x04\t\x03\x04\x02\x01\x12\x03|\x10-\n\x0e\n\x07\x04\t\
    \x03\x04\x02\x01\x04\x12\x03|\x10\x18\n\x0e\n\x07\x04\t\x03\x04\x02\x01\
    \x05\x12\x03|\x19\x1f\n\x0e\n\x07\x04\t\x03\x04\x02\x01\x01\x12\x03|\x20\
    (\n\x0e\n\x07\x04\t\x03\x04\x02\x01\x03\x12\x03|+,\n\r\n\x06\x04\t\x03\
    \x04\x02\x02\x12\x03}\x10/\n\x0e\n\x07\x04\t\x03\x04\x02\x02\x04\x12\x03\
    }\x10\x18\n\x0e\n\x07\x04\t\x03\x04\x02\x02\x05\x12\x03}\x19\x1f\n\x0e\n\
    \x07\x04\t\x03\x04\x02\x02\x01\x12\x03}\x20*\n\x0e\n\x07\x04\t\x03\x04\
    \x02\x02\x03\x12\x03}-.\n\x0e\n\x04\x04\t\x03\x05\x12\x06\x80\x01\x08\
    \x87\x01\t\n\r\n\x05\x04\t\x03\x05\x01\x12\x04\x80\x01\x10\x1b\n\x0e\n\
    \x06\x04\t\x03\x05\x02\0\x12\x04\x81\x01\x10.\n\x0f\n\x07\x04\t\x03\x05\
    \x02\0\x04\x12\x04\x81\x01\x10\x18\n\x0f\n\x07\x04\t\x03\x05\x02\0\x05\
    \x12\x04\x81\x01\x19\x1d\n\x0f\n\x07\x04\t\x03\x05\x02\0\x01\x12\x04\x81\
    \x01\x1e)\n\x0f\n\x07\x04\t\x03\x05\x02\0\x03\x12\x04\x81\x01,-\n\x0e\n\
    \x06\x04\t\x03\x05\x02\x01\x12\x04\x82\x01\x103\n\x0f\n\x07\x04\t\x03\
    \x05\x02\x01\x04\x12\x04\x82\x01\x10\x18\n\x0f\n\x07\x04\t\x03\x05\x02\
    \x01\x05\x12\x04\x82\x01\x19\x1f\n\x0f\n\x07\x04\t\x03\x05\x02\x01\x01\
    \x12\x04\x82\x01\x20.\n\x0f\n\x07\x04\t\x03\x05\x02\x01\x03\x12\x04\x82\
    \x0112\n\x0e\n\x06\x04\t\x03\x05\x02\x02\x12\x04\x83\x01\x10a\n\x0f\n\
    \x07\x04\t\x03\x05\x02\x02\x04\x12\x04\x83\x01\x10\x18\n\x0f\n\x07\x04\t\
    \x03\x05\x02\x02\x06\x12\x04\x83\x01\x195\n\x0f\n\x07\x04\t\x03\x05\x02\
    \x02\x01\x12\x04\x83\x016=\n\x0f\n\x07\x04\t\x03\x05\x02\x02\x03\x12\x04\
    \x83\x01@A\n\x0f\n\x07\x04\t\x03\x05\x02\x02\x08\x12\x04\x83\x01B`\n\x0f\
    \n\x07\x04\t\x03\x05\x02\x02\x07\x12\x04\x83\x01M_\n\x0e\n\x06\x04\t\x03\
    \x05\x02\x03\x12\x04\x84\x01\x109\n\x0f\n\x07\x04\t\x03\x05\x02\x03\x04\
    \x12\x04\x84\x01\x10\x18\n\x0f\n\x07\x04\t\x03\x05\x02\x03\x05\x12\x04\
    \x84\x01\x19\x1f\n\x0f\n\x07\x04\t\x03\x05\x02\x03\x01\x12\x04\x84\x01\
    \x204\n\x0f\n\x07\x04\t\x03\x05\x02\x03\x03\x12\x04\x84\x0178\n\x0e\n\
    \x06\x04\t\x03\x05\x02\x04\x12\x04\x85\x01\x10=\n\x0f\n\x07\x04\t\x03\
    \x05\x02\x04\x04\x12\x04\x85\x01\x10\x18\n\x0f\n\x07\x04\t\x03\x05\x02\
    \x04\x05\x12\x04\x85\x01\x19\x1d\n\x0f\n\x07\x04\t\x03\x05\x02\x04\x01\
    \x12\x04\x85\x01\x1e8\n\x0f\n\x07\x04\t\x03\x05\x02\x04\x03\x12\x04\x85\
    \x01;<\n\x0e\n\x06\x04\t\x03\x05\x02\x05\x12\x04\x86\x01\x108\n\x0f\n\
    \x07\x04\t\x03\x05\x02\x05\x04\x12\x04\x86\x01\x10\x18\n\x0f\n\x07\x04\t\
    \x03\x05\x02\x05\x05\x12\x04\x86\x01\x19\x1f\n\x0f\n\x07\x04\t\x03\x05\
    \x02\x05\x01\x12\x04\x86\x01\x203\n\x0f\n\x07\x04\t\x03\x05\x02\x05\x03\
    \x12\x04\x86\x0167\n\x0e\n\x04\x04\t\x03\x06\x12\x06\x89\x01\x08\x8c\x01\
    \t\n\r\n\x05\x04\t\x03\x06\x01\x12\x04\x89\x01\x10\x1d\n\x0e\n\x06\x04\t\
    \x03\x06\x02\0\x12\x04\x8a\x01\x105\n\x0f\n\x07\x04\t\x03\x06\x02\0\x04\
    \x12\x04\x8a\x01\x10\x18\n\x0f\n\x07\x04\t\x03\x06\x02\0\x05\x12\x04\x8a\
    \x01\x19\x1f\n\x0f\n\x07\x04\t\x03\x06\x02\0\x01\x12\x04\x8a\x01\x200\n\
    \x0f\n\x07\x04\t\x03\x06\x02\0\x03\x12\x04\x8a\x0134\n\x0e\n\x06\x04\t\
    \x03\x06\x02\x01\x12\x04\x8b\x01\x101\n\x0f\n\x07\x04\t\x03\x06\x02\x01\
    \x04\x12\x04\x8b\x01\x10\x18\n\x0f\n\x07\x04\t\x03\x06\x02\x01\x05\x12\
    \x04\x8b\x01\x19\x1f\n\x0f\n\x07\x04\t\x03\x06\x02\x01\x01\x12\x04\x8b\
    \x01\x20,\n\x0f\n\x07\x04\t\x03\x06\x02\x01\x03\x12\x04\x8b\x01/0\n\x0e\
    \n\x04\x04\t\x03\x07\x12\x06\x8e\x01\x08\x91\x01\t\n\r\n\x05\x04\t\x03\
    \x07\x01\x12\x04\x8e\x01\x10\x18\n\x0e\n\x06\x04\t\x03\x07\x02\0\x12\x04\
    \x8f\x01\x10/\n\x0f\n\x07\x04\t\x03\x07\x02\0\x04\x12\x04\x8f\x01\x10\
    \x18\n\x0f\n\x07\x04\t\x03\x07\x02\0\x05\x12\x04\x8f\x01\x19\x1f\n\x0f\n\
    \x07\x04\t\x03\x07\x02\0\x01\x12\x04\x8f\x01\x20*\n\x0f\n\x07\x04\t\x03\
    \x07\x02\0\x03\x12\x04\x8f\x01-.\n\x0e\n\x06\x04\t\x03\x07\x02\x01\x12\
    \x04\x90\x01\x10*\n\x0f\n\x07\x04\t\x03\x07\x02\x01\x04\x12\x04\x90\x01\
    \x10\x18\n\x0f\n\x07\x04\t\x03\x07\x02\x01\x05\x12\x04\x90\x01\x19\x1f\n\
    \x0f\n\x07\x04\t\x03\x07\x02\x01\x01\x12\x04\x90\x01\x20%\n\x0f\n\x07\
    \x04\t\x03\x07\x02\x01\x03\x12\x04\x90\x01()\n\x0c\n\x04\x04\t\x02\0\x12\
    \x04\x93\x01\x08#\n\r\n\x05\x04\t\x02\0\x04\x12\x04\x93\x01\x08\x10\n\r\
    \n\x05\x04\t\x02\0\x05\x12\x04\x93\x01\x11\x17\n\r\n\x05\x04\t\x02\0\x01\
    \x12\x04\x93\x01\x18\x1e\n\r\n\x05\x04\t\x02\0\x03\x12\x04\x93\x01!\"\n\
    \x0c\n\x04\x04\t\x02\x01\x12\x04\x94\x01\x08,\n\r\n\x05\x04\t\x02\x01\
    \x04\x12\x04\x94\x01\x08\x10\n\r\n\x05\x04\t\x02\x01\x05\x12\x04\x94\x01\
    \x11\x17\n\r\n\x05\x04\t\x02\x01\x01\x12\x04\x94\x01\x18'\n\r\n\x05\x04\
    \t\x02\x01\x03\x12\x04\x94\x01*+\n\x0c\n\x04\x04\t\x02\x02\x12\x04\x95\
    \x01\x08%\n\r\n\x05\x04\t\x02\x02\x04\x12\x04\x95\x01\x08\x10\n\r\n\x05\
    \x04\t\x02\x02\x05\x12\x04\x95\x01\x11\x18\n\r\n\x05\x04\t\x02\x02\x01\
    \x12\x04\x95\x01\x19\x20\n\r\n\x05\x04\t\x02\x02\x03\x12\x04\x95\x01#$\n\
    \x0c\n\x04\x04\t\x02\x03\x12\x04\x96\x01\x08*\n\r\n\x05\x04\t\x02\x03\
    \x04\x12\x04\x96\x01\x08\x10\n\r\n\x05\x04\t\x02\x03\x05\x12\x04\x96\x01\
    \x11\x17\n\r\n\x05\x04\t\x02\x03\x01\x12\x04\x96\x01\x18%\n\r\n\x05\x04\
    \t\x02\x03\x03\x12\x04\x96\x01()\n\x0c\n\x04\x04\t\x02\x04\x12\x04\x97\
    \x01\x08+\n\r\n\x05\x04\t\x02\x04\x04\x12\x04\x97\x01\x08\x10\n\r\n\x05\
    \x04\t\x02\x04\x05\x12\x04\x97\x01\x11\x17\n\r\n\x05\x04\t\x02\x04\x01\
    \x12\x04\x97\x01\x18&\n\r\n\x05\x04\t\x02\x04\x03\x12\x04\x97\x01)*\n\
    \x0c\n\x04\x04\t\x02\x05\x12\x04\x98\x01\x080\n\r\n\x05\x04\t\x02\x05\
    \x04\x12\x04\x98\x01\x08\x10\n\r\n\x05\x04\t\x02\x05\x05\x12\x04\x98\x01\
    \x11\x17\n\r\n\x05\x04\t\x02\x05\x01\x12\x04\x98\x01\x18+\n\r\n\x05\x04\
    \t\x02\x05\x03\x12\x04\x98\x01./\n\x0c\n\x04\x04\t\x02\x06\x12\x04\x99\
    \x01\x08%\n\r\n\x05\x04\t\x02\x06\x04\x12\x04\x99\x01\x08\x10\n\r\n\x05\
    \x04\t\x02\x06\x05\x12\x04\x99\x01\x11\x17\n\r\n\x05\x04\t\x02\x06\x01\
    \x12\x04\x99\x01\x18\x20\n\r\n\x05\x04\t\x02\x06\x03\x12\x04\x99\x01#$\n\
    \x0c\n\x04\x04\t\x02\x07\x12\x04\x9a\x01\x08&\n\r\n\x05\x04\t\x02\x07\
    \x04\x12\x04\x9a\x01\x08\x10\n\r\n\x05\x04\t\x02\x07\x05\x12\x04\x9a\x01\
    \x11\x17\n\r\n\x05\x04\t\x02\x07\x01\x12\x04\x9a\x01\x18!\n\r\n\x05\x04\
    \t\x02\x07\x03\x12\x04\x9a\x01$%\n\x0c\n\x04\x04\t\x02\x08\x12\x04\x9b\
    \x01\x08.\n\r\n\x05\x04\t\x02\x08\x04\x12\x04\x9b\x01\x08\x10\n\r\n\x05\
    \x04\t\x02\x08\x05\x12\x04\x9b\x01\x11\x17\n\r\n\x05\x04\t\x02\x08\x01\
    \x12\x04\x9b\x01\x18)\n\r\n\x05\x04\t\x02\x08\x03\x12\x04\x9b\x01,-\n\
    \x0c\n\x04\x04\t\x02\t\x12\x04\x9c\x01\x08&\n\r\n\x05\x04\t\x02\t\x04\
    \x12\x04\x9c\x01\x08\x10\n\r\n\x05\x04\t\x02\t\x05\x12\x04\x9c\x01\x11\
    \x17\n\r\n\x05\x04\t\x02\t\x01\x12\x04\x9c\x01\x18\x20\n\r\n\x05\x04\t\
    \x02\t\x03\x12\x04\x9c\x01#%\n\x0c\n\x04\x04\t\x02\n\x12\x04\x9d\x01\x08\
    )\n\r\n\x05\x04\t\x02\n\x04\x12\x04\x9d\x01\x08\x10\n\r\n\x05\x04\t\x02\
    \n\x05\x12\x04\x9d\x01\x11\x17\n\r\n\x05\x04\t\x02\n\x01\x12\x04\x9d\x01\
    \x18#\n\r\n\x05\x04\t\x02\n\x03\x12\x04\x9d\x01&(\n\x0c\n\x04\x04\t\x02\
    \x0b\x12\x04\x9e\x01\x08,\n\r\n\x05\x04\t\x02\x0b\x04\x12\x04\x9e\x01\
    \x08\x10\n\r\n\x05\x04\t\x02\x0b\x05\x12\x04\x9e\x01\x11\x17\n\r\n\x05\
    \x04\t\x02\x0b\x01\x12\x04\x9e\x01\x18&\n\r\n\x05\x04\t\x02\x0b\x03\x12\
    \x04\x9e\x01)+\n\x0c\n\x04\x04\t\x02\x0c\x12\x04\x9f\x01\x08!\n\r\n\x05\
    \x04\t\x02\x0c\x04\x12\x04\x9f\x01\x08\x10\n\r\n\x05\x04\t\x02\x0c\x05\
    \x12\x04\x9f\x01\x11\x17\n\r\n\x05\x04\t\x02\x0c\x01\x12\x04\x9f\x01\x18\
    \x1b\n\r\n\x05\x04\t\x02\x0c\x03\x12\x04\x9f\x01\x1e\x20\n\x0c\n\x04\x04\
    \t\x02\r\x12\x04\xa0\x01\x08,\n\r\n\x05\x04\t\x02\r\x04\x12\x04\xa0\x01\
    \x08\x10\n\r\n\x05\x04\t\x02\r\x05\x12\x04\xa0\x01\x11\x18\n\r\n\x05\x04\
    \t\x02\r\x01\x12\x04\xa0\x01\x19&\n\r\n\x05\x04\t\x02\r\x03\x12\x04\xa0\
    \x01)+\n\x0c\n\x04\x04\t\x02\x0e\x12\x04\xa1\x01\x08/\n\r\n\x05\x04\t\
    \x02\x0e\x04\x12\x04\xa1\x01\x08\x10\n\r\n\x05\x04\t\x02\x0e\x05\x12\x04\
    \xa1\x01\x11\x18\n\r\n\x05\x04\t\x02\x0e\x01\x12\x04\xa1\x01\x19)\n\r\n\
    \x05\x04\t\x02\x0e\x03\x12\x04\xa1\x01,.\n\x0c\n\x04\x04\t\x02\x0f\x12\
    \x04\xa2\x01\x08#\n\r\n\x05\x04\t\x02\x0f\x04\x12\x04\xa2\x01\x08\x10\n\
    \r\n\x05\x04\t\x02\x0f\x05\x12\x04\xa2\x01\x11\x17\n\r\n\x05\x04\t\x02\
    \x0f\x01\x12\x04\xa2\x01\x18\x1d\n\r\n\x05\x04\t\x02\x0f\x03\x12\x04\xa2\
    \x01\x20\"\n\x0c\n\x04\x04\t\x02\x10\x12\x04\xa3\x01\x08.\n\r\n\x05\x04\
    \t\x02\x10\x04\x12\x04\xa3\x01\x08\x10\n\r\n\x05\x04\t\x02\x10\x05\x12\
    \x04\xa3\x01\x11\x17\n\r\n\x05\x04\t\x02\x10\x01\x12\x04\xa3\x01\x18(\n\
    \r\n\x05\x04\t\x02\x10\x03\x12\x04\xa3\x01+-\n\x0c\n\x04\x04\t\x02\x11\
    \x12\x04\xa4\x01\x08/\n\r\n\x05\x04\t\x02\x11\x04\x12\x04\xa4\x01\x08\
    \x10\n\r\n\x05\x04\t\x02\x11\x05\x12\x04\xa4\x01\x11\x17\n\r\n\x05\x04\t\
    \x02\x11\x01\x12\x04\xa4\x01\x18)\n\r\n\x05\x04\t\x02\x11\x03\x12\x04\
    \xa4\x01,.\n\x0c\n\x04\x04\t\x02\x12\x12\x04\xa5\x01\x08*\n\r\n\x05\x04\
    \t\x02\x12\x04\x12\x04\xa5\x01\x08\x10\n\r\n\x05\x04\t\x02\x12\x05\x12\
    \x04\xa5\x01\x11\x17\n\r\n\x05\x04\t\x02\x12\x01\x12\x04\xa5\x01\x18$\n\
    \r\n\x05\x04\t\x02\x12\x03\x12\x04\xa5\x01')\n\x0c\n\x04\x04\t\x02\x13\
    \x12\x04\xa6\x01\x08*\n\r\n\x05\x04\t\x02\x13\x04\x12\x04\xa6\x01\x08\
    \x10\n\r\n\x05\x04\t\x02\x13\x05\x12\x04\xa6\x01\x11\x17\n\r\n\x05\x04\t\
    \x02\x13\x01\x12\x04\xa6\x01\x18$\n\r\n\x05\x04\t\x02\x13\x03\x12\x04\
    \xa6\x01')\n\x0c\n\x04\x04\t\x02\x14\x12\x04\xa7\x01\x08(\n\r\n\x05\x04\
    \t\x02\x14\x04\x12\x04\xa7\x01\x08\x10\n\r\n\x05\x04\t\x02\x14\x05\x12\
    \x04\xa7\x01\x11\x17\n\r\n\x05\x04\t\x02\x14\x01\x12\x04\xa7\x01\x18\"\n\
    \r\n\x05\x04\t\x02\x14\x03\x12\x04\xa7\x01%'\n\x0c\n\x04\x04\t\x02\x15\
    \x12\x04\xa8\x01\x08#\n\r\n\x05\x04\t\x02\x15\x04\x12\x04\xa8\x01\x08\
    \x10\n\r\n\x05\x04\t\x02\x15\x05\x12\x04\xa8\x01\x11\x17\n\r\n\x05\x04\t\
    \x02\x15\x01\x12\x04\xa8\x01\x18\x1d\n\r\n\x05\x04\t\x02\x15\x03\x12\x04\
    \xa8\x01\x20\"\n\x0c\n\x04\x04\t\x02\x16\x12\x04\xa9\x01\x08)\n\r\n\x05\
    \x04\t\x02\x16\x04\x12\x04\xa9\x01\x08\x10\n\r\n\x05\x04\t\x02\x16\x05\
    \x12\x04\xa9\x01\x11\x15\n\r\n\x05\x04\t\x02\x16\x01\x12\x04\xa9\x01\x16\
    #\n\r\n\x05\x04\t\x02\x16\x03\x12\x04\xa9\x01&(\n\x0c\n\x04\x04\t\x02\
    \x17\x12\x04\xaa\x01\x08-\n\r\n\x05\x04\t\x02\x17\x04\x12\x04\xaa\x01\
    \x08\x10\n\r\n\x05\x04\t\x02\x17\x05\x12\x04\xaa\x01\x11\x15\n\r\n\x05\
    \x04\t\x02\x17\x01\x12\x04\xaa\x01\x16'\n\r\n\x05\x04\t\x02\x17\x03\x12\
    \x04\xaa\x01*,\n\x0c\n\x04\x04\t\x02\x18\x12\x04\xab\x01\x08.\n\r\n\x05\
    \x04\t\x02\x18\x04\x12\x04\xab\x01\x08\x10\n\r\n\x05\x04\t\x02\x18\x05\
    \x12\x04\xab\x01\x11\x15\n\r\n\x05\x04\t\x02\x18\x01\x12\x04\xab\x01\x16\
    (\n\r\n\x05\x04\t\x02\x18\x03\x12\x04\xab\x01+-\n\x0c\n\x04\x04\t\x02\
    \x19\x12\x04\xac\x01\x083\n\r\n\x05\x04\t\x02\x19\x04\x12\x04\xac\x01\
    \x08\x10\n\r\n\x05\x04\t\x02\x19\x05\x12\x04\xac\x01\x11\x16\n\r\n\x05\
    \x04\t\x02\x19\x01\x12\x04\xac\x01\x17-\n\r\n\x05\x04\t\x02\x19\x03\x12\
    \x04\xac\x0102\n\x0c\n\x04\x04\t\x02\x1a\x12\x04\xad\x01\x080\n\r\n\x05\
    \x04\t\x02\x1a\x04\x12\x04\xad\x01\x08\x10\n\r\n\x05\x04\t\x02\x1a\x05\
    \x12\x04\xad\x01\x11\x16\n\r\n\x05\x04\t\x02\x1a\x01\x12\x04\xad\x01\x17\
    *\n\r\n\x05\x04\t\x02\x1a\x03\x12\x04\xad\x01-/\n\x0c\n\x04\x04\t\x02\
    \x1b\x12\x04\xae\x01\x08\"\n\r\n\x05\x04\t\x02\x1b\x04\x12\x04\xae\x01\
    \x08\x10\n\r\n\x05\x04\t\x02\x1b\x05\x12\x04\xae\x01\x11\x15\n\r\n\x05\
    \x04\t\x02\x1b\x01\x12\x04\xae\x01\x16\x1c\n\r\n\x05\x04\t\x02\x1b\x03\
    \x12\x04\xae\x01\x1f!\n\x0c\n\x04\x04\t\x02\x1c\x12\x04\xaf\x01\x08(\n\r\
    \n\x05\x04\t\x02\x1c\x04\x12\x04\xaf\x01\x08\x10\n\r\n\x05\x04\t\x02\x1c\
    \x05\x12\x04\xaf\x01\x11\x17\n\r\n\x05\x04\t\x02\x1c\x01\x12\x04\xaf\x01\
    \x18\"\n\r\n\x05\x04\t\x02\x1c\x03\x12\x04\xaf\x01%'\n\x0c\n\x04\x04\t\
    \x02\x1d\x12\x04\xb0\x01\x08%\n\r\n\x05\x04\t\x02\x1d\x04\x12\x04\xb0\
    \x01\x08\x10\n\r\n\x05\x04\t\x02\x1d\x05\x12\x04\xb0\x01\x11\x18\n\r\n\
    \x05\x04\t\x02\x1d\x01\x12\x04\xb0\x01\x19\x1f\n\r\n\x05\x04\t\x02\x1d\
    \x03\x12\x04\xb0\x01\"$\n\x0c\n\x04\x04\t\x02\x1e\x12\x04\xb1\x01\x08*\n\
    \r\n\x05\x04\t\x02\x1e\x04\x12\x04\xb1\x01\x08\x10\n\r\n\x05\x04\t\x02\
    \x1e\x05\x12\x04\xb1\x01\x11\x15\n\r\n\x05\x04\t\x02\x1e\x01\x12\x04\xb1\
    \x01\x16$\n\r\n\x05\x04\t\x02\x1e\x03\x12\x04\xb1\x01')\n\x0c\n\x04\x04\
    \t\x02\x1f\x12\x04\xb2\x01\x08(\n\r\n\x05\x04\t\x02\x1f\x04\x12\x04\xb2\
    \x01\x08\x10\n\r\n\x05\x04\t\x02\x1f\x05\x12\x04\xb2\x01\x11\x15\n\r\n\
    \x05\x04\t\x02\x1f\x01\x12\x04\xb2\x01\x16\"\n\r\n\x05\x04\t\x02\x1f\x03\
    \x12\x04\xb2\x01%'\n\x0c\n\x04\x04\t\x02\x20\x12\x04\xb3\x01\x08&\n\r\n\
    \x05\x04\t\x02\x20\x04\x12\x04\xb3\x01\x08\x10\n\r\n\x05\x04\t\x02\x20\
    \x05\x12\x04\xb3\x01\x11\x17\n\r\n\x05\x04\t\x02\x20\x01\x12\x04\xb3\x01\
    \x18\x20\n\r\n\x05\x04\t\x02\x20\x03\x12\x04\xb3\x01#%\n\x0c\n\x04\x04\t\
    \x02!\x12\x04\xb4\x01\x08'\n\r\n\x05\x04\t\x02!\x04\x12\x04\xb4\x01\x08\
    \x10\n\r\n\x05\x04\t\x02!\x05\x12\x04\xb4\x01\x11\x17\n\r\n\x05\x04\t\
    \x02!\x01\x12\x04\xb4\x01\x18!\n\r\n\x05\x04\t\x02!\x03\x12\x04\xb4\x01$\
    &\n\x0c\n\x04\x04\t\x02\"\x12\x04\xb5\x01\x08)\n\r\n\x05\x04\t\x02\"\x04\
    \x12\x04\xb5\x01\x08\x10\n\r\n\x05\x04\t\x02\"\x05\x12\x04\xb5\x01\x11\
    \x15\n\r\n\x05\x04\t\x02\"\x01\x12\x04\xb5\x01\x16#\n\r\n\x05\x04\t\x02\
    \"\x03\x12\x04\xb5\x01&(\n\x0c\n\x04\x04\t\x02#\x12\x04\xb6\x01\x08+\n\r\
    \n\x05\x04\t\x02#\x04\x12\x04\xb6\x01\x08\x10\n\r\n\x05\x04\t\x02#\x05\
    \x12\x04\xb6\x01\x11\x17\n\r\n\x05\x04\t\x02#\x01\x12\x04\xb6\x01\x18%\n\
    \r\n\x05\x04\t\x02#\x03\x12\x04\xb6\x01(*\n\x0c\n\x04\x04\t\x02$\x12\x04\
    \xb7\x01\x08'\n\r\n\x05\x04\t\x02$\x04\x12\x04\xb7\x01\x08\x10\n\r\n\x05\
    \x04\t\x02$\x05\x12\x04\xb7\x01\x11\x17\n\r\n\x05\x04\t\x02$\x01\x12\x04\
    \xb7\x01\x18!\n\r\n\x05\x04\t\x02$\x03\x12\x04\xb7\x01$&\n\x0c\n\x04\x04\
    \t\x02%\x12\x04\xb8\x01\x08'\n\r\n\x05\x04\t\x02%\x04\x12\x04\xb8\x01\
    \x08\x10\n\r\n\x05\x04\t\x02%\x05\x12\x04\xb8\x01\x11\x17\n\r\n\x05\x04\
    \t\x02%\x01\x12\x04\xb8\x01\x18!\n\r\n\x05\x04\t\x02%\x03\x12\x04\xb8\
    \x01$&\n\x0c\n\x04\x04\t\x02&\x12\x04\xb9\x01\x084\n\r\n\x05\x04\t\x02&\
    \x04\x12\x04\xb9\x01\x08\x10\n\r\n\x05\x04\t\x02&\x05\x12\x04\xb9\x01\
    \x11\x17\n\r\n\x05\x04\t\x02&\x01\x12\x04\xb9\x01\x18.\n\r\n\x05\x04\t\
    \x02&\x03\x12\x04\xb9\x0113\n\x0c\n\x04\x04\t\x02'\x12\x04\xba\x01\x080\
    \n\r\n\x05\x04\t\x02'\x04\x12\x04\xba\x01\x08\x10\n\r\n\x05\x04\t\x02'\
    \x05\x12\x04\xba\x01\x11\x17\n\r\n\x05\x04\t\x02'\x01\x12\x04\xba\x01\
    \x18*\n\r\n\x05\x04\t\x02'\x03\x12\x04\xba\x01-/\n\x0c\n\x04\x04\t\x02(\
    \x12\x04\xbb\x01\x080\n\r\n\x05\x04\t\x02(\x04\x12\x04\xbb\x01\x08\x10\n\
    \r\n\x05\x04\t\x02(\x05\x12\x04\xbb\x01\x11\x17\n\r\n\x05\x04\t\x02(\x01\
    \x12\x04\xbb\x01\x18*\n\r\n\x05\x04\t\x02(\x03\x12\x04\xbb\x01-/\n\x0c\n\
    \x04\x04\t\x02)\x12\x04\xbc\x01\x08/\n\r\n\x05\x04\t\x02)\x04\x12\x04\
    \xbc\x01\x08\x10\n\r\n\x05\x04\t\x02)\x05\x12\x04\xbc\x01\x11\x17\n\r\n\
    \x05\x04\t\x02)\x01\x12\x04\xbc\x01\x18)\n\r\n\x05\x04\t\x02)\x03\x12\
    \x04\xbc\x01,.\n\x0c\n\x04\x04\t\x02*\x12\x04\xbd\x01\x088\n\r\n\x05\x04\
    \t\x02*\x04\x12\x04\xbd\x01\x08\x10\n\r\n\x05\x04\t\x02*\x05\x12\x04\xbd\
    \x01\x11\x17\n\r\n\x05\x04\t\x02*\x01\x12\x04\xbd\x01\x182\n\r\n\x05\x04\
    \t\x02*\x03\x12\x04\xbd\x0157\n\x0c\n\x04\x04\t\x02+\x12\x04\xbe\x01\x08\
    #\n\r\n\x05\x04\t\x02+\x04\x12\x04\xbe\x01\x08\x10\n\r\n\x05\x04\t\x02+\
    \x05\x12\x04\xbe\x01\x11\x17\n\r\n\x05\x04\t\x02+\x01\x12\x04\xbe\x01\
    \x18\x1d\n\r\n\x05\x04\t\x02+\x03\x12\x04\xbe\x01\x20\"\n\x0c\n\x04\x04\
    \t\x02,\x12\x04\xbf\x01\x08)\n\r\n\x05\x04\t\x02,\x04\x12\x04\xbf\x01\
    \x08\x10\n\r\n\x05\x04\t\x02,\x05\x12\x04\xbf\x01\x11\x17\n\r\n\x05\x04\
    \t\x02,\x01\x12\x04\xbf\x01\x18#\n\r\n\x05\x04\t\x02,\x03\x12\x04\xbf\
    \x01&(\n\x0c\n\x04\x04\t\x02-\x12\x04\xc0\x01\x08*\n\r\n\x05\x04\t\x02-\
    \x04\x12\x04\xc0\x01\x08\x10\n\r\n\x05\x04\t\x02-\x05\x12\x04\xc0\x01\
    \x11\x17\n\r\n\x05\x04\t\x02-\x01\x12\x04\xc0\x01\x18$\n\r\n\x05\x04\t\
    \x02-\x03\x12\x04\xc0\x01')\n\x0c\n\x04\x04\t\x02.\x12\x04\xc1\x01\x08'\
    \n\r\n\x05\x04\t\x02.\x04\x12\x04\xc1\x01\x08\x10\n\r\n\x05\x04\t\x02.\
    \x05\x12\x04\xc1\x01\x11\x17\n\r\n\x05\x04\t\x02.\x01\x12\x04\xc1\x01\
    \x18!\n\r\n\x05\x04\t\x02.\x03\x12\x04\xc1\x01$&\n\x0c\n\x04\x04\t\x02/\
    \x12\x04\xc2\x01\x08'\n\r\n\x05\x04\t\x02/\x04\x12\x04\xc2\x01\x08\x10\n\
    \r\n\x05\x04\t\x02/\x05\x12\x04\xc2\x01\x11\x15\n\r\n\x05\x04\t\x02/\x01\
    \x12\x04\xc2\x01\x16!\n\r\n\x05\x04\t\x02/\x03\x12\x04\xc2\x01$&\n\x0c\n\
    \x04\x04\t\x020\x12\x04\xc3\x01\x08(\n\r\n\x05\x04\t\x020\x04\x12\x04\
    \xc3\x01\x08\x10\n\r\n\x05\x04\t\x020\x05\x12\x04\xc3\x01\x11\x17\n\r\n\
    \x05\x04\t\x020\x01\x12\x04\xc3\x01\x18\"\n\r\n\x05\x04\t\x020\x03\x12\
    \x04\xc3\x01%'\n\x0c\n\x04\x04\t\x021\x12\x04\xc4\x01\x08*\n\r\n\x05\x04\
    \t\x021\x04\x12\x04\xc4\x01\x08\x10\n\r\n\x05\x04\t\x021\x05\x12\x04\xc4\
    \x01\x11\x17\n\r\n\x05\x04\t\x021\x01\x12\x04\xc4\x01\x18$\n\r\n\x05\x04\
    \t\x021\x03\x12\x04\xc4\x01')\n\x0c\n\x04\x04\t\x022\x12\x04\xc5\x01\x08\
    *\n\r\n\x05\x04\t\x022\x04\x12\x04\xc5\x01\x08\x10\n\r\n\x05\x04\t\x022\
    \x05\x12\x04\xc5\x01\x11\x17\n\r\n\x05\x04\t\x022\x01\x12\x04\xc5\x01\
    \x18$\n\r\n\x05\x04\t\x022\x03\x12\x04\xc5\x01')\n\x0c\n\x04\x04\t\x023\
    \x12\x04\xc6\x01\x08)\n\r\n\x05\x04\t\x023\x04\x12\x04\xc6\x01\x08\x10\n\
    \r\n\x05\x04\t\x023\x05\x12\x04\xc6\x01\x11\x17\n\r\n\x05\x04\t\x023\x01\
    \x12\x04\xc6\x01\x18#\n\r\n\x05\x04\t\x023\x03\x12\x04\xc6\x01&(\n\x0c\n\
    \x04\x04\t\x024\x12\x04\xc7\x01\x08=\n\r\n\x05\x04\t\x024\x04\x12\x04\
    \xc7\x01\x08\x10\n\r\n\x05\x04\t\x024\x06\x12\x04\xc7\x01\x11.\n\r\n\x05\
    \x04\t\x024\x01\x12\x04\xc7\x01/7\n\r\n\x05\x04\t\x024\x03\x12\x04\xc7\
    \x01:<\n\x0c\n\x04\x04\t\x025\x12\x04\xc8\x01\x085\n\r\n\x05\x04\t\x025\
    \x04\x12\x04\xc8\x01\x08\x10\n\r\n\x05\x04\t\x025\x06\x12\x04\xc8\x01\
    \x11*\n\r\n\x05\x04\t\x025\x01\x12\x04\xc8\x01+/\n\r\n\x05\x04\t\x025\
    \x03\x12\x04\xc8\x0124\n\x0c\n\x04\x04\t\x026\x12\x04\xc9\x01\x08;\n\r\n\
    \x05\x04\t\x026\x04\x12\x04\xc9\x01\x08\x10\n\r\n\x05\x04\t\x026\x06\x12\
    \x04\xc9\x01\x11,\n\r\n\x05\x04\t\x026\x01\x12\x04\xc9\x01-5\n\r\n\x05\
    \x04\t\x026\x03\x12\x04\xc9\x018:\n\x0c\n\x04\x04\t\x027\x12\x04\xca\x01\
    \x089\n\r\n\x05\x04\t\x027\x04\x12\x04\xca\x01\x08\x10\n\r\n\x05\x04\t\
    \x027\x06\x12\x04\xca\x01\x11,\n\r\n\x05\x04\t\x027\x01\x12\x04\xca\x01-\
    3\n\r\n\x05\x04\t\x027\x03\x12\x04\xca\x0168\n\x0c\n\x04\x04\t\x028\x12\
    \x04\xcb\x01\x08?\n\r\n\x05\x04\t\x028\x04\x12\x04\xcb\x01\x08\x10\n\r\n\
    \x05\x04\t\x028\x06\x12\x04\xcb\x01\x11/\n\r\n\x05\x04\t\x028\x01\x12\
    \x04\xcb\x0109\n\r\n\x05\x04\t\x028\x03\x12\x04\xcb\x01<>\n\x0c\n\x04\
    \x04\t\x029\x12\x04\xcc\x01\x08I\n\r\n\x05\x04\t\x029\x04\x12\x04\xcc\
    \x01\x08\x10\n\r\n\x05\x04\t\x029\x06\x12\x04\xcc\x01\x114\n\r\n\x05\x04\
    \t\x029\x01\x12\x04\xcc\x015C\n\r\n\x05\x04\t\x029\x03\x12\x04\xcc\x01FH\
    \n\r\n\x04\x04\t\x02:\x12\x05\xcd\x01\x08\x97\x01\n\r\n\x05\x04\t\x02:\
    \x04\x12\x04\xcd\x01\x08\x10\n\r\n\x05\x04\t\x02:\x05\x12\x04\xcd\x01\
    \x11\x17\n\r\n\x05\x04\t\x02:\x01\x12\x04\xcd\x01\x18'\n\r\n\x05\x04\t\
    \x02:\x03\x12\x04\xcd\x01*,\n\x0e\n\x05\x04\t\x02:\x08\x12\x05\xcd\x01-\
    \x96\x01\n\x11\n\x08\x04\t\x02:\x08\xd0\x86\x03\x12\x05\xcd\x01.\x95\x01\
    \n\x0c\n\x04\x04\t\x02;\x12\x04\xce\x01\x08~\n\r\n\x05\x04\t\x02;\x04\
    \x12\x04\xce\x01\x08\x10\n\r\n\x05\x04\t\x02;\x06\x12\x04\xce\x01\x112\n\
    \r\n\x05\x04\t\x02;\x01\x12\x04\xce\x013@\n\r\n\x05\x04\t\x02;\x03\x12\
    \x04\xce\x01CE\n\r\n\x05\x04\t\x02;\x08\x12\x04\xce\x01F}\n\x10\n\x08\
    \x04\t\x02;\x08\xd0\x86\x03\x12\x04\xce\x01G|\n\x0c\n\x04\x04\t\x02<\x12\
    \x04\xcf\x01\x08\\\n\r\n\x05\x04\t\x02<\x04\x12\x04\xcf\x01\x08\x10\n\r\
    \n\x05\x04\t\x02<\x05\x12\x04\xcf\x01\x11\x17\n\r\n\x05\x04\t\x02<\x01\
    \x12\x04\xcf\x01\x18\x20\n\r\n\x05\x04\t\x02<\x03\x12\x04\xcf\x01#%\n\r\
    \n\x05\x04\t\x02<\x08\x12\x04\xcf\x01&[\n\x10\n\x08\x04\t\x02<\x08\xd0\
    \x86\x03\x12\x04\xcf\x01'Z\n\x0c\n\x04\x04\t\x02=\x12\x04\xd0\x01\x08q\n\
    \r\n\x05\x04\t\x02=\x04\x12\x04\xd0\x01\x08\x10\n\r\n\x05\x04\t\x02=\x05\
    \x12\x04\xd0\x01\x11\x16\n\r\n\x05\x04\t\x02=\x01\x12\x04\xd0\x01\x17\
    \x1f\n\r\n\x05\x04\t\x02=\x03\x12\x04\xd0\x01\"$\n\r\n\x05\x04\t\x02=\
    \x08\x12\x04\xd0\x01%p\n\r\n\x05\x04\t\x02=\x07\x12\x04\xd0\x0101\n\x10\
    \n\x08\x04\t\x02=\x08\xd0\x86\x03\x12\x04\xd0\x013o\n\x0c\n\x04\x04\t\
    \x02>\x12\x04\xd1\x01\x083\n\r\n\x05\x04\t\x02>\x04\x12\x04\xd1\x01\x08\
    \x10\n\r\n\x05\x04\t\x02>\x05\x12\x04\xd1\x01\x11\x15\n\r\n\x05\x04\t\
    \x02>\x01\x12\x04\xd1\x01\x16-\n\r\n\x05\x04\t\x02>\x03\x12\x04\xd1\x010\
    2\n\x0c\n\x04\x04\t\x02?\x12\x04\xd2\x01\x088\n\r\n\x05\x04\t\x02?\x04\
    \x12\x04\xd2\x01\x08\x10\n\r\n\x05\x04\t\x02?\x05\x12\x04\xd2\x01\x11\
    \x15\n\r\n\x05\x04\t\x02?\x01\x12\x04\xd2\x01\x162\n\r\n\x05\x04\t\x02?\
    \x03\x12\x04\xd2\x0157\n\x0c\n\x04\x04\t\x02@\x12\x04\xd3\x01\x08v\n\r\n\
    \x05\x04\t\x02@\x04\x12\x04\xd3\x01\x08\x10\n\r\n\x05\x04\t\x02@\x05\x12\
    \x04\xd3\x01\x11\x17\n\r\n\x05\x04\t\x02@\x01\x12\x04\xd3\x01\x18.\n\r\n\
    \x05\x04\t\x02@\x03\x12\x04\xd3\x0113\n\r\n\x05\x04\t\x02@\x08\x12\x04\
    \xd3\x014u\n\x10\n\x08\x04\t\x02@\x08\xd0\x86\x03\x12\x04\xd3\x015t\n\r\
    \n\x04\x04\t\x02A\x12\x05\xd4\x01\x08\x81\x02\n\r\n\x05\x04\t\x02A\x04\
    \x12\x04\xd4\x01\x08\x10\n\r\n\x05\x04\t\x02A\x06\x12\x04\xd4\x01\x11(\n\
    \r\n\x05\x04\t\x02A\x01\x12\x04\xd4\x01)1\n\r\n\x05\x04\t\x02A\x03\x12\
    \x04\xd4\x0146\n\x0e\n\x05\x04\t\x02A\x08\x12\x05\xd4\x017\x80\x02\n\r\n\
    \x05\x04\t\x02A\x07\x12\x04\xd4\x01Bb\n\x11\n\x08\x04\t\x02A\x08\xd0\x86\
    \x03\x12\x05\xd4\x01d\xff\x01\n\x0c\n\x04\x04\t\x02B\x12\x04\xd5\x01\x08\
    j\n\r\n\x05\x04\t\x02B\x04\x12\x04\xd5\x01\x08\x10\n\r\n\x05\x04\t\x02B\
    \x06\x12\x04\xd5\x01\x11(\n\r\n\x05\x04\t\x02B\x01\x12\x04\xd5\x01)<\n\r\
    \n\x05\x04\t\x02B\x03\x12\x04\xd5\x01?A\n\r\n\x05\x04\t\x02B\x08\x12\x04\
    \xd5\x01Bi\n\x10\n\x08\x04\t\x02B\x08\xd0\x86\x03\x12\x04\xd5\x01Ch\n\
    \x0c\n\x04\x04\t\x02C\x12\x04\xd6\x01\x08j\n\r\n\x05\x04\t\x02C\x04\x12\
    \x04\xd6\x01\x08\x10\n\r\n\x05\x04\t\x02C\x06\x12\x04\xd6\x01\x11/\n\r\n\
    \x05\x04\t\x02C\x01\x12\x04\xd6\x0109\n\r\n\x05\x04\t\x02C\x03\x12\x04\
    \xd6\x01<>\n\r\n\x05\x04\t\x02C\x08\x12\x04\xd6\x01?i\n\x10\n\x08\x04\t\
    \x02C\x08\xd0\x86\x03\x12\x04\xd6\x01@h\n\x0c\n\x04\x04\t\x02D\x12\x04\
    \xd7\x01\x08t\n\r\n\x05\x04\t\x02D\x04\x12\x04\xd7\x01\x08\x10\n\r\n\x05\
    \x04\t\x02D\x06\x12\x04\xd7\x01\x11(\n\r\n\x05\x04\t\x02D\x01\x12\x04\
    \xd7\x01)>\n\r\n\x05\x04\t\x02D\x03\x12\x04\xd7\x01AC\n\r\n\x05\x04\t\
    \x02D\x08\x12\x04\xd7\x01Ds\n\r\n\x05\x04\t\x02D\x07\x12\x04\xd7\x01Or\n\
    \x0c\n\x02\x04\n\x12\x06\xda\x01\0\xdc\x01\x01\n\x0b\n\x03\x04\n\x01\x12\
    \x04\xda\x01\x08*\n\x0c\n\x04\x04\n\x02\0\x12\x04\xdb\x01\x08@\n\r\n\x05\
    \x04\n\x02\0\x04\x12\x04\xdb\x01\x08\x10\n\r\n\x05\x04\n\x02\0\x06\x12\
    \x04\xdb\x01\x11&\n\r\n\x05\x04\n\x02\0\x01\x12\x04\xdb\x01';\n\r\n\x05\
    \x04\n\x02\0\x03\x12\x04\xdb\x01>?\n\x0c\n\x02\x04\x0b\x12\x06\xde\x01\0\
    \xe8\x01\x01\n\x0b\n\x03\x04\x0b\x01\x12\x04\xde\x01\x08*\n\x0e\n\x04\
    \x04\x0b\x03\0\x12\x06\xdf\x01\x08\xe3\x01\t\n\r\n\x05\x04\x0b\x03\0\x01\
    \x12\x04\xdf\x01\x10\x1c\n\x0e\n\x06\x04\x0b\x03\0\x02\0\x12\x04\xe0\x01\
    \x107\n\x0f\n\x07\x04\x0b\x03\0\x02\0\x04\x12\x04\xe0\x01\x10\x18\n\x0f\
    \n\x07\x04\x0b\x03\0\x02\0\x05\x12\x04\xe0\x01\x19\x20\n\x0f\n\x07\x04\
    \x0b\x03\0\x02\0\x01\x12\x04\xe0\x01!2\n\x0f\n\x07\x04\x0b\x03\0\x02\0\
    \x03\x12\x04\xe0\x0156\n\x0e\n\x06\x04\x0b\x03\0\x02\x01\x12\x04\xe1\x01\
    \x101\n\x0f\n\x07\x04\x0b\x03\0\x02\x01\x04\x12\x04\xe1\x01\x10\x18\n\
    \x0f\n\x07\x04\x0b\x03\0\x02\x01\x05\x12\x04\xe1\x01\x19\x1f\n\x0f\n\x07\
    \x04\x0b\x03\0\x02\x01\x01\x12\x04\xe1\x01\x20,\n\x0f\n\x07\x04\x0b\x03\
    \0\x02\x01\x03\x12\x04\xe1\x01/0\n\x0f\n\x06\x04\x0b\x03\0\x02\x02\x12\
    \x05\xe2\x01\x10\xb2\x01\n\x0f\n\x07\x04\x0b\x03\0\x02\x02\x04\x12\x04\
    \xe2\x01\x10\x18\n\x0f\n\x07\x04\x0b\x03\0\x02\x02\x06\x12\x04\xe2\x01\
    \x190\n\x0f\n\x07\x04\x0b\x03\0\x02\x02\x01\x12\x04\xe2\x011A\n\x0f\n\
    \x07\x04\x0b\x03\0\x02\x02\x03\x12\x04\xe2\x01DE\n\x10\n\x07\x04\x0b\x03\
    \0\x02\x02\x08\x12\x05\xe2\x01F\xb1\x01\n\x0f\n\x07\x04\x0b\x03\0\x02\
    \x02\x07\x12\x04\xe2\x01Qq\n\x13\n\n\x04\x0b\x03\0\x02\x02\x08\xd0\x86\
    \x03\x12\x05\xe2\x01s\xb0\x01\n\x0c\n\x04\x04\x0b\x02\0\x12\x04\xe5\x01\
    \x08#\n\r\n\x05\x04\x0b\x02\0\x04\x12\x04\xe5\x01\x08\x10\n\r\n\x05\x04\
    \x0b\x02\0\x05\x12\x04\xe5\x01\x11\x17\n\r\n\x05\x04\x0b\x02\0\x01\x12\
    \x04\xe5\x01\x18\x1e\n\r\n\x05\x04\x0b\x02\0\x03\x12\x04\xe5\x01!\"\n\
    \x0c\n\x04\x04\x0b\x02\x01\x12\x04\xe6\x01\x08.\n\r\n\x05\x04\x0b\x02\
    \x01\x04\x12\x04\xe6\x01\x08\x10\n\r\n\x05\x04\x0b\x02\x01\x05\x12\x04\
    \xe6\x01\x11\x17\n\r\n\x05\x04\x0b\x02\x01\x01\x12\x04\xe6\x01\x18)\n\r\
    \n\x05\x04\x0b\x02\x01\x03\x12\x04\xe6\x01,-\n\x0c\n\x04\x04\x0b\x02\x02\
    \x12\x04\xe7\x01\x08U\n\r\n\x05\x04\x0b\x02\x02\x04\x12\x04\xe7\x01\x08\
    \x10\n\r\n\x05\x04\x0b\x02\x02\x06\x12\x04\xe7\x01\x11A\n\r\n\x05\x04\
    \x0b\x02\x02\x01\x12\x04\xe7\x01BP\n\r\n\x05\x04\x0b\x02\x02\x03\x12\x04\
    \xe7\x01ST\n\x0c\n\x02\x04\x0c\x12\x06\xea\x01\0\xf5\x01\x01\n\x0b\n\x03\
    \x04\x0c\x01\x12\x04\xea\x01\x08+\n\x0e\n\x04\x04\x0c\x03\0\x12\x06\xeb\
    \x01\x08\xf0\x01\t\n\r\n\x05\x04\x0c\x03\0\x01\x12\x04\xeb\x01\x10\x20\n\
    \x0e\n\x06\x04\x0c\x03\0\x02\0\x12\x04\xec\x01\x107\n\x0f\n\x07\x04\x0c\
    \x03\0\x02\0\x04\x12\x04\xec\x01\x10\x18\n\x0f\n\x07\x04\x0c\x03\0\x02\0\
    \x05\x12\x04\xec\x01\x19\x20\n\x0f\n\x07\x04\x0c\x03\0\x02\0\x01\x12\x04\
    \xec\x01!2\n\x0f\n\x07\x04\x0c\x03\0\x02\0\x03\x12\x04\xec\x0156\n\x0e\n\
    \x06\x04\x0c\x03\0\x02\x01\x12\x04\xed\x01\x101\n\x0f\n\x07\x04\x0c\x03\
    \0\x02\x01\x04\x12\x04\xed\x01\x10\x18\n\x0f\n\x07\x04\x0c\x03\0\x02\x01\
    \x05\x12\x04\xed\x01\x19\x1f\n\x0f\n\x07\x04\x0c\x03\0\x02\x01\x01\x12\
    \x04\xed\x01\x20,\n\x0f\n\x07\x04\x0c\x03\0\x02\x01\x03\x12\x04\xed\x01/\
    0\n\x0e\n\x06\x04\x0c\x03\0\x02\x02\x12\x04\xee\x01\x101\n\x0f\n\x07\x04\
    \x0c\x03\0\x02\x02\x04\x12\x04\xee\x01\x10\x18\n\x0f\n\x07\x04\x0c\x03\0\
    \x02\x02\x05\x12\x04\xee\x01\x19\x20\n\x0f\n\x07\x04\x0c\x03\0\x02\x02\
    \x01\x12\x04\xee\x01!,\n\x0f\n\x07\x04\x0c\x03\0\x02\x02\x03\x12\x04\xee\
    \x01/0\n\x0e\n\x06\x04\x0c\x03\0\x02\x03\x12\x04\xef\x01\x10*\n\x0f\n\
    \x07\x04\x0c\x03\0\x02\x03\x04\x12\x04\xef\x01\x10\x18\n\x0f\n\x07\x04\
    \x0c\x03\0\x02\x03\x05\x12\x04\xef\x01\x19\x1f\n\x0f\n\x07\x04\x0c\x03\0\
    \x02\x03\x01\x12\x04\xef\x01\x20%\n\x0f\n\x07\x04\x0c\x03\0\x02\x03\x03\
    \x12\x04\xef\x01()\n\x0c\n\x04\x04\x0c\x02\0\x12\x04\xf2\x01\x08(\n\r\n\
    \x05\x04\x0c\x02\0\x04\x12\x04\xf2\x01\x08\x10\n\r\n\x05\x04\x0c\x02\0\
    \x05\x12\x04\xf2\x01\x11\x17\n\r\n\x05\x04\x0c\x02\0\x01\x12\x04\xf2\x01\
    \x18#\n\r\n\x05\x04\x0c\x02\0\x03\x12\x04\xf2\x01&'\n\x0c\n\x04\x04\x0c\
    \x02\x01\x12\x04\xf3\x01\x08Z\n\r\n\x05\x04\x0c\x02\x01\x04\x12\x04\xf3\
    \x01\x08\x10\n\r\n\x05\x04\x0c\x02\x01\x06\x12\x04\xf3\x01\x11F\n\r\n\
    \x05\x04\x0c\x02\x01\x01\x12\x04\xf3\x01GU\n\r\n\x05\x04\x0c\x02\x01\x03\
    \x12\x04\xf3\x01XY\n\x0c\n\x04\x04\x0c\x02\x02\x12\x04\xf4\x01\x08+\n\r\
    \n\x05\x04\x0c\x02\x02\x04\x12\x04\xf4\x01\x08\x10\n\r\n\x05\x04\x0c\x02\
    \x02\x05\x12\x04\xf4\x01\x11\x18\n\r\n\x05\x04\x0c\x02\x02\x01\x12\x04\
    \xf4\x01\x19&\n\r\n\x05\x04\x0c\x02\x02\x03\x12\x04\xf4\x01)*\n\x0c\n\
    \x02\x04\r\x12\x06\xf7\x01\0\xa0\x02\x01\n\x0b\n\x03\x04\r\x01\x12\x04\
    \xf7\x01\x08+\n\x0e\n\x04\x04\r\x03\0\x12\x06\xf8\x01\x08\xfb\x01\t\n\r\
    \n\x05\x04\r\x03\0\x01\x12\x04\xf8\x01\x10\x15\n\x0e\n\x06\x04\r\x03\0\
    \x02\0\x12\x04\xf9\x01\x10(\n\x0f\n\x07\x04\r\x03\0\x02\0\x04\x12\x04\
    \xf9\x01\x10\x18\n\x0f\n\x07\x04\r\x03\0\x02\0\x05\x12\x04\xf9\x01\x19\
    \x1f\n\x0f\n\x07\x04\r\x03\0\x02\0\x01\x12\x04\xf9\x01\x20#\n\x0f\n\x07\
    \x04\r\x03\0\x02\0\x03\x12\x04\xf9\x01&'\n\x0e\n\x06\x04\r\x03\0\x02\x01\
    \x12\x04\xfa\x01\x10*\n\x0f\n\x07\x04\r\x03\0\x02\x01\x04\x12\x04\xfa\
    \x01\x10\x18\n\x0f\n\x07\x04\r\x03\0\x02\x01\x05\x12\x04\xfa\x01\x19\x1f\
    \n\x0f\n\x07\x04\r\x03\0\x02\x01\x01\x12\x04\xfa\x01\x20%\n\x0f\n\x07\
    \x04\r\x03\0\x02\x01\x03\x12\x04\xfa\x01()\n\x0e\n\x04\x04\r\x03\x01\x12\
    \x06\xfd\x01\x08\xff\x01\t\n\r\n\x05\x04\r\x03\x01\x01\x12\x04\xfd\x01\
    \x10\x18\n\x0e\n\x06\x04\r\x03\x01\x02\0\x12\x04\xfe\x01\x10)\n\x0f\n\
    \x07\x04\r\x03\x01\x02\0\x04\x12\x04\xfe\x01\x10\x18\n\x0f\n\x07\x04\r\
    \x03\x01\x02\0\x05\x12\x04\xfe\x01\x19\x1f\n\x0f\n\x07\x04\r\x03\x01\x02\
    \0\x01\x12\x04\xfe\x01\x20$\n\x0f\n\x07\x04\r\x03\x01\x02\0\x03\x12\x04\
    \xfe\x01'(\n\x0c\n\x04\x04\r\x02\0\x12\x04\x81\x02\x08o\n\r\n\x05\x04\r\
    \x02\0\x04\x12\x04\x81\x02\x08\x10\n\r\n\x05\x04\r\x02\0\x05\x12\x04\x81\
    \x02\x11\x18\n\r\n\x05\x04\r\x02\0\x01\x12\x04\x81\x02\x19\x20\n\r\n\x05\
    \x04\r\x02\0\x03\x12\x04\x81\x02#$\n\r\n\x05\x04\r\x02\0\x08\x12\x04\x81\
    \x02%n\n\x10\n\x08\x04\r\x02\0\x08\xd0\x86\x03\x12\x04\x81\x02&m\n\x0c\n\
    \x04\x04\r\x02\x01\x12\x04\x82\x02\x08j\n\r\n\x05\x04\r\x02\x01\x04\x12\
    \x04\x82\x02\x08\x10\n\r\n\x05\x04\r\x02\x01\x05\x12\x04\x82\x02\x11\x17\
    \n\r\n\x05\x04\r\x02\x01\x01\x12\x04\x82\x02\x18\x1d\n\r\n\x05\x04\r\x02\
    \x01\x03\x12\x04\x82\x02\x20!\n\r\n\x05\x04\r\x02\x01\x08\x12\x04\x82\
    \x02\"i\n\x10\n\x08\x04\r\x02\x01\x08\xd0\x86\x03\x12\x04\x82\x02#h\n\
    \x0c\n\x04\x04\r\x02\x02\x12\x04\x83\x02\x08h\n\r\n\x05\x04\r\x02\x02\
    \x04\x12\x04\x83\x02\x08\x10\n\r\n\x05\x04\r\x02\x02\x05\x12\x04\x83\x02\
    \x11\x17\n\r\n\x05\x04\r\x02\x02\x01\x12\x04\x83\x02\x18\x1c\n\r\n\x05\
    \x04\r\x02\x02\x03\x12\x04\x83\x02\x1f\x20\n\r\n\x05\x04\r\x02\x02\x08\
    \x12\x04\x83\x02!g\n\r\n\x05\x04\r\x02\x02\x07\x12\x04\x83\x02,-\n\x10\n\
    \x08\x04\r\x02\x02\x08\xd0\x86\x03\x12\x04\x83\x02/f\n\x0c\n\x04\x04\r\
    \x02\x03\x12\x04\x84\x02\x08~\n\r\n\x05\x04\r\x02\x03\x04\x12\x04\x84\
    \x02\x08\x10\n\r\n\x05\x04\r\x02\x03\x05\x12\x04\x84\x02\x11\x17\n\r\n\
    \x05\x04\r\x02\x03\x01\x12\x04\x84\x02\x18\"\n\r\n\x05\x04\r\x02\x03\x03\
    \x12\x04\x84\x02%&\n\r\n\x05\x04\r\x02\x03\x08\x12\x04\x84\x02'}\n\r\n\
    \x05\x04\r\x02\x03\x07\x12\x04\x84\x0223\n\x10\n\x08\x04\r\x02\x03\x08\
    \xd0\x86\x03\x12\x04\x84\x025|\n\x0c\n\x04\x04\r\x02\x04\x12\x04\x85\x02\
    \x08s\n\r\n\x05\x04\r\x02\x04\x04\x12\x04\x85\x02\x08\x10\n\r\n\x05\x04\
    \r\x02\x04\x05\x12\x04\x85\x02\x11\x17\n\r\n\x05\x04\r\x02\x04\x01\x12\
    \x04\x85\x02\x18\x1c\n\r\n\x05\x04\r\x02\x04\x03\x12\x04\x85\x02\x1f\x20\
    \n\r\n\x05\x04\r\x02\x04\x08\x12\x04\x85\x02!r\n\r\n\x05\x04\r\x02\x04\
    \x07\x12\x04\x85\x02,5\n\x10\n\x08\x04\r\x02\x04\x08\xd0\x86\x03\x12\x04\
    \x85\x027q\n\r\n\x04\x04\r\x02\x05\x12\x05\x86\x02\x08\x89\x01\n\r\n\x05\
    \x04\r\x02\x05\x04\x12\x04\x86\x02\x08\x10\n\r\n\x05\x04\r\x02\x05\x05\
    \x12\x04\x86\x02\x11\x17\n\r\n\x05\x04\r\x02\x05\x01\x12\x04\x86\x02\x18\
    \"\n\r\n\x05\x04\r\x02\x05\x03\x12\x04\x86\x02%&\n\x0e\n\x05\x04\r\x02\
    \x05\x08\x12\x05\x86\x02'\x88\x01\n\r\n\x05\x04\r\x02\x05\x07\x12\x04\
    \x86\x022?\n\x11\n\x08\x04\r\x02\x05\x08\xd0\x86\x03\x12\x05\x86\x02A\
    \x87\x01\n\x0c\n\x04\x04\r\x02\x06\x12\x04\x87\x02\x08_\n\r\n\x05\x04\r\
    \x02\x06\x04\x12\x04\x87\x02\x08\x10\n\r\n\x05\x04\r\x02\x06\x05\x12\x04\
    \x87\x02\x11\x17\n\r\n\x05\x04\r\x02\x06\x01\x12\x04\x87\x02\x18\x1f\n\r\
    \n\x05\x04\r\x02\x06\x03\x12\x04\x87\x02\"#\n\r\n\x05\x04\r\x02\x06\x08\
    \x12\x04\x87\x02$^\n\x10\n\x08\x04\r\x02\x06\x08\xd0\x86\x03\x12\x04\x87\
    \x02%]\n\r\n\x04\x04\r\x02\x07\x12\x05\x88\x02\x08\x8d\x01\n\r\n\x05\x04\
    \r\x02\x07\x04\x12\x04\x88\x02\x08\x10\n\r\n\x05\x04\r\x02\x07\x05\x12\
    \x04\x88\x02\x11\x17\n\r\n\x05\x04\r\x02\x07\x01\x12\x04\x88\x02\x18$\n\
    \r\n\x05\x04\r\x02\x07\x03\x12\x04\x88\x02')\n\x0e\n\x05\x04\r\x02\x07\
    \x08\x12\x05\x88\x02*\x8c\x01\n\x11\n\x08\x04\r\x02\x07\x08\xd0\x86\x03\
    \x12\x05\x88\x02+\x8b\x01\n\r\n\x04\x04\r\x02\x08\x12\x05\x89\x02\x08\
    \x91\x01\n\r\n\x05\x04\r\x02\x08\x04\x12\x04\x89\x02\x08\x10\n\r\n\x05\
    \x04\r\x02\x08\x05\x12\x04\x89\x02\x11\x17\n\r\n\x05\x04\r\x02\x08\x01\
    \x12\x04\x89\x02\x18$\n\r\n\x05\x04\r\x02\x08\x03\x12\x04\x89\x02')\n\
    \x0e\n\x05\x04\r\x02\x08\x08\x12\x05\x89\x02*\x90\x01\n\x11\n\x08\x04\r\
    \x02\x08\x08\xd0\x86\x03\x12\x05\x89\x02+\x8f\x01\n\r\n\x04\x04\r\x02\t\
    \x12\x05\x8a\x02\x08\x8b\x01\n\r\n\x05\x04\r\x02\t\x04\x12\x04\x8a\x02\
    \x08\x10\n\r\n\x05\x04\r\x02\t\x06\x12\x04\x8a\x02\x11;\n\r\n\x05\x04\r\
    \x02\t\x01\x12\x04\x8a\x02<L\n\r\n\x05\x04\r\x02\t\x03\x12\x04\x8a\x02OQ\
    \n\x0e\n\x05\x04\r\x02\t\x08\x12\x05\x8a\x02R\x8a\x01\n\x11\n\x08\x04\r\
    \x02\t\x08\xd0\x86\x03\x12\x05\x8a\x02S\x89\x01\n\x0c\n\x04\x04\r\x02\n\
    \x12\x04\x8b\x02\x08b\n\r\n\x05\x04\r\x02\n\x04\x12\x04\x8b\x02\x08\x10\
    \n\r\n\x05\x04\r\x02\n\x05\x12\x04\x8b\x02\x11\x17\n\r\n\x05\x04\r\x02\n\
    \x01\x12\x04\x8b\x02\x18\x20\n\r\n\x05\x04\r\x02\n\x03\x12\x04\x8b\x02#%\
    \n\r\n\x05\x04\r\x02\n\x08\x12\x04\x8b\x02&a\n\x10\n\x08\x04\r\x02\n\x08\
    \xd0\x86\x03\x12\x04\x8b\x02'`\n\r\n\x04\x04\r\x02\x0b\x12\x05\x8c\x02\
    \x08\x86\x01\n\r\n\x05\x04\r\x02\x0b\x04\x12\x04\x8c\x02\x08\x10\n\r\n\
    \x05\x04\r\x02\x0b\x05\x12\x04\x8c\x02\x11\x17\n\r\n\x05\x04\r\x02\x0b\
    \x01\x12\x04\x8c\x02\x18%\n\r\n\x05\x04\r\x02\x0b\x03\x12\x04\x8c\x02(*\
    \n\x0e\n\x05\x04\r\x02\x0b\x08\x12\x05\x8c\x02+\x85\x01\n\x11\n\x08\x04\
    \r\x02\x0b\x08\xd0\x86\x03\x12\x05\x8c\x02,\x84\x01\n\x0c\n\x04\x04\r\
    \x02\x0c\x12\x04\x8d\x02\x08n\n\r\n\x05\x04\r\x02\x0c\x04\x12\x04\x8d\
    \x02\x08\x10\n\r\n\x05\x04\r\x02\x0c\x05\x12\x04\x8d\x02\x11\x17\n\r\n\
    \x05\x04\r\x02\x0c\x01\x12\x04\x8d\x02\x18,\n\r\n\x05\x04\r\x02\x0c\x03\
    \x12\x04\x8d\x02/1\n\r\n\x05\x04\r\x02\x0c\x08\x12\x04\x8d\x022m\n\x10\n\
    \x08\x04\r\x02\x0c\x08\xd0\x86\x03\x12\x04\x8d\x023l\n\r\n\x04\x04\r\x02\
    \r\x12\x05\x8e\x02\x08\x99\x01\n\r\n\x05\x04\r\x02\r\x04\x12\x04\x8e\x02\
    \x08\x10\n\r\n\x05\x04\r\x02\r\x05\x12\x04\x8e\x02\x11\x17\n\r\n\x05\x04\
    \r\x02\r\x01\x12\x04\x8e\x02\x18-\n\r\n\x05\x04\r\x02\r\x03\x12\x04\x8e\
    \x0202\n\x0e\n\x05\x04\r\x02\r\x08\x12\x05\x8e\x023\x98\x01\n\r\n\x05\
    \x04\r\x02\r\x07\x12\x04\x8e\x02>?\n\x11\n\x08\x04\r\x02\r\x08\xd0\x86\
    \x03\x12\x05\x8e\x02A\x97\x01\n\r\n\x04\x04\r\x02\x0e\x12\x05\x8f\x02\
    \x08\x83\x01\n\r\n\x05\x04\r\x02\x0e\x04\x12\x04\x8f\x02\x08\x10\n\r\n\
    \x05\x04\r\x02\x0e\x05\x12\x04\x8f\x02\x11\x16\n\r\n\x05\x04\r\x02\x0e\
    \x01\x12\x04\x8f\x02\x17\x1f\n\r\n\x05\x04\r\x02\x0e\x03\x12\x04\x8f\x02\
    \"$\n\x0e\n\x05\x04\r\x02\x0e\x08\x12\x05\x8f\x02%\x82\x01\n\r\n\x05\x04\
    \r\x02\x0e\x07\x12\x04\x8f\x0201\n\x11\n\x08\x04\r\x02\x0e\x08\xd0\x86\
    \x03\x12\x05\x8f\x023\x81\x01\n\r\n\x04\x04\r\x02\x0f\x12\x05\x90\x02\
    \x08\xc0\x01\n\r\n\x05\x04\r\x02\x0f\x04\x12\x04\x90\x02\x08\x10\n\r\n\
    \x05\x04\r\x02\x0f\x06\x12\x04\x90\x02\x11>\n\r\n\x05\x04\r\x02\x0f\x01\
    \x12\x04\x90\x02?H\n\r\n\x05\x04\r\x02\x0f\x03\x12\x04\x90\x02KM\n\x0e\n\
    \x05\x04\r\x02\x0f\x08\x12\x05\x90\x02N\xbf\x01\n\x11\n\x08\x04\r\x02\
    \x0f\x08\xd0\x86\x03\x12\x05\x90\x02O\xbe\x01\n\r\n\x04\x04\r\x02\x10\
    \x12\x05\x91\x02\x08\x8c\x01\n\r\n\x05\x04\r\x02\x10\x04\x12\x04\x91\x02\
    \x08\x10\n\r\n\x05\x04\r\x02\x10\x05\x12\x04\x91\x02\x11\x15\n\r\n\x05\
    \x04\r\x02\x10\x01\x12\x04\x91\x02\x16\x1f\n\r\n\x05\x04\r\x02\x10\x03\
    \x12\x04\x91\x02\"$\n\x0e\n\x05\x04\r\x02\x10\x08\x12\x05\x91\x02%\x8b\
    \x01\n\x11\n\x08\x04\r\x02\x10\x08\xd0\x86\x03\x12\x05\x91\x02&\x8a\x01\
    \n\r\n\x04\x04\r\x02\x11\x12\x05\x92\x02\x08\x91\x01\n\r\n\x05\x04\r\x02\
    \x11\x04\x12\x04\x92\x02\x08\x10\n\r\n\x05\x04\r\x02\x11\x05\x12\x04\x92\
    \x02\x11\x15\n\r\n\x05\x04\r\x02\x11\x01\x12\x04\x92\x02\x16\x1e\n\r\n\
    \x05\x04\r\x02\x11\x03\x12\x04\x92\x02!#\n\x0e\n\x05\x04\r\x02\x11\x08\
    \x12\x05\x92\x02$\x90\x01\n\x11\n\x08\x04\r\x02\x11\x08\xd0\x86\x03\x12\
    \x05\x92\x02%\x8f\x01\n\x0c\n\x04\x04\r\x02\x12\x12\x04\x93\x02\x08a\n\r\
    \n\x05\x04\r\x02\x12\x04\x12\x04\x93\x02\x08\x10\n\r\n\x05\x04\r\x02\x12\
    \x05\x12\x04\x93\x02\x11\x15\n\r\n\x05\x04\r\x02\x12\x01\x12\x04\x93\x02\
    \x16&\n\r\n\x05\x04\r\x02\x12\x03\x12\x04\x93\x02)+\n\r\n\x05\x04\r\x02\
    \x12\x08\x12\x04\x93\x02,`\n\r\n\x05\x04\r\x02\x12\x07\x12\x04\x93\x027;\
    \n\x10\n\x08\x04\r\x02\x12\x08\xd0\x86\x03\x12\x04\x93\x02=_\n\x0c\n\x04\
    \x04\r\x02\x13\x12\x04\x94\x02\x08[\n\r\n\x05\x04\r\x02\x13\x04\x12\x04\
    \x94\x02\x08\x10\n\r\n\x05\x04\r\x02\x13\x05\x12\x04\x94\x02\x11\x15\n\r\
    \n\x05\x04\r\x02\x13\x01\x12\x04\x94\x02\x16!\n\r\n\x05\x04\r\x02\x13\
    \x03\x12\x04\x94\x02$&\n\r\n\x05\x04\r\x02\x13\x08\x12\x04\x94\x02'Z\n\
    \x10\n\x08\x04\r\x02\x13\x08\xd0\x86\x03\x12\x04\x94\x02(Y\n\x0c\n\x04\
    \x04\r\x02\x14\x12\x04\x95\x02\x08x\n\r\n\x05\x04\r\x02\x14\x04\x12\x04\
    \x95\x02\x08\x10\n\r\n\x05\x04\r\x02\x14\x05\x12\x04\x95\x02\x11\x15\n\r\
    \n\x05\x04\r\x02\x14\x01\x12\x04\x95\x02\x16$\n\r\n\x05\x04\r\x02\x14\
    \x03\x12\x04\x95\x02')\n\r\n\x05\x04\r\x02\x14\x08\x12\x04\x95\x02*w\n\r\
    \n\x05\x04\r\x02\x14\x07\x12\x04\x95\x0259\n\x10\n\x08\x04\r\x02\x14\x08\
    \xd0\x86\x03\x12\x04\x95\x02;v\n\x0c\n\x04\x04\r\x02\x15\x12\x04\x96\x02\
    \x08z\n\r\n\x05\x04\r\x02\x15\x04\x12\x04\x96\x02\x08\x10\n\r\n\x05\x04\
    \r\x02\x15\x05\x12\x04\x96\x02\x11\x15\n\r\n\x05\x04\r\x02\x15\x01\x12\
    \x04\x96\x02\x16%\n\r\n\x05\x04\r\x02\x15\x03\x12\x04\x96\x02(*\n\r\n\
    \x05\x04\r\x02\x15\x08\x12\x04\x96\x02+y\n\x10\n\x08\x04\r\x02\x15\x08\
    \xd0\x86\x03\x12\x04\x96\x02,x\n\x0c\n\x04\x04\r\x02\x16\x12\x04\x97\x02\
    \x08i\n\r\n\x05\x04\r\x02\x16\x04\x12\x04\x97\x02\x08\x10\n\r\n\x05\x04\
    \r\x02\x16\x05\x12\x04\x97\x02\x11\x15\n\r\n\x05\x04\r\x02\x16\x01\x12\
    \x04\x97\x02\x16%\n\r\n\x05\x04\r\x02\x16\x03\x12\x04\x97\x02(*\n\r\n\
    \x05\x04\r\x02\x16\x08\x12\x04\x97\x02+h\n\x10\n\x08\x04\r\x02\x16\x08\
    \xd0\x86\x03\x12\x04\x97\x02,g\n\r\n\x04\x04\r\x02\x17\x12\x05\x98\x02\
    \x08\x99\x01\n\r\n\x05\x04\r\x02\x17\x04\x12\x04\x98\x02\x08\x10\n\r\n\
    \x05\x04\r\x02\x17\x05\x12\x04\x98\x02\x11\x15\n\r\n\x05\x04\r\x02\x17\
    \x01\x12\x04\x98\x02\x16.\n\r\n\x05\x04\r\x02\x17\x03\x12\x04\x98\x0213\
    \n\x0e\n\x05\x04\r\x02\x17\x08\x12\x05\x98\x024\x98\x01\n\r\n\x05\x04\r\
    \x02\x17\x07\x12\x04\x98\x02?C\n\x11\n\x08\x04\r\x02\x17\x08\xd0\x86\x03\
    \x12\x05\x98\x02E\x97\x01\n\x0c\n\x04\x04\r\x02\x18\x12\x04\x99\x02\x08n\
    \n\r\n\x05\x04\r\x02\x18\x04\x12\x04\x99\x02\x08\x10\n\r\n\x05\x04\r\x02\
    \x18\x05\x12\x04\x99\x02\x11\x15\n\r\n\x05\x04\r\x02\x18\x01\x12\x04\x99\
    \x02\x16*\n\r\n\x05\x04\r\x02\x18\x03\x12\x04\x99\x02-/\n\r\n\x05\x04\r\
    \x02\x18\x08\x12\x04\x99\x020m\n\x10\n\x08\x04\r\x02\x18\x08\xd0\x86\x03\
    \x12\x04\x99\x021l\n\x0c\n\x04\x04\r\x02\x19\x12\x04\x9a\x02\x08l\n\r\n\
    \x05\x04\r\x02\x19\x04\x12\x04\x9a\x02\x08\x10\n\r\n\x05\x04\r\x02\x19\
    \x05\x12\x04\x9a\x02\x11\x15\n\r\n\x05\x04\r\x02\x19\x01\x12\x04\x9a\x02\
    \x16%\n\r\n\x05\x04\r\x02\x19\x03\x12\x04\x9a\x02(*\n\r\n\x05\x04\r\x02\
    \x19\x08\x12\x04\x9a\x02+k\n\r\n\x05\x04\r\x02\x19\x07\x12\x04\x9a\x026;\
    \n\x10\n\x08\x04\r\x02\x19\x08\xd0\x86\x03\x12\x04\x9a\x02=j\n\r\n\x04\
    \x04\r\x02\x1a\x12\x05\x9b\x02\x08\x8c\x01\n\r\n\x05\x04\r\x02\x1a\x04\
    \x12\x04\x9b\x02\x08\x10\n\r\n\x05\x04\r\x02\x1a\x05\x12\x04\x9b\x02\x11\
    \x17\n\r\n\x05\x04\r\x02\x1a\x01\x12\x04\x9b\x02\x18-\n\r\n\x05\x04\r\
    \x02\x1a\x03\x12\x04\x9b\x0202\n\x0e\n\x05\x04\r\x02\x1a\x08\x12\x05\x9b\
    \x023\x8b\x01\n\x11\n\x08\x04\r\x02\x1a\x08\xd0\x86\x03\x12\x05\x9b\x024\
    \x8a\x01\n\x0c\n\x04\x04\r\x02\x1b\x12\x04\x9c\x02\x08i\n\r\n\x05\x04\r\
    \x02\x1b\x04\x12\x04\x9c\x02\x08\x10\n\r\n\x05\x04\r\x02\x1b\x05\x12\x04\
    \x9c\x02\x11\x15\n\r\n\x05\x04\r\x02\x1b\x01\x12\x04\x9c\x02\x16.\n\r\n\
    \x05\x04\r\x02\x1b\x03\x12\x04\x9c\x0213\n\r\n\x05\x04\r\x02\x1b\x08\x12\
    \x04\x9c\x024h\n\x10\n\x08\x04\r\x02\x1b\x08\xd0\x86\x03\x12\x04\x9c\x02\
    5g\n\r\n\x04\x04\r\x02\x1c\x12\x05\x9d\x02\x08\x84\x01\n\r\n\x05\x04\r\
    \x02\x1c\x04\x12\x04\x9d\x02\x08\x10\n\r\n\x05\x04\r\x02\x1c\x05\x12\x04\
    \x9d\x02\x11\x15\n\r\n\x05\x04\r\x02\x1c\x01\x12\x04\x9d\x02\x16&\n\r\n\
    \x05\x04\r\x02\x1c\x03\x12\x04\x9d\x02)+\n\x0e\n\x05\x04\r\x02\x1c\x08\
    \x12\x05\x9d\x02,\x83\x01\n\r\n\x05\x04\r\x02\x1c\x07\x12\x04\x9d\x027<\
    \n\x11\n\x08\x04\r\x02\x1c\x08\xd0\x86\x03\x12\x05\x9d\x02>\x82\x01\n\
    \x0c\n\x04\x04\r\x02\x1d\x12\x04\x9e\x02\x08j\n\r\n\x05\x04\r\x02\x1d\
    \x04\x12\x04\x9e\x02\x08\x10\n\r\n\x05\x04\r\x02\x1d\x05\x12\x04\x9e\x02\
    \x11\x17\n\r\n\x05\x04\r\x02\x1d\x01\x12\x04\x9e\x02\x18+\n\r\n\x05\x04\
    \r\x02\x1d\x03\x12\x04\x9e\x02.0\n\r\n\x05\x04\r\x02\x1d\x08\x12\x04\x9e\
    \x021i\n\x10\n\x08\x04\r\x02\x1d\x08\xd0\x86\x03\x12\x04\x9e\x022h\n\r\n\
    \x04\x04\r\x02\x1e\x12\x05\x9f\x02\x08\xab\x01\n\r\n\x05\x04\r\x02\x1e\
    \x04\x12\x04\x9f\x02\x08\x10\n\r\n\x05\x04\r\x02\x1e\x06\x12\x04\x9f\x02\
    \x11(\n\r\n\x05\x04\r\x02\x1e\x01\x12\x04\x9f\x02)9\n\r\n\x05\x04\r\x02\
    \x1e\x03\x12\x04\x9f\x02<>\n\x0e\n\x05\x04\r\x02\x1e\x08\x12\x05\x9f\x02\
    ?\xaa\x01\n\r\n\x05\x04\r\x02\x1e\x07\x12\x04\x9f\x02Jj\n\x11\n\x08\x04\
    \r\x02\x1e\x08\xd0\x86\x03\x12\x05\x9f\x02l\xa9\x01\n\x0c\n\x02\x04\x0e\
    \x12\x06\xa2\x02\0\xae\x02\x01\n\x0b\n\x03\x04\x0e\x01\x12\x04\xa2\x02\
    \x08,\n\x0e\n\x04\x04\x0e\x03\0\x12\x06\xa3\x02\x08\xa8\x02\t\n\r\n\x05\
    \x04\x0e\x03\0\x01\x12\x04\xa3\x02\x10\x13\n\x0e\n\x06\x04\x0e\x03\0\x02\
    \0\x12\x04\xa4\x02\x10*\n\x0f\n\x07\x04\x0e\x03\0\x02\0\x04\x12\x04\xa4\
    \x02\x10\x18\n\x0f\n\x07\x04\x0e\x03\0\x02\0\x05\x12\x04\xa4\x02\x19\x1f\
    \n\x0f\n\x07\x04\x0e\x03\0\x02\0\x01\x12\x04\xa4\x02\x20%\n\x0f\n\x07\
    \x04\x0e\x03\0\x02\0\x03\x12\x04\xa4\x02()\n\x0e\n\x06\x04\x0e\x03\0\x02\
    \x01\x12\x04\xa5\x02\x10)\n\x0f\n\x07\x04\x0e\x03\0\x02\x01\x04\x12\x04\
    \xa5\x02\x10\x18\n\x0f\n\x07\x04\x0e\x03\0\x02\x01\x05\x12\x04\xa5\x02\
    \x19\x1f\n\x0f\n\x07\x04\x0e\x03\0\x02\x01\x01\x12\x04\xa5\x02\x20$\n\
    \x0f\n\x07\x04\x0e\x03\0\x02\x01\x03\x12\x04\xa5\x02'(\n\x0e\n\x06\x04\
    \x0e\x03\0\x02\x02\x12\x04\xa6\x02\x10/\n\x0f\n\x07\x04\x0e\x03\0\x02\
    \x02\x04\x12\x04\xa6\x02\x10\x18\n\x0f\n\x07\x04\x0e\x03\0\x02\x02\x05\
    \x12\x04\xa6\x02\x19\x1f\n\x0f\n\x07\x04\x0e\x03\0\x02\x02\x01\x12\x04\
    \xa6\x02\x20*\n\x0f\n\x07\x04\x0e\x03\0\x02\x02\x03\x12\x04\xa6\x02-.\n\
    \x0e\n\x06\x04\x0e\x03\0\x02\x03\x12\x04\xa7\x02\x10*\n\x0f\n\x07\x04\
    \x0e\x03\0\x02\x03\x04\x12\x04\xa7\x02\x10\x18\n\x0f\n\x07\x04\x0e\x03\0\
    \x02\x03\x05\x12\x04\xa7\x02\x19\x1d\n\x0f\n\x07\x04\x0e\x03\0\x02\x03\
    \x01\x12\x04\xa7\x02\x1e%\n\x0f\n\x07\x04\x0e\x03\0\x02\x03\x03\x12\x04\
    \xa7\x02()\n\x0c\n\x04\x04\x0e\x02\0\x12\x04\xaa\x02\x08\"\n\r\n\x05\x04\
    \x0e\x02\0\x04\x12\x04\xaa\x02\x08\x10\n\r\n\x05\x04\x0e\x02\0\x05\x12\
    \x04\xaa\x02\x11\x17\n\r\n\x05\x04\x0e\x02\0\x01\x12\x04\xaa\x02\x18\x1d\
    \n\r\n\x05\x04\x0e\x02\0\x03\x12\x04\xaa\x02\x20!\n\x0c\n\x04\x04\x0e\
    \x02\x01\x12\x04\xab\x02\x08'\n\r\n\x05\x04\x0e\x02\x01\x04\x12\x04\xab\
    \x02\x08\x10\n\r\n\x05\x04\x0e\x02\x01\x05\x12\x04\xab\x02\x11\x17\n\r\n\
    \x05\x04\x0e\x02\x01\x01\x12\x04\xab\x02\x18\"\n\r\n\x05\x04\x0e\x02\x01\
    \x03\x12\x04\xab\x02%&\n\x0c\n\x04\x04\x0e\x02\x02\x12\x04\xac\x02\x08@\
    \n\r\n\x05\x04\x0e\x02\x02\x04\x12\x04\xac\x02\x08\x10\n\r\n\x05\x04\x0e\
    \x02\x02\x06\x12\x04\xac\x02\x11&\n\r\n\x05\x04\x0e\x02\x02\x01\x12\x04\
    \xac\x02';\n\r\n\x05\x04\x0e\x02\x02\x03\x12\x04\xac\x02>?\n\x0c\n\x04\
    \x04\x0e\x02\x03\x12\x04\xad\x02\x08D\n\r\n\x05\x04\x0e\x02\x03\x04\x12\
    \x04\xad\x02\x08\x10\n\r\n\x05\x04\x0e\x02\x03\x06\x12\x04\xad\x02\x11:\
    \n\r\n\x05\x04\x0e\x02\x03\x01\x12\x04\xad\x02;?\n\r\n\x05\x04\x0e\x02\
    \x03\x03\x12\x04\xad\x02BC\n\x0c\n\x02\x04\x0f\x12\x06\xb0\x02\0\xb6\x02\
    \x01\n\x0b\n\x03\x04\x0f\x01\x12\x04\xb0\x02\x089\n\x0c\n\x04\x04\x0f\
    \x02\0\x12\x04\xb1\x02\x08\"\n\r\n\x05\x04\x0f\x02\0\x04\x12\x04\xb1\x02\
    \x08\x10\n\r\n\x05\x04\x0f\x02\0\x05\x12\x04\xb1\x02\x11\x17\n\r\n\x05\
    \x04\x0f\x02\0\x01\x12\x04\xb1\x02\x18\x1d\n\r\n\x05\x04\x0f\x02\0\x03\
    \x12\x04\xb1\x02\x20!\n\x0c\n\x04\x04\x0f\x02\x01\x12\x04\xb2\x02\x08.\n\
    \r\n\x05\x04\x0f\x02\x01\x04\x12\x04\xb2\x02\x08\x10\n\r\n\x05\x04\x0f\
    \x02\x01\x05\x12\x04\xb2\x02\x11\x18\n\r\n\x05\x04\x0f\x02\x01\x01\x12\
    \x04\xb2\x02\x19)\n\r\n\x05\x04\x0f\x02\x01\x03\x12\x04\xb2\x02,-\n\x0c\
    \n\x04\x04\x0f\x02\x02\x12\x04\xb3\x02\x08J\n\r\n\x05\x04\x0f\x02\x02\
    \x04\x12\x04\xb3\x02\x08\x10\n\r\n\x05\x04\x0f\x02\x02\x05\x12\x04\xb3\
    \x02\x11\x17\n\r\n\x05\x04\x0f\x02\x02\x01\x12\x04\xb3\x02\x18\x20\n\r\n\
    \x05\x04\x0f\x02\x02\x03\x12\x04\xb3\x02#$\n\r\n\x05\x04\x0f\x02\x02\x08\
    \x12\x04\xb3\x02%I\n\x10\n\x08\x04\x0f\x02\x02\x08\xd0\x86\x03\x12\x04\
    \xb3\x02&H\n\x0c\n\x04\x04\x0f\x02\x03\x12\x04\xb4\x02\x08`\n\r\n\x05\
    \x04\x0f\x02\x03\x04\x12\x04\xb4\x02\x08\x10\n\r\n\x05\x04\x0f\x02\x03\
    \x05\x12\x04\xb4\x02\x11\x17\n\r\n\x05\x04\x0f\x02\x03\x01\x12\x04\xb4\
    \x02\x18\x20\n\r\n\x05\x04\x0f\x02\x03\x03\x12\x04\xb4\x02#$\n\r\n\x05\
    \x04\x0f\x02\x03\x08\x12\x04\xb4\x02%_\n\x10\n\x08\x04\x0f\x02\x03\x08\
    \xd0\x86\x03\x12\x04\xb4\x02&^\n\x0c\n\x04\x04\x0f\x02\x04\x12\x04\xb5\
    \x02\x08z\n\r\n\x05\x04\x0f\x02\x04\x04\x12\x04\xb5\x02\x08\x10\n\r\n\
    \x05\x04\x0f\x02\x04\x05\x12\x04\xb5\x02\x11\x17\n\r\n\x05\x04\x0f\x02\
    \x04\x01\x12\x04\xb5\x02\x18(\n\r\n\x05\x04\x0f\x02\x04\x03\x12\x04\xb5\
    \x02+,\n\r\n\x05\x04\x0f\x02\x04\x08\x12\x04\xb5\x02-y\n\x10\n\x08\x04\
    \x0f\x02\x04\x08\xd0\x86\x03\x12\x04\xb5\x02.x\n\x0c\n\x02\x04\x10\x12\
    \x06\xb8\x02\0\xbf\x02\x01\n\x0b\n\x03\x04\x10\x01\x12\x04\xb8\x02\x08:\
    \n\x0e\n\x04\x04\x10\x03\0\x12\x06\xb9\x02\x08\xbc\x02\t\n\r\n\x05\x04\
    \x10\x03\0\x01\x12\x04\xb9\x02\x10\x16\n\x0e\n\x06\x04\x10\x03\0\x02\0\
    \x12\x04\xba\x02\x105\n\x0f\n\x07\x04\x10\x03\0\x02\0\x04\x12\x04\xba\
    \x02\x10\x18\n\x0f\n\x07\x04\x10\x03\0\x02\0\x05\x12\x04\xba\x02\x19\x20\
    \n\x0f\n\x07\x04\x10\x03\0\x02\0\x01\x12\x04\xba\x02!0\n\x0f\n\x07\x04\
    \x10\x03\0\x02\0\x03\x12\x04\xba\x0234\n\x0e\n\x06\x04\x10\x03\0\x02\x01\
    \x12\x04\xbb\x02\x10)\n\x0f\n\x07\x04\x10\x03\0\x02\x01\x04\x12\x04\xbb\
    \x02\x10\x18\n\x0f\n\x07\x04\x10\x03\0\x02\x01\x05\x12\x04\xbb\x02\x19\
    \x1d\n\x0f\n\x07\x04\x10\x03\0\x02\x01\x01\x12\x04\xbb\x02\x1e$\n\x0f\n\
    \x07\x04\x10\x03\0\x02\x01\x03\x12\x04\xbb\x02'(\n\x0c\n\x04\x04\x10\x02\
    \0\x12\x04\xbe\x02\x08V\n\r\n\x05\x04\x10\x02\0\x04\x12\x04\xbe\x02\x08\
    \x10\n\r\n\x05\x04\x10\x02\0\x06\x12\x04\xbe\x02\x11K\n\r\n\x05\x04\x10\
    \x02\0\x01\x12\x04\xbe\x02LQ\n\r\n\x05\x04\x10\x02\0\x03\x12\x04\xbe\x02\
    TU\n\x0c\n\x02\x04\x11\x12\x06\xc1\x02\0\xcc\x02\x01\n\x0b\n\x03\x04\x11\
    \x01\x12\x04\xc1\x02\x08%\n\x0c\n\x04\x04\x11\x02\0\x12\x04\xc2\x02\x08]\
    \n\r\n\x05\x04\x11\x02\0\x04\x12\x04\xc2\x02\x08\x10\n\r\n\x05\x04\x11\
    \x02\0\x05\x12\x04\xc2\x02\x11\x17\n\r\n\x05\x04\x11\x02\0\x01\x12\x04\
    \xc2\x02\x18\x1d\n\r\n\x05\x04\x11\x02\0\x03\x12\x04\xc2\x02\x20!\n\r\n\
    \x05\x04\x11\x02\0\x08\x12\x04\xc2\x02\"\\\n\x10\n\x08\x04\x11\x02\0\x08\
    \xd0\x86\x03\x12\x04\xc2\x02#[\n\x0c\n\x04\x04\x11\x02\x01\x12\x04\xc3\
    \x02\x08q\n\r\n\x05\x04\x11\x02\x01\x04\x12\x04\xc3\x02\x08\x10\n\r\n\
    \x05\x04\x11\x02\x01\x05\x12\x04\xc3\x02\x11\x18\n\r\n\x05\x04\x11\x02\
    \x01\x01\x12\x04\xc3\x02\x19(\n\r\n\x05\x04\x11\x02\x01\x03\x12\x04\xc3\
    \x02+,\n\r\n\x05\x04\x11\x02\x01\x08\x12\x04\xc3\x02-p\n\x10\n\x08\x04\
    \x11\x02\x01\x08\xd0\x86\x03\x12\x04\xc3\x02.o\n\x0c\n\x04\x04\x11\x02\
    \x02\x12\x04\xc4\x02\x08^\n\r\n\x05\x04\x11\x02\x02\x04\x12\x04\xc4\x02\
    \x08\x10\n\r\n\x05\x04\x11\x02\x02\x05\x12\x04\xc4\x02\x11\x17\n\r\n\x05\
    \x04\x11\x02\x02\x01\x12\x04\xc4\x02\x18\x1d\n\r\n\x05\x04\x11\x02\x02\
    \x03\x12\x04\xc4\x02\x20!\n\r\n\x05\x04\x11\x02\x02\x08\x12\x04\xc4\x02\
    \"]\n\x10\n\x08\x04\x11\x02\x02\x08\xd0\x86\x03\x12\x04\xc4\x02#\\\n\x0c\
    \n\x04\x04\x11\x02\x03\x12\x04\xc5\x02\x08o\n\r\n\x05\x04\x11\x02\x03\
    \x04\x12\x04\xc5\x02\x08\x10\n\r\n\x05\x04\x11\x02\x03\x05\x12\x04\xc5\
    \x02\x11\x17\n\r\n\x05\x04\x11\x02\x03\x01\x12\x04\xc5\x02\x18(\n\r\n\
    \x05\x04\x11\x02\x03\x03\x12\x04\xc5\x02+,\n\r\n\x05\x04\x11\x02\x03\x08\
    \x12\x04\xc5\x02-n\n\x10\n\x08\x04\x11\x02\x03\x08\xd0\x86\x03\x12\x04\
    \xc5\x02.m\n\x0c\n\x04\x04\x11\x02\x04\x12\x04\xc6\x02\x08h\n\r\n\x05\
    \x04\x11\x02\x04\x04\x12\x04\xc6\x02\x08\x10\n\r\n\x05\x04\x11\x02\x04\
    \x05\x12\x04\xc6\x02\x11\x17\n\r\n\x05\x04\x11\x02\x04\x01\x12\x04\xc6\
    \x02\x18\"\n\r\n\x05\x04\x11\x02\x04\x03\x12\x04\xc6\x02%&\n\r\n\x05\x04\
    \x11\x02\x04\x08\x12\x04\xc6\x02'g\n\x10\n\x08\x04\x11\x02\x04\x08\xd0\
    \x86\x03\x12\x04\xc6\x02(f\n\x0c\n\x04\x04\x11\x02\x05\x12\x04\xc7\x02\
    \x08d\n\r\n\x05\x04\x11\x02\x05\x04\x12\x04\xc7\x02\x08\x10\n\r\n\x05\
    \x04\x11\x02\x05\x05\x12\x04\xc7\x02\x11\x17\n\r\n\x05\x04\x11\x02\x05\
    \x01\x12\x04\xc7\x02\x18\x1c\n\r\n\x05\x04\x11\x02\x05\x03\x12\x04\xc7\
    \x02\x1f\x20\n\r\n\x05\x04\x11\x02\x05\x08\x12\x04\xc7\x02!c\n\x10\n\x08\
    \x04\x11\x02\x05\x08\xd0\x86\x03\x12\x04\xc7\x02\"b\n\x0c\n\x04\x04\x11\
    \x02\x06\x12\x04\xc8\x02\x08e\n\r\n\x05\x04\x11\x02\x06\x04\x12\x04\xc8\
    \x02\x08\x10\n\r\n\x05\x04\x11\x02\x06\x05\x12\x04\xc8\x02\x11\x17\n\r\n\
    \x05\x04\x11\x02\x06\x01\x12\x04\xc8\x02\x18\x20\n\r\n\x05\x04\x11\x02\
    \x06\x03\x12\x04\xc8\x02#$\n\r\n\x05\x04\x11\x02\x06\x08\x12\x04\xc8\x02\
    %d\n\x10\n\x08\x04\x11\x02\x06\x08\xd0\x86\x03\x12\x04\xc8\x02&c\n\x0c\n\
    \x04\x04\x11\x02\x07\x12\x04\xc9\x02\x08u\n\r\n\x05\x04\x11\x02\x07\x04\
    \x12\x04\xc9\x02\x08\x10\n\r\n\x05\x04\x11\x02\x07\x05\x12\x04\xc9\x02\
    \x11\x17\n\r\n\x05\x04\x11\x02\x07\x01\x12\x04\xc9\x02\x18(\n\r\n\x05\
    \x04\x11\x02\x07\x03\x12\x04\xc9\x02+,\n\r\n\x05\x04\x11\x02\x07\x08\x12\
    \x04\xc9\x02-t\n\x10\n\x08\x04\x11\x02\x07\x08\xd0\x86\x03\x12\x04\xc9\
    \x02.s\n\r\n\x04\x04\x11\x02\x08\x12\x05\xca\x02\x08\x83\x01\n\r\n\x05\
    \x04\x11\x02\x08\x04\x12\x04\xca\x02\x08\x10\n\r\n\x05\x04\x11\x02\x08\
    \x05\x12\x04\xca\x02\x11\x17\n\r\n\x05\x04\x11\x02\x08\x01\x12\x04\xca\
    \x02\x18#\n\r\n\x05\x04\x11\x02\x08\x03\x12\x04\xca\x02&(\n\x0e\n\x05\
    \x04\x11\x02\x08\x08\x12\x05\xca\x02)\x82\x01\n\x11\n\x08\x04\x11\x02\
    \x08\x08\xd0\x86\x03\x12\x05\xca\x02*\x81\x01\n\r\n\x04\x04\x11\x02\t\
    \x12\x05\xcb\x02\x08\x85\x01\n\r\n\x05\x04\x11\x02\t\x04\x12\x04\xcb\x02\
    \x08\x10\n\r\n\x05\x04\x11\x02\t\x05\x12\x04\xcb\x02\x11\x17\n\r\n\x05\
    \x04\x11\x02\t\x01\x12\x04\xcb\x02\x18$\n\r\n\x05\x04\x11\x02\t\x03\x12\
    \x04\xcb\x02')\n\x0e\n\x05\x04\x11\x02\t\x08\x12\x05\xcb\x02*\x84\x01\n\
    \x11\n\x08\x04\x11\x02\t\x08\xd0\x86\x03\x12\x05\xcb\x02+\x83\x01\n\x0c\
    \n\x02\x04\x12\x12\x06\xce\x02\0\xcf\x02\x01\n\x0b\n\x03\x04\x12\x01\x12\
    \x04\xce\x02\x08&\n\x0c\n\x02\x04\x13\x12\x06\xd1\x02\0\xd5\x02\x01\n\
    \x0b\n\x03\x04\x13\x01\x12\x04\xd1\x02\x084\n\r\n\x04\x04\x13\x02\0\x12\
    \x05\xd2\x02\x08\x88\x01\n\r\n\x05\x04\x13\x02\0\x04\x12\x04\xd2\x02\x08\
    \x10\n\r\n\x05\x04\x13\x02\0\x05\x12\x04\xd2\x02\x11\x18\n\r\n\x05\x04\
    \x13\x02\0\x01\x12\x04\xd2\x02\x19(\n\r\n\x05\x04\x13\x02\0\x03\x12\x04\
    \xd2\x02+,\n\x0e\n\x05\x04\x13\x02\0\x08\x12\x05\xd2\x02-\x87\x01\n\x11\
    \n\x08\x04\x13\x02\0\x08\xd0\x86\x03\x12\x05\xd2\x02.\x86\x01\n\x0c\n\
    \x04\x04\x13\x02\x01\x12\x04\xd3\x02\x08&\n\r\n\x05\x04\x13\x02\x01\x04\
    \x12\x04\xd3\x02\x08\x10\n\r\n\x05\x04\x13\x02\x01\x05\x12\x04\xd3\x02\
    \x11\x17\n\r\n\x05\x04\x13\x02\x01\x01\x12\x04\xd3\x02\x18!\n\r\n\x05\
    \x04\x13\x02\x01\x03\x12\x04\xd3\x02$%\n\x0c\n\x04\x04\x13\x02\x02\x12\
    \x04\xd4\x02\x08$\n\r\n\x05\x04\x13\x02\x02\x04\x12\x04\xd4\x02\x08\x10\
    \n\r\n\x05\x04\x13\x02\x02\x05\x12\x04\xd4\x02\x11\x16\n\r\n\x05\x04\x13\
    \x02\x02\x01\x12\x04\xd4\x02\x17\x1f\n\r\n\x05\x04\x13\x02\x02\x03\x12\
    \x04\xd4\x02\"#\n\x0c\n\x02\x04\x14\x12\x06\xd7\x02\0\xda\x02\x01\n\x0b\
    \n\x03\x04\x14\x01\x12\x04\xd7\x02\x085\n\x0c\n\x04\x04\x14\x02\0\x12\
    \x04\xd8\x02\x08/\n\r\n\x05\x04\x14\x02\0\x04\x12\x04\xd8\x02\x08\x10\n\
    \r\n\x05\x04\x14\x02\0\x05\x12\x04\xd8\x02\x11\x17\n\r\n\x05\x04\x14\x02\
    \0\x01\x12\x04\xd8\x02\x18*\n\r\n\x05\x04\x14\x02\0\x03\x12\x04\xd8\x02-\
    .\n\x0c\n\x04\x04\x14\x02\x01\x12\x04\xd9\x02\x08$\n\r\n\x05\x04\x14\x02\
    \x01\x04\x12\x04\xd9\x02\x08\x10\n\r\n\x05\x04\x14\x02\x01\x05\x12\x04\
    \xd9\x02\x11\x16\n\r\n\x05\x04\x14\x02\x01\x01\x12\x04\xd9\x02\x17\x1f\n\
    \r\n\x05\x04\x14\x02\x01\x03\x12\x04\xd9\x02\"#\n\x0c\n\x02\x04\x15\x12\
    \x06\xdc\x02\0\xe2\x02\x01\n\x0b\n\x03\x04\x15\x01\x12\x04\xdc\x02\x08/\
    \n\r\n\x04\x04\x15\x02\0\x12\x05\xdd\x02\x08\x88\x01\n\r\n\x05\x04\x15\
    \x02\0\x04\x12\x04\xdd\x02\x08\x10\n\r\n\x05\x04\x15\x02\0\x05\x12\x04\
    \xdd\x02\x11\x18\n\r\n\x05\x04\x15\x02\0\x01\x12\x04\xdd\x02\x19(\n\r\n\
    \x05\x04\x15\x02\0\x03\x12\x04\xdd\x02+,\n\x0e\n\x05\x04\x15\x02\0\x08\
    \x12\x05\xdd\x02-\x87\x01\n\x11\n\x08\x04\x15\x02\0\x08\xd0\x86\x03\x12\
    \x05\xdd\x02.\x86\x01\n\x0c\n\x04\x04\x15\x02\x01\x12\x04\xde\x02\x08b\n\
    \r\n\x05\x04\x15\x02\x01\x04\x12\x04\xde\x02\x08\x10\n\r\n\x05\x04\x15\
    \x02\x01\x05\x12\x04\xde\x02\x11\x15\n\r\n\x05\x04\x15\x02\x01\x01\x12\
    \x04\xde\x02\x16\x20\n\r\n\x05\x04\x15\x02\x01\x03\x12\x04\xde\x02#$\n\r\
    \n\x05\x04\x15\x02\x01\x08\x12\x04\xde\x02%a\n\x10\n\x08\x04\x15\x02\x01\
    \x08\xd0\x86\x03\x12\x04\xde\x02&`\n\x0c\n\x04\x04\x15\x02\x02\x12\x04\
    \xdf\x02\x08'\n\r\n\x05\x04\x15\x02\x02\x04\x12\x04\xdf\x02\x08\x10\n\r\
    \n\x05\x04\x15\x02\x02\x05\x12\x04\xdf\x02\x11\x17\n\r\n\x05\x04\x15\x02\
    \x02\x01\x12\x04\xdf\x02\x18\"\n\r\n\x05\x04\x15\x02\x02\x03\x12\x04\xdf\
    \x02%&\n\x0c\n\x04\x04\x15\x02\x03\x12\x04\xe0\x02\x08\"\n\r\n\x05\x04\
    \x15\x02\x03\x04\x12\x04\xe0\x02\x08\x10\n\r\n\x05\x04\x15\x02\x03\x05\
    \x12\x04\xe0\x02\x11\x17\n\r\n\x05\x04\x15\x02\x03\x01\x12\x04\xe0\x02\
    \x18\x1d\n\r\n\x05\x04\x15\x02\x03\x03\x12\x04\xe0\x02\x20!\n\x0c\n\x04\
    \x04\x15\x02\x04\x12\x04\xe1\x02\x08V\n\r\n\x05\x04\x15\x02\x04\x04\x12\
    \x04\xe1\x02\x08\x10\n\r\n\x05\x04\x15\x02\x04\x05\x12\x04\xe1\x02\x11\
    \x16\n\r\n\x05\x04\x15\x02\x04\x01\x12\x04\xe1\x02\x17\x1f\n\r\n\x05\x04\
    \x15\x02\x04\x03\x12\x04\xe1\x02\"#\n\r\n\x05\x04\x15\x02\x04\x08\x12\
    \x04\xe1\x02$U\n\r\n\x05\x04\x15\x02\x04\x07\x12\x04\xe1\x02/0\n\x10\n\
    \x08\x04\x15\x02\x04\x08\xd0\x86\x03\x12\x04\xe1\x022T\n\x0c\n\x02\x04\
    \x16\x12\x06\xe4\x02\0\xed\x02\x01\n\x0b\n\x03\x04\x16\x01\x12\x04\xe4\
    \x02\x080\n\x0e\n\x04\x04\x16\x03\0\x12\x06\xe5\x02\x08\xe9\x02\t\n\r\n\
    \x05\x04\x16\x03\0\x01\x12\x04\xe5\x02\x10\x19\n\x0e\n\x06\x04\x16\x03\0\
    \x02\0\x12\x04\xe6\x02\x10.\n\x0f\n\x07\x04\x16\x03\0\x02\0\x04\x12\x04\
    \xe6\x02\x10\x18\n\x0f\n\x07\x04\x16\x03\0\x02\0\x05\x12\x04\xe6\x02\x19\
    \x1f\n\x0f\n\x07\x04\x16\x03\0\x02\0\x01\x12\x04\xe6\x02\x20)\n\x0f\n\
    \x07\x04\x16\x03\0\x02\0\x03\x12\x04\xe6\x02,-\n\x0e\n\x06\x04\x16\x03\0\
    \x02\x01\x12\x04\xe7\x02\x107\n\x0f\n\x07\x04\x16\x03\0\x02\x01\x04\x12\
    \x04\xe7\x02\x10\x18\n\x0f\n\x07\x04\x16\x03\0\x02\x01\x05\x12\x04\xe7\
    \x02\x19\x1f\n\x0f\n\x07\x04\x16\x03\0\x02\x01\x01\x12\x04\xe7\x02\x202\
    \n\x0f\n\x07\x04\x16\x03\0\x02\x01\x03\x12\x04\xe7\x0256\n\x0e\n\x06\x04\
    \x16\x03\0\x02\x02\x12\x04\xe8\x02\x10,\n\x0f\n\x07\x04\x16\x03\0\x02\
    \x02\x04\x12\x04\xe8\x02\x10\x18\n\x0f\n\x07\x04\x16\x03\0\x02\x02\x05\
    \x12\x04\xe8\x02\x19\x1e\n\x0f\n\x07\x04\x16\x03\0\x02\x02\x01\x12\x04\
    \xe8\x02\x1f'\n\x0f\n\x07\x04\x16\x03\0\x02\x02\x03\x12\x04\xe8\x02*+\n\
    \x0c\n\x04\x04\x16\x02\0\x12\x04\xeb\x02\x08Q\n\r\n\x05\x04\x16\x02\0\
    \x04\x12\x04\xeb\x02\x08\x10\n\r\n\x05\x04\x16\x02\0\x06\x12\x04\xeb\x02\
    \x11D\n\r\n\x05\x04\x16\x02\0\x01\x12\x04\xeb\x02EL\n\r\n\x05\x04\x16\
    \x02\0\x03\x12\x04\xeb\x02OP\n\x0c\n\x04\x04\x16\x02\x01\x12\x04\xec\x02\
    \x08\"\n\r\n\x05\x04\x16\x02\x01\x04\x12\x04\xec\x02\x08\x10\n\r\n\x05\
    \x04\x16\x02\x01\x05\x12\x04\xec\x02\x11\x17\n\r\n\x05\x04\x16\x02\x01\
    \x01\x12\x04\xec\x02\x18\x1d\n\r\n\x05\x04\x16\x02\x01\x03\x12\x04\xec\
    \x02\x20!\n\x0c\n\x02\x04\x17\x12\x06\xef\x02\0\xf7\x02\x01\n\x0b\n\x03\
    \x04\x17\x01\x12\x04\xef\x02\x081\n\x0c\n\x04\x04\x17\x02\0\x12\x04\xf0\
    \x02\x08\"\n\r\n\x05\x04\x17\x02\0\x04\x12\x04\xf0\x02\x08\x10\n\r\n\x05\
    \x04\x17\x02\0\x05\x12\x04\xf0\x02\x11\x17\n\r\n\x05\x04\x17\x02\0\x01\
    \x12\x04\xf0\x02\x18\x1d\n\r\n\x05\x04\x17\x02\0\x03\x12\x04\xf0\x02\x20\
    !\n\x0c\n\x04\x04\x17\x02\x01\x12\x04\xf1\x02\x08f\n\r\n\x05\x04\x17\x02\
    \x01\x04\x12\x04\xf1\x02\x08\x10\n\r\n\x05\x04\x17\x02\x01\x05\x12\x04\
    \xf1\x02\x11\x17\n\r\n\x05\x04\x17\x02\x01\x01\x12\x04\xf1\x02\x18*\n\r\
    \n\x05\x04\x17\x02\x01\x03\x12\x04\xf1\x02-.\n\r\n\x05\x04\x17\x02\x01\
    \x08\x12\x04\xf1\x02/e\n\x10\n\x08\x04\x17\x02\x01\x08\xd0\x86\x03\x12\
    \x04\xf1\x020d\n\r\n\x04\x04\x17\x02\x02\x12\x05\xf2\x02\x08\x90\x01\n\r\
    \n\x05\x04\x17\x02\x02\x04\x12\x04\xf2\x02\x08\x10\n\r\n\x05\x04\x17\x02\
    \x02\x05\x12\x04\xf2\x02\x11\x17\n\r\n\x05\x04\x17\x02\x02\x01\x12\x04\
    \xf2\x02\x18\x1c\n\r\n\x05\x04\x17\x02\x02\x03\x12\x04\xf2\x02\x1f\x20\n\
    \x0e\n\x05\x04\x17\x02\x02\x08\x12\x05\xf2\x02!\x8f\x01\n\x11\n\x08\x04\
    \x17\x02\x02\x08\xd0\x86\x03\x12\x05\xf2\x02\"\x8e\x01\n\r\n\x04\x04\x17\
    \x02\x03\x12\x05\xf3\x02\x08\xc1\x01\n\r\n\x05\x04\x17\x02\x03\x04\x12\
    \x04\xf3\x02\x08\x10\n\r\n\x05\x04\x17\x02\x03\x05\x12\x04\xf3\x02\x11\
    \x15\n\r\n\x05\x04\x17\x02\x03\x01\x12\x04\xf3\x02\x16$\n\r\n\x05\x04\
    \x17\x02\x03\x03\x12\x04\xf3\x02'(\n\x0e\n\x05\x04\x17\x02\x03\x08\x12\
    \x05\xf3\x02)\xc0\x01\n\r\n\x05\x04\x17\x02\x03\x07\x12\x04\xf3\x0248\n\
    \x11\n\x08\x04\x17\x02\x03\x08\xd0\x86\x03\x12\x05\xf3\x02:\xbf\x01\n\
    \x0c\n\x04\x04\x17\x02\x04\x12\x04\xf4\x02\x08m\n\r\n\x05\x04\x17\x02\
    \x04\x04\x12\x04\xf4\x02\x08\x10\n\r\n\x05\x04\x17\x02\x04\x05\x12\x04\
    \xf4\x02\x11\x17\n\r\n\x05\x04\x17\x02\x04\x01\x12\x04\xf4\x02\x18%\n\r\
    \n\x05\x04\x17\x02\x04\x03\x12\x04\xf4\x02()\n\r\n\x05\x04\x17\x02\x04\
    \x08\x12\x04\xf4\x02*l\n\x10\n\x08\x04\x17\x02\x04\x08\xd0\x86\x03\x12\
    \x04\xf4\x02+k\n\r\n\x04\x04\x17\x02\x05\x12\x05\xf5\x02\x08\x8e\x01\n\r\
    \n\x05\x04\x17\x02\x05\x04\x12\x04\xf5\x02\x08\x10\n\r\n\x05\x04\x17\x02\
    \x05\x05\x12\x04\xf5\x02\x11\x17\n\r\n\x05\x04\x17\x02\x05\x01\x12\x04\
    \xf5\x02\x18*\n\r\n\x05\x04\x17\x02\x05\x03\x12\x04\xf5\x02-.\n\x0e\n\
    \x05\x04\x17\x02\x05\x08\x12\x05\xf5\x02/\x8d\x01\n\x11\n\x08\x04\x17\
    \x02\x05\x08\xd0\x86\x03\x12\x05\xf5\x020\x8c\x01\n\r\n\x04\x04\x17\x02\
    \x06\x12\x05\xf6\x02\x08\xb9\x01\n\r\n\x05\x04\x17\x02\x06\x04\x12\x04\
    \xf6\x02\x08\x10\n\r\n\x05\x04\x17\x02\x06\x06\x12\x04\xf6\x02\x11(\n\r\
    \n\x05\x04\x17\x02\x06\x01\x12\x04\xf6\x02)9\n\r\n\x05\x04\x17\x02\x06\
    \x03\x12\x04\xf6\x02<=\n\x0e\n\x05\x04\x17\x02\x06\x08\x12\x05\xf6\x02>\
    \xb8\x01\n\r\n\x05\x04\x17\x02\x06\x07\x12\x04\xf6\x02Ii\n\x11\n\x08\x04\
    \x17\x02\x06\x08\xd0\x86\x03\x12\x05\xf6\x02k\xb7\x01\n\x0c\n\x02\x04\
    \x18\x12\x06\xf9\x02\0\xfa\x02\x01\n\x0b\n\x03\x04\x18\x01\x12\x04\xf9\
    \x02\x082\n\x0c\n\x02\x04\x19\x12\x06\xfc\x02\0\xa9\x03\x01\n\x0b\n\x03\
    \x04\x19\x01\x12\x04\xfc\x02\x08)\n\x0e\n\x04\x04\x19\x03\0\x12\x06\xfd\
    \x02\x08\x80\x03\t\n\r\n\x05\x04\x19\x03\0\x01\x12\x04\xfd\x02\x10\x15\n\
    \x0e\n\x06\x04\x19\x03\0\x02\0\x12\x04\xfe\x02\x10(\n\x0f\n\x07\x04\x19\
    \x03\0\x02\0\x04\x12\x04\xfe\x02\x10\x18\n\x0f\n\x07\x04\x19\x03\0\x02\0\
    \x05\x12\x04\xfe\x02\x19\x1f\n\x0f\n\x07\x04\x19\x03\0\x02\0\x01\x12\x04\
    \xfe\x02\x20#\n\x0f\n\x07\x04\x19\x03\0\x02\0\x03\x12\x04\xfe\x02&'\n\
    \x0e\n\x06\x04\x19\x03\0\x02\x01\x12\x04\xff\x02\x10*\n\x0f\n\x07\x04\
    \x19\x03\0\x02\x01\x04\x12\x04\xff\x02\x10\x18\n\x0f\n\x07\x04\x19\x03\0\
    \x02\x01\x05\x12\x04\xff\x02\x19\x1f\n\x0f\n\x07\x04\x19\x03\0\x02\x01\
    \x01\x12\x04\xff\x02\x20%\n\x0f\n\x07\x04\x19\x03\0\x02\x01\x03\x12\x04\
    \xff\x02()\n\x0e\n\x04\x04\x19\x03\x01\x12\x06\x82\x03\x08\x84\x03\t\n\r\
    \n\x05\x04\x19\x03\x01\x01\x12\x04\x82\x03\x10\x18\n\x0e\n\x06\x04\x19\
    \x03\x01\x02\0\x12\x04\x83\x03\x10)\n\x0f\n\x07\x04\x19\x03\x01\x02\0\
    \x04\x12\x04\x83\x03\x10\x18\n\x0f\n\x07\x04\x19\x03\x01\x02\0\x05\x12\
    \x04\x83\x03\x19\x1f\n\x0f\n\x07\x04\x19\x03\x01\x02\0\x01\x12\x04\x83\
    \x03\x20$\n\x0f\n\x07\x04\x19\x03\x01\x02\0\x03\x12\x04\x83\x03'(\n\x0c\
    \n\x04\x04\x19\x02\0\x12\x04\x86\x03\x08p\n\r\n\x05\x04\x19\x02\0\x04\
    \x12\x04\x86\x03\x08\x10\n\r\n\x05\x04\x19\x02\0\x05\x12\x04\x86\x03\x11\
    \x17\n\r\n\x05\x04\x19\x02\0\x01\x12\x04\x86\x03\x18\"\n\r\n\x05\x04\x19\
    \x02\0\x03\x12\x04\x86\x03%&\n\r\n\x05\x04\x19\x02\0\x08\x12\x04\x86\x03\
    'o\n\x10\n\x08\x04\x19\x02\0\x08\xd0\x86\x03\x12\x04\x86\x03(n\n\x0c\n\
    \x04\x04\x19\x02\x01\x12\x04\x87\x03\x08B\n\r\n\x05\x04\x19\x02\x01\x04\
    \x12\x04\x87\x03\x08\x10\n\r\n\x05\x04\x19\x02\x01\x05\x12\x04\x87\x03\
    \x11\x17\n\r\n\x05\x04\x19\x02\x01\x01\x12\x04\x87\x03\x18\x1c\n\r\n\x05\
    \x04\x19\x02\x01\x03\x12\x04\x87\x03\x1f\x20\n\r\n\x05\x04\x19\x02\x01\
    \x08\x12\x04\x87\x03!A\n\x10\n\x08\x04\x19\x02\x01\x08\xd0\x86\x03\x12\
    \x04\x87\x03\"@\n\r\n\x04\x04\x19\x02\x02\x12\x05\x88\x03\x08\x8b\x02\n\
    \r\n\x05\x04\x19\x02\x02\x04\x12\x04\x88\x03\x08\x10\n\r\n\x05\x04\x19\
    \x02\x02\x05\x12\x04\x88\x03\x11\x17\n\r\n\x05\x04\x19\x02\x02\x01\x12\
    \x04\x88\x03\x18\x1e\n\r\n\x05\x04\x19\x02\x02\x03\x12\x04\x88\x03!#\n\
    \x0e\n\x05\x04\x19\x02\x02\x08\x12\x05\x88\x03$\x8a\x02\n\x11\n\x08\x04\
    \x19\x02\x02\x08\xd0\x86\x03\x12\x05\x88\x03%\x89\x02\n\x0c\n\x04\x04\
    \x19\x02\x03\x12\x04\x89\x03\x08~\n\r\n\x05\x04\x19\x02\x03\x04\x12\x04\
    \x89\x03\x08\x10\n\r\n\x05\x04\x19\x02\x03\x05\x12\x04\x89\x03\x11\x17\n\
    \r\n\x05\x04\x19\x02\x03\x01\x12\x04\x89\x03\x18\"\n\r\n\x05\x04\x19\x02\
    \x03\x03\x12\x04\x89\x03%&\n\r\n\x05\x04\x19\x02\x03\x08\x12\x04\x89\x03\
    '}\n\r\n\x05\x04\x19\x02\x03\x07\x12\x04\x89\x0323\n\x10\n\x08\x04\x19\
    \x02\x03\x08\xd0\x86\x03\x12\x04\x89\x035|\n\x0c\n\x04\x04\x19\x02\x04\
    \x12\x04\x8a\x03\x08Y\n\r\n\x05\x04\x19\x02\x04\x04\x12\x04\x8a\x03\x08\
    \x10\n\r\n\x05\x04\x19\x02\x04\x05\x12\x04\x8a\x03\x11\x17\n\r\n\x05\x04\
    \x19\x02\x04\x01\x12\x04\x8a\x03\x18%\n\r\n\x05\x04\x19\x02\x04\x03\x12\
    \x04\x8a\x03()\n\r\n\x05\x04\x19\x02\x04\x08\x12\x04\x8a\x03*X\n\x10\n\
    \x08\x04\x19\x02\x04\x08\xd0\x86\x03\x12\x04\x8a\x03+W\n\x0c\n\x04\x04\
    \x19\x02\x05\x12\x04\x8b\x03\x08R\n\r\n\x05\x04\x19\x02\x05\x04\x12\x04\
    \x8b\x03\x08\x10\n\r\n\x05\x04\x19\x02\x05\x05\x12\x04\x8b\x03\x11\x17\n\
    \r\n\x05\x04\x19\x02\x05\x01\x12\x04\x8b\x03\x18\x1d\n\r\n\x05\x04\x19\
    \x02\x05\x03\x12\x04\x8b\x03\x20!\n\r\n\x05\x04\x19\x02\x05\x08\x12\x04\
    \x8b\x03\"Q\n\x10\n\x08\x04\x19\x02\x05\x08\xd0\x86\x03\x12\x04\x8b\x03#\
    P\n\x0c\n\x04\x04\x19\x02\x06\x12\x04\x8c\x03\x08r\n\r\n\x05\x04\x19\x02\
    \x06\x04\x12\x04\x8c\x03\x08\x10\n\r\n\x05\x04\x19\x02\x06\x05\x12\x04\
    \x8c\x03\x11\x17\n\r\n\x05\x04\x19\x02\x06\x01\x12\x04\x8c\x03\x18$\n\r\
    \n\x05\x04\x19\x02\x06\x03\x12\x04\x8c\x03'(\n\r\n\x05\x04\x19\x02\x06\
    \x08\x12\x04\x8c\x03)q\n\x10\n\x08\x04\x19\x02\x06\x08\xd0\x86\x03\x12\
    \x04\x8c\x03*p\n\r\n\x04\x04\x19\x02\x07\x12\x05\x8d\x03\x08\x90\x01\n\r\
    \n\x05\x04\x19\x02\x07\x04\x12\x04\x8d\x03\x08\x10\n\r\n\x05\x04\x19\x02\
    \x07\x05\x12\x04\x8d\x03\x11\x17\n\r\n\x05\x04\x19\x02\x07\x01\x12\x04\
    \x8d\x03\x18$\n\r\n\x05\x04\x19\x02\x07\x03\x12\x04\x8d\x03'(\n\x0e\n\
    \x05\x04\x19\x02\x07\x08\x12\x05\x8d\x03)\x8f\x01\n\x11\n\x08\x04\x19\
    \x02\x07\x08\xd0\x86\x03\x12\x05\x8d\x03*\x8e\x01\n\r\n\x04\x04\x19\x02\
    \x08\x12\x05\x8e\x03\x08\xb6\x01\n\r\n\x05\x04\x19\x02\x08\x04\x12\x04\
    \x8e\x03\x08\x10\n\r\n\x05\x04\x19\x02\x08\x05\x12\x04\x8e\x03\x11\x15\n\
    \r\n\x05\x04\x19\x02\x08\x01\x12\x04\x8e\x03\x16$\n\r\n\x05\x04\x19\x02\
    \x08\x03\x12\x04\x8e\x03'(\n\x0e\n\x05\x04\x19\x02\x08\x08\x12\x05\x8e\
    \x03)\xb5\x01\n\r\n\x05\x04\x19\x02\x08\x07\x12\x04\x8e\x0348\n\x11\n\
    \x08\x04\x19\x02\x08\x08\xd0\x86\x03\x12\x05\x8e\x03:\xb4\x01\n\x0c\n\
    \x04\x04\x19\x02\t\x12\x04\x8f\x03\x08u\n\r\n\x05\x04\x19\x02\t\x04\x12\
    \x04\x8f\x03\x08\x10\n\r\n\x05\x04\x19\x02\t\x05\x12\x04\x8f\x03\x11\x17\
    \n\r\n\x05\x04\x19\x02\t\x01\x12\x04\x8f\x03\x18&\n\r\n\x05\x04\x19\x02\
    \t\x03\x12\x04\x8f\x03)*\n\r\n\x05\x04\x19\x02\t\x08\x12\x04\x8f\x03+t\n\
    \x10\n\x08\x04\x19\x02\t\x08\xd0\x86\x03\x12\x04\x8f\x03,s\n\x0c\n\x04\
    \x04\x19\x02\n\x12\x04\x90\x03\x08p\n\r\n\x05\x04\x19\x02\n\x04\x12\x04\
    \x90\x03\x08\x10\n\r\n\x05\x04\x19\x02\n\x05\x12\x04\x90\x03\x11\x17\n\r\
    \n\x05\x04\x19\x02\n\x01\x12\x04\x90\x03\x18%\n\r\n\x05\x04\x19\x02\n\
    \x03\x12\x04\x90\x03(*\n\r\n\x05\x04\x19\x02\n\x08\x12\x04\x90\x03+o\n\
    \x10\n\x08\x04\x19\x02\n\x08\xd0\x86\x03\x12\x04\x90\x03,n\n\x0c\n\x04\
    \x04\x19\x02\x0b\x12\x04\x91\x03\x08n\n\r\n\x05\x04\x19\x02\x0b\x04\x12\
    \x04\x91\x03\x08\x10\n\r\n\x05\x04\x19\x02\x0b\x05\x12\x04\x91\x03\x11\
    \x17\n\r\n\x05\x04\x19\x02\x0b\x01\x12\x04\x91\x03\x18#\n\r\n\x05\x04\
    \x19\x02\x0b\x03\x12\x04\x91\x03&(\n\r\n\x05\x04\x19\x02\x0b\x08\x12\x04\
    \x91\x03)m\n\x10\n\x08\x04\x19\x02\x0b\x08\xd0\x86\x03\x12\x04\x91\x03*l\
    \n\x0c\n\x04\x04\x19\x02\x0c\x12\x04\x92\x03\x08]\n\r\n\x05\x04\x19\x02\
    \x0c\x04\x12\x04\x92\x03\x08\x10\n\r\n\x05\x04\x19\x02\x0c\x05\x12\x04\
    \x92\x03\x11\x17\n\r\n\x05\x04\x19\x02\x0c\x01\x12\x04\x92\x03\x18\x20\n\
    \r\n\x05\x04\x19\x02\x0c\x03\x12\x04\x92\x03#%\n\r\n\x05\x04\x19\x02\x0c\
    \x08\x12\x04\x92\x03&\\\n\x10\n\x08\x04\x19\x02\x0c\x08\xd0\x86\x03\x12\
    \x04\x92\x03'[\n\x0c\n\x04\x04\x19\x02\r\x12\x04\x93\x03\x08v\n\r\n\x05\
    \x04\x19\x02\r\x04\x12\x04\x93\x03\x08\x10\n\r\n\x05\x04\x19\x02\r\x05\
    \x12\x04\x93\x03\x11\x18\n\r\n\x05\x04\x19\x02\r\x01\x12\x04\x93\x03\x19\
    .\n\r\n\x05\x04\x19\x02\r\x03\x12\x04\x93\x0313\n\r\n\x05\x04\x19\x02\r\
    \x08\x12\x04\x93\x034u\n\x10\n\x08\x04\x19\x02\r\x08\xd0\x86\x03\x12\x04\
    \x93\x035t\n\r\n\x04\x04\x19\x02\x0e\x12\x05\x94\x03\x08\xa7\x01\n\r\n\
    \x05\x04\x19\x02\x0e\x04\x12\x04\x94\x03\x08\x10\n\r\n\x05\x04\x19\x02\
    \x0e\x05\x12\x04\x94\x03\x11\x17\n\r\n\x05\x04\x19\x02\x0e\x01\x12\x04\
    \x94\x03\x18\x1c\n\r\n\x05\x04\x19\x02\x0e\x03\x12\x04\x94\x03\x1f!\n\
    \x0e\n\x05\x04\x19\x02\x0e\x08\x12\x05\x94\x03\"\xa6\x01\n\x11\n\x08\x04\
    \x19\x02\x0e\x08\xd0\x86\x03\x12\x05\x94\x03#\xa5\x01\n\r\n\x04\x04\x19\
    \x02\x0f\x12\x05\x95\x03\x08\xd1\x01\n\r\n\x05\x04\x19\x02\x0f\x04\x12\
    \x04\x95\x03\x08\x10\n\r\n\x05\x04\x19\x02\x0f\x05\x12\x04\x95\x03\x11\
    \x15\n\r\n\x05\x04\x19\x02\x0f\x01\x12\x04\x95\x03\x16/\n\r\n\x05\x04\
    \x19\x02\x0f\x03\x12\x04\x95\x0324\n\x0e\n\x05\x04\x19\x02\x0f\x08\x12\
    \x05\x95\x035\xd0\x01\n\x11\n\x08\x04\x19\x02\x0f\x08\xd0\x86\x03\x12\
    \x05\x95\x036\xcf\x01\n\r\n\x04\x04\x19\x02\x10\x12\x05\x96\x03\x08\x99\
    \x01\n\r\n\x05\x04\x19\x02\x10\x04\x12\x04\x96\x03\x08\x10\n\r\n\x05\x04\
    \x19\x02\x10\x05\x12\x04\x96\x03\x11\x17\n\r\n\x05\x04\x19\x02\x10\x01\
    \x12\x04\x96\x03\x18-\n\r\n\x05\x04\x19\x02\x10\x03\x12\x04\x96\x0302\n\
    \x0e\n\x05\x04\x19\x02\x10\x08\x12\x05\x96\x033\x98\x01\n\r\n\x05\x04\
    \x19\x02\x10\x07\x12\x04\x96\x03>?\n\x11\n\x08\x04\x19\x02\x10\x08\xd0\
    \x86\x03\x12\x05\x96\x03A\x97\x01\n\r\n\x04\x04\x19\x02\x11\x12\x05\x97\
    \x03\x08\x8e\x01\n\r\n\x05\x04\x19\x02\x11\x04\x12\x04\x97\x03\x08\x10\n\
    \r\n\x05\x04\x19\x02\x11\x05\x12\x04\x97\x03\x11\x16\n\r\n\x05\x04\x19\
    \x02\x11\x01\x12\x04\x97\x03\x17\x1f\n\r\n\x05\x04\x19\x02\x11\x03\x12\
    \x04\x97\x03\"$\n\x0e\n\x05\x04\x19\x02\x11\x08\x12\x05\x97\x03%\x8d\x01\
    \n\r\n\x05\x04\x19\x02\x11\x07\x12\x04\x97\x0301\n\x11\n\x08\x04\x19\x02\
    \x11\x08\xd0\x86\x03\x12\x05\x97\x033\x8c\x01\n\r\n\x04\x04\x19\x02\x12\
    \x12\x05\x98\x03\x08\x89\x01\n\r\n\x05\x04\x19\x02\x12\x04\x12\x04\x98\
    \x03\x08\x10\n\r\n\x05\x04\x19\x02\x12\x06\x12\x04\x98\x03\x119\n\r\n\
    \x05\x04\x19\x02\x12\x01\x12\x04\x98\x03:J\n\r\n\x05\x04\x19\x02\x12\x03\
    \x12\x04\x98\x03MO\n\x0e\n\x05\x04\x19\x02\x12\x08\x12\x05\x98\x03P\x88\
    \x01\n\x11\n\x08\x04\x19\x02\x12\x08\xd0\x86\x03\x12\x05\x98\x03Q\x87\
    \x01\n\r\n\x04\x04\x19\x02\x13\x12\x05\x99\x03\x08\xbe\x01\n\r\n\x05\x04\
    \x19\x02\x13\x04\x12\x04\x99\x03\x08\x10\n\r\n\x05\x04\x19\x02\x13\x06\
    \x12\x04\x99\x03\x11<\n\r\n\x05\x04\x19\x02\x13\x01\x12\x04\x99\x03=F\n\
    \r\n\x05\x04\x19\x02\x13\x03\x12\x04\x99\x03IK\n\x0e\n\x05\x04\x19\x02\
    \x13\x08\x12\x05\x99\x03L\xbd\x01\n\x11\n\x08\x04\x19\x02\x13\x08\xd0\
    \x86\x03\x12\x05\x99\x03M\xbc\x01\n\r\n\x04\x04\x19\x02\x14\x12\x05\x9a\
    \x03\x08\x8c\x01\n\r\n\x05\x04\x19\x02\x14\x04\x12\x04\x9a\x03\x08\x10\n\
    \r\n\x05\x04\x19\x02\x14\x05\x12\x04\x9a\x03\x11\x15\n\r\n\x05\x04\x19\
    \x02\x14\x01\x12\x04\x9a\x03\x16\x1f\n\r\n\x05\x04\x19\x02\x14\x03\x12\
    \x04\x9a\x03\"$\n\x0e\n\x05\x04\x19\x02\x14\x08\x12\x05\x9a\x03%\x8b\x01\
    \n\x11\n\x08\x04\x19\x02\x14\x08\xd0\x86\x03\x12\x05\x9a\x03&\x8a\x01\n\
    \r\n\x04\x04\x19\x02\x15\x12\x05\x9b\x03\x08\x91\x01\n\r\n\x05\x04\x19\
    \x02\x15\x04\x12\x04\x9b\x03\x08\x10\n\r\n\x05\x04\x19\x02\x15\x05\x12\
    \x04\x9b\x03\x11\x15\n\r\n\x05\x04\x19\x02\x15\x01\x12\x04\x9b\x03\x16\
    \x1e\n\r\n\x05\x04\x19\x02\x15\x03\x12\x04\x9b\x03!#\n\x0e\n\x05\x04\x19\
    \x02\x15\x08\x12\x05\x9b\x03$\x90\x01\n\x11\n\x08\x04\x19\x02\x15\x08\
    \xd0\x86\x03\x12\x05\x9b\x03%\x8f\x01\n\x0c\n\x04\x04\x19\x02\x16\x12\
    \x04\x9c\x03\x08Q\n\r\n\x05\x04\x19\x02\x16\x04\x12\x04\x9c\x03\x08\x10\
    \n\r\n\x05\x04\x19\x02\x16\x05\x12\x04\x9c\x03\x11\x15\n\r\n\x05\x04\x19\
    \x02\x16\x01\x12\x04\x9c\x03\x16&\n\r\n\x05\x04\x19\x02\x16\x03\x12\x04\
    \x9c\x03)+\n\r\n\x05\x04\x19\x02\x16\x08\x12\x04\x9c\x03,P\n\x10\n\x08\
    \x04\x19\x02\x16\x08\xd0\x86\x03\x12\x04\x9c\x03-O\n\x0c\n\x04\x04\x19\
    \x02\x17\x12\x04\x9d\x03\x08[\n\r\n\x05\x04\x19\x02\x17\x04\x12\x04\x9d\
    \x03\x08\x10\n\r\n\x05\x04\x19\x02\x17\x05\x12\x04\x9d\x03\x11\x15\n\r\n\
    \x05\x04\x19\x02\x17\x01\x12\x04\x9d\x03\x16!\n\r\n\x05\x04\x19\x02\x17\
    \x03\x12\x04\x9d\x03$&\n\r\n\x05\x04\x19\x02\x17\x08\x12\x04\x9d\x03'Z\n\
    \x10\n\x08\x04\x19\x02\x17\x08\xd0\x86\x03\x12\x04\x9d\x03(Y\n\x0c\n\x04\
    \x04\x19\x02\x18\x12\x04\x9e\x03\x08h\n\r\n\x05\x04\x19\x02\x18\x04\x12\
    \x04\x9e\x03\x08\x10\n\r\n\x05\x04\x19\x02\x18\x05\x12\x04\x9e\x03\x11\
    \x15\n\r\n\x05\x04\x19\x02\x18\x01\x12\x04\x9e\x03\x16$\n\r\n\x05\x04\
    \x19\x02\x18\x03\x12\x04\x9e\x03')\n\r\n\x05\x04\x19\x02\x18\x08\x12\x04\
    \x9e\x03*g\n\x10\n\x08\x04\x19\x02\x18\x08\xd0\x86\x03\x12\x04\x9e\x03+f\
    \n\x0c\n\x04\x04\x19\x02\x19\x12\x04\x9f\x03\x08z\n\r\n\x05\x04\x19\x02\
    \x19\x04\x12\x04\x9f\x03\x08\x10\n\r\n\x05\x04\x19\x02\x19\x05\x12\x04\
    \x9f\x03\x11\x15\n\r\n\x05\x04\x19\x02\x19\x01\x12\x04\x9f\x03\x16%\n\r\
    \n\x05\x04\x19\x02\x19\x03\x12\x04\x9f\x03(*\n\r\n\x05\x04\x19\x02\x19\
    \x08\x12\x04\x9f\x03+y\n\x10\n\x08\x04\x19\x02\x19\x08\xd0\x86\x03\x12\
    \x04\x9f\x03,x\n\x0c\n\x04\x04\x19\x02\x1a\x12\x04\xa0\x03\x08i\n\r\n\
    \x05\x04\x19\x02\x1a\x04\x12\x04\xa0\x03\x08\x10\n\r\n\x05\x04\x19\x02\
    \x1a\x05\x12\x04\xa0\x03\x11\x15\n\r\n\x05\x04\x19\x02\x1a\x01\x12\x04\
    \xa0\x03\x16%\n\r\n\x05\x04\x19\x02\x1a\x03\x12\x04\xa0\x03(*\n\r\n\x05\
    \x04\x19\x02\x1a\x08\x12\x04\xa0\x03+h\n\x10\n\x08\x04\x19\x02\x1a\x08\
    \xd0\x86\x03\x12\x04\xa0\x03,g\n\r\n\x04\x04\x19\x02\x1b\x12\x05\xa1\x03\
    \x08\x89\x01\n\r\n\x05\x04\x19\x02\x1b\x04\x12\x04\xa1\x03\x08\x10\n\r\n\
    \x05\x04\x19\x02\x1b\x05\x12\x04\xa1\x03\x11\x15\n\r\n\x05\x04\x19\x02\
    \x1b\x01\x12\x04\xa1\x03\x16.\n\r\n\x05\x04\x19\x02\x1b\x03\x12\x04\xa1\
    \x0313\n\x0e\n\x05\x04\x19\x02\x1b\x08\x12\x05\xa1\x034\x88\x01\n\x11\n\
    \x08\x04\x19\x02\x1b\x08\xd0\x86\x03\x12\x05\xa1\x035\x87\x01\n\x0c\n\
    \x04\x04\x19\x02\x1c\x12\x04\xa2\x03\x08n\n\r\n\x05\x04\x19\x02\x1c\x04\
    \x12\x04\xa2\x03\x08\x10\n\r\n\x05\x04\x19\x02\x1c\x05\x12\x04\xa2\x03\
    \x11\x15\n\r\n\x05\x04\x19\x02\x1c\x01\x12\x04\xa2\x03\x16*\n\r\n\x05\
    \x04\x19\x02\x1c\x03\x12\x04\xa2\x03-/\n\r\n\x05\x04\x19\x02\x1c\x08\x12\
    \x04\xa2\x030m\n\x10\n\x08\x04\x19\x02\x1c\x08\xd0\x86\x03\x12\x04\xa2\
    \x031l\n\x0c\n\x04\x04\x19\x02\x1d\x12\x04\xa3\x03\x08f\n\r\n\x05\x04\
    \x19\x02\x1d\x04\x12\x04\xa3\x03\x08\x10\n\r\n\x05\x04\x19\x02\x1d\x05\
    \x12\x04\xa3\x03\x11\x15\n\r\n\x05\x04\x19\x02\x1d\x01\x12\x04\xa3\x03\
    \x16%\n\r\n\x05\x04\x19\x02\x1d\x03\x12\x04\xa3\x03(*\n\r\n\x05\x04\x19\
    \x02\x1d\x08\x12\x04\xa3\x03+e\n\r\n\x05\x04\x19\x02\x1d\x07\x12\x04\xa3\
    \x036;\n\x10\n\x08\x04\x19\x02\x1d\x08\xd0\x86\x03\x12\x04\xa3\x03=d\n\r\
    \n\x04\x04\x19\x02\x1e\x12\x05\xa4\x03\x08\x8c\x01\n\r\n\x05\x04\x19\x02\
    \x1e\x04\x12\x04\xa4\x03\x08\x10\n\r\n\x05\x04\x19\x02\x1e\x05\x12\x04\
    \xa4\x03\x11\x17\n\r\n\x05\x04\x19\x02\x1e\x01\x12\x04\xa4\x03\x18-\n\r\
    \n\x05\x04\x19\x02\x1e\x03\x12\x04\xa4\x0302\n\x0e\n\x05\x04\x19\x02\x1e\
    \x08\x12\x05\xa4\x033\x8b\x01\n\x11\n\x08\x04\x19\x02\x1e\x08\xd0\x86\
    \x03\x12\x05\xa4\x034\x8a\x01\n\r\n\x04\x04\x19\x02\x1f\x12\x05\xa5\x03\
    \x08\xd8\x01\n\r\n\x05\x04\x19\x02\x1f\x04\x12\x04\xa5\x03\x08\x10\n\r\n\
    \x05\x04\x19\x02\x1f\x05\x12\x04\xa5\x03\x11\x15\n\r\n\x05\x04\x19\x02\
    \x1f\x01\x12\x04\xa5\x03\x16$\n\r\n\x05\x04\x19\x02\x1f\x03\x12\x04\xa5\
    \x03')\n\x0e\n\x05\x04\x19\x02\x1f\x08\x12\x05\xa5\x03*\xd7\x01\n\x11\n\
    \x08\x04\x19\x02\x1f\x08\xd0\x86\x03\x12\x05\xa5\x03+\xd6\x01\n\x0c\n\
    \x04\x04\x19\x02\x20\x12\x04\xa6\x03\x08i\n\r\n\x05\x04\x19\x02\x20\x04\
    \x12\x04\xa6\x03\x08\x10\n\r\n\x05\x04\x19\x02\x20\x05\x12\x04\xa6\x03\
    \x11\x15\n\r\n\x05\x04\x19\x02\x20\x01\x12\x04\xa6\x03\x16.\n\r\n\x05\
    \x04\x19\x02\x20\x03\x12\x04\xa6\x0313\n\r\n\x05\x04\x19\x02\x20\x08\x12\
    \x04\xa6\x034h\n\x10\n\x08\x04\x19\x02\x20\x08\xd0\x86\x03\x12\x04\xa6\
    \x035g\n\r\n\x04\x04\x19\x02!\x12\x05\xa7\x03\x08\xab\x01\n\r\n\x05\x04\
    \x19\x02!\x04\x12\x04\xa7\x03\x08\x10\n\r\n\x05\x04\x19\x02!\x06\x12\x04\
    \xa7\x03\x11(\n\r\n\x05\x04\x19\x02!\x01\x12\x04\xa7\x03)9\n\r\n\x05\x04\
    \x19\x02!\x03\x12\x04\xa7\x03<>\n\x0e\n\x05\x04\x19\x02!\x08\x12\x05\xa7\
    \x03?\xaa\x01\n\r\n\x05\x04\x19\x02!\x07\x12\x04\xa7\x03Jj\n\x11\n\x08\
    \x04\x19\x02!\x08\xd0\x86\x03\x12\x05\xa7\x03l\xa9\x01\n\r\n\x04\x04\x19\
    \x02\"\x12\x05\xa8\x03\x08\x84\x01\n\r\n\x05\x04\x19\x02\"\x04\x12\x04\
    \xa8\x03\x08\x10\n\r\n\x05\x04\x19\x02\"\x05\x12\x04\xa8\x03\x11\x15\n\r\
    \n\x05\x04\x19\x02\"\x01\x12\x04\xa8\x03\x16&\n\r\n\x05\x04\x19\x02\"\
    \x03\x12\x04\xa8\x03)+\n\x0e\n\x05\x04\x19\x02\"\x08\x12\x05\xa8\x03,\
    \x83\x01\n\r\n\x05\x04\x19\x02\"\x07\x12\x04\xa8\x037<\n\x11\n\x08\x04\
    \x19\x02\"\x08\xd0\x86\x03\x12\x05\xa8\x03>\x82\x01\n\x0c\n\x02\x04\x1a\
    \x12\x06\xab\x03\0\xaf\x03\x01\n\x0b\n\x03\x04\x1a\x01\x12\x04\xab\x03\
    \x08*\n\x0c\n\x04\x04\x1a\x02\0\x12\x04\xac\x03\x08x\n\r\n\x05\x04\x1a\
    \x02\0\x04\x12\x04\xac\x03\x08\x10\n\r\n\x05\x04\x1a\x02\0\x05\x12\x04\
    \xac\x03\x11\x17\n\r\n\x05\x04\x1a\x02\0\x01\x12\x04\xac\x03\x18\x1d\n\r\
    \n\x05\x04\x1a\x02\0\x03\x12\x04\xac\x03\x20!\n\r\n\x05\x04\x1a\x02\0\
    \x08\x12\x04\xac\x03\"w\n\x10\n\x08\x04\x1a\x02\0\x08\xd0\x86\x03\x12\
    \x04\xac\x03#v\n\r\n\x04\x04\x1a\x02\x01\x12\x05\xad\x03\x08\xa9\x01\n\r\
    \n\x05\x04\x1a\x02\x01\x04\x12\x04\xad\x03\x08\x10\n\r\n\x05\x04\x1a\x02\
    \x01\x06\x12\x04\xad\x03\x11&\n\r\n\x05\x04\x1a\x02\x01\x01\x12\x04\xad\
    \x03';\n\r\n\x05\x04\x1a\x02\x01\x03\x12\x04\xad\x03>?\n\x0e\n\x05\x04\
    \x1a\x02\x01\x08\x12\x05\xad\x03@\xa8\x01\n\x11\n\x08\x04\x1a\x02\x01\
    \x08\xd0\x86\x03\x12\x05\xad\x03A\xa7\x01\n\r\n\x04\x04\x1a\x02\x02\x12\
    \x05\xae\x03\x08\x9d\x01\n\r\n\x05\x04\x1a\x02\x02\x04\x12\x04\xae\x03\
    \x08\x10\n\r\n\x05\x04\x1a\x02\x02\x05\x12\x04\xae\x03\x11\x17\n\r\n\x05\
    \x04\x1a\x02\x02\x01\x12\x04\xae\x03\x18#\n\r\n\x05\x04\x1a\x02\x02\x03\
    \x12\x04\xae\x03&'\n\x0e\n\x05\x04\x1a\x02\x02\x08\x12\x05\xae\x03(\x9c\
    \x01\n\x11\n\x08\x04\x1a\x02\x02\x08\xd0\x86\x03\x12\x05\xae\x03)\x9b\
    \x01\n\x0c\n\x02\x04\x1b\x12\x06\xb1\x03\0\xb5\x03\x01\n\x0b\n\x03\x04\
    \x1b\x01\x12\x04\xb1\x03\x081\n\x0c\n\x04\x04\x1b\x02\0\x12\x04\xb2\x03\
    \x08,\n\r\n\x05\x04\x1b\x02\0\x04\x12\x04\xb2\x03\x08\x10\n\r\n\x05\x04\
    \x1b\x02\0\x05\x12\x04\xb2\x03\x11\x17\n\r\n\x05\x04\x1b\x02\0\x01\x12\
    \x04\xb2\x03\x18'\n\r\n\x05\x04\x1b\x02\0\x03\x12\x04\xb2\x03*+\n\x0c\n\
    \x04\x04\x1b\x02\x01\x12\x04\xb3\x03\x08\"\n\r\n\x05\x04\x1b\x02\x01\x04\
    \x12\x04\xb3\x03\x08\x10\n\r\n\x05\x04\x1b\x02\x01\x05\x12\x04\xb3\x03\
    \x11\x17\n\r\n\x05\x04\x1b\x02\x01\x01\x12\x04\xb3\x03\x18\x1d\n\r\n\x05\
    \x04\x1b\x02\x01\x03\x12\x04\xb3\x03\x20!\n\x0c\n\x04\x04\x1b\x02\x02\
    \x12\x04\xb4\x03\x08)\n\r\n\x05\x04\x1b\x02\x02\x04\x12\x04\xb4\x03\x08\
    \x10\n\r\n\x05\x04\x1b\x02\x02\x05\x12\x04\xb4\x03\x11\x17\n\r\n\x05\x04\
    \x1b\x02\x02\x01\x12\x04\xb4\x03\x18$\n\r\n\x05\x04\x1b\x02\x02\x03\x12\
    \x04\xb4\x03'(\n\x0c\n\x02\x04\x1c\x12\x06\xb7\x03\0\xb8\x03\x01\n\x0b\n\
    \x03\x04\x1c\x01\x12\x04\xb7\x03\x082\n\x0c\n\x02\x04\x1d\x12\x06\xba\
    \x03\0\xbe\x03\x01\n\x0b\n\x03\x04\x1d\x01\x12\x04\xba\x03\x084\n\x0c\n\
    \x04\x04\x1d\x02\0\x12\x04\xbb\x03\x08,\n\r\n\x05\x04\x1d\x02\0\x04\x12\
    \x04\xbb\x03\x08\x10\n\r\n\x05\x04\x1d\x02\0\x05\x12\x04\xbb\x03\x11\x17\
    \n\r\n\x05\x04\x1d\x02\0\x01\x12\x04\xbb\x03\x18'\n\r\n\x05\x04\x1d\x02\
    \0\x03\x12\x04\xbb\x03*+\n\x0c\n\x04\x04\x1d\x02\x01\x12\x04\xbc\x03\x08\
    \"\n\r\n\x05\x04\x1d\x02\x01\x04\x12\x04\xbc\x03\x08\x10\n\r\n\x05\x04\
    \x1d\x02\x01\x05\x12\x04\xbc\x03\x11\x17\n\r\n\x05\x04\x1d\x02\x01\x01\
    \x12\x04\xbc\x03\x18\x1d\n\r\n\x05\x04\x1d\x02\x01\x03\x12\x04\xbc\x03\
    \x20!\n\x0c\n\x04\x04\x1d\x02\x02\x12\x04\xbd\x03\x08)\n\r\n\x05\x04\x1d\
    \x02\x02\x04\x12\x04\xbd\x03\x08\x10\n\r\n\x05\x04\x1d\x02\x02\x05\x12\
    \x04\xbd\x03\x11\x17\n\r\n\x05\x04\x1d\x02\x02\x01\x12\x04\xbd\x03\x18$\
    \n\r\n\x05\x04\x1d\x02\x02\x03\x12\x04\xbd\x03'(\n\x0c\n\x02\x04\x1e\x12\
    \x06\xc0\x03\0\xc1\x03\x01\n\x0b\n\x03\x04\x1e\x01\x12\x04\xc0\x03\x085\
    \n\x0c\n\x02\x04\x1f\x12\x06\xc3\x03\0\xc5\x03\x01\n\x0b\n\x03\x04\x1f\
    \x01\x12\x04\xc3\x03\x082\n\x0c\n\x04\x04\x1f\x02\0\x12\x04\xc4\x03\x08,\
    \n\r\n\x05\x04\x1f\x02\0\x04\x12\x04\xc4\x03\x08\x10\n\r\n\x05\x04\x1f\
    \x02\0\x05\x12\x04\xc4\x03\x11\x17\n\r\n\x05\x04\x1f\x02\0\x01\x12\x04\
    \xc4\x03\x18'\n\r\n\x05\x04\x1f\x02\0\x03\x12\x04\xc4\x03*+\n\x0c\n\x02\
    \x04\x20\x12\x06\xc7\x03\0\xce\x03\x01\n\x0b\n\x03\x04\x20\x01\x12\x04\
    \xc7\x03\x083\n\x0e\n\x04\x04\x20\x03\0\x12\x06\xc8\x03\x08\xcb\x03\t\n\
    \r\n\x05\x04\x20\x03\0\x01\x12\x04\xc8\x03\x10\x1f\n\x0e\n\x06\x04\x20\
    \x03\0\x02\0\x12\x04\xc9\x03\x10*\n\x0f\n\x07\x04\x20\x03\0\x02\0\x04\
    \x12\x04\xc9\x03\x10\x18\n\x0f\n\x07\x04\x20\x03\0\x02\0\x05\x12\x04\xc9\
    \x03\x19\x1f\n\x0f\n\x07\x04\x20\x03\0\x02\0\x01\x12\x04\xc9\x03\x20%\n\
    \x0f\n\x07\x04\x20\x03\0\x02\0\x03\x12\x04\xc9\x03()\n\x0e\n\x06\x04\x20\
    \x03\0\x02\x01\x12\x04\xca\x03\x101\n\x0f\n\x07\x04\x20\x03\0\x02\x01\
    \x04\x12\x04\xca\x03\x10\x18\n\x0f\n\x07\x04\x20\x03\0\x02\x01\x05\x12\
    \x04\xca\x03\x19\x1f\n\x0f\n\x07\x04\x20\x03\0\x02\x01\x01\x12\x04\xca\
    \x03\x20,\n\x0f\n\x07\x04\x20\x03\0\x02\x01\x03\x12\x04\xca\x03/0\n\x0c\
    \n\x04\x04\x20\x02\0\x12\x04\xcd\x03\x08d\n\r\n\x05\x04\x20\x02\0\x04\
    \x12\x04\xcd\x03\x08\x10\n\r\n\x05\x04\x20\x02\0\x06\x12\x04\xcd\x03\x11\
    M\n\r\n\x05\x04\x20\x02\0\x01\x12\x04\xcd\x03N_\n\r\n\x05\x04\x20\x02\0\
    \x03\x12\x04\xcd\x03bc\n\x0c\n\x02\x04!\x12\x06\xd0\x03\0\xd3\x03\x01\n\
    \x0b\n\x03\x04!\x01\x12\x04\xd0\x03\x084\n\x0c\n\x04\x04!\x02\0\x12\x04\
    \xd1\x03\x08\"\n\r\n\x05\x04!\x02\0\x04\x12\x04\xd1\x03\x08\x10\n\r\n\
    \x05\x04!\x02\0\x05\x12\x04\xd1\x03\x11\x17\n\r\n\x05\x04!\x02\0\x01\x12\
    \x04\xd1\x03\x18\x1d\n\r\n\x05\x04!\x02\0\x03\x12\x04\xd1\x03\x20!\n\x0c\
    \n\x04\x04!\x02\x01\x12\x04\xd2\x03\x08-\n\r\n\x05\x04!\x02\x01\x04\x12\
    \x04\xd2\x03\x08\x10\n\r\n\x05\x04!\x02\x01\x05\x12\x04\xd2\x03\x11\x17\
    \n\r\n\x05\x04!\x02\x01\x01\x12\x04\xd2\x03\x18(\n\r\n\x05\x04!\x02\x01\
    \x03\x12\x04\xd2\x03+,\n\x0c\n\x02\x04\"\x12\x06\xd5\x03\0\xd6\x03\x01\n\
    \x0b\n\x03\x04\"\x01\x12\x04\xd5\x03\x085\n\x0c\n\x02\x04#\x12\x06\xd8\
    \x03\0\xdb\x03\x01\n\x0b\n\x03\x04#\x01\x12\x04\xd8\x03\x083\n\x0c\n\x04\
    \x04#\x02\0\x12\x04\xd9\x03\x08\"\n\r\n\x05\x04#\x02\0\x04\x12\x04\xd9\
    \x03\x08\x10\n\r\n\x05\x04#\x02\0\x05\x12\x04\xd9\x03\x11\x17\n\r\n\x05\
    \x04#\x02\0\x01\x12\x04\xd9\x03\x18\x1d\n\r\n\x05\x04#\x02\0\x03\x12\x04\
    \xd9\x03\x20!\n\x0c\n\x04\x04#\x02\x01\x12\x04\xda\x03\x08-\n\r\n\x05\
    \x04#\x02\x01\x04\x12\x04\xda\x03\x08\x10\n\r\n\x05\x04#\x02\x01\x05\x12\
    \x04\xda\x03\x11\x17\n\r\n\x05\x04#\x02\x01\x01\x12\x04\xda\x03\x18(\n\r\
    \n\x05\x04#\x02\x01\x03\x12\x04\xda\x03+,\n\x0c\n\x02\x04$\x12\x06\xdd\
    \x03\0\xde\x03\x01\n\x0b\n\x03\x04$\x01\x12\x04\xdd\x03\x084\n\x0c\n\x02\
    \x04%\x12\x06\xe0\x03\0\xe2\x03\x01\n\x0b\n\x03\x04%\x01\x12\x04\xe0\x03\
    \x08A\n\x0c\n\x04\x04%\x02\0\x12\x04\xe1\x03\x08\"\n\r\n\x05\x04%\x02\0\
    \x04\x12\x04\xe1\x03\x08\x10\n\r\n\x05\x04%\x02\0\x05\x12\x04\xe1\x03\
    \x11\x17\n\r\n\x05\x04%\x02\0\x01\x12\x04\xe1\x03\x18\x1d\n\r\n\x05\x04%\
    \x02\0\x03\x12\x04\xe1\x03\x20!\n\x0c\n\x02\x04&\x12\x06\xe4\x03\0\xe5\
    \x03\x01\n\x0b\n\x03\x04&\x01\x12\x04\xe4\x03\x08B\n\x0c\n\x02\x04'\x12\
    \x06\xe7\x03\0\xef\x03\x01\n\x0b\n\x03\x04'\x01\x12\x04\xe7\x03\x08>\n\
    \x0e\n\x04\x04'\x03\0\x12\x06\xe8\x03\x08\xeb\x03\t\n\r\n\x05\x04'\x03\0\
    \x01\x12\x04\xe8\x03\x10%\n\x0e\n\x06\x04'\x03\0\x02\0\x12\x04\xe9\x03\
    \x104\n\x0f\n\x07\x04'\x03\0\x02\0\x04\x12\x04\xe9\x03\x10\x18\n\x0f\n\
    \x07\x04'\x03\0\x02\0\x05\x12\x04\xe9\x03\x19\x1f\n\x0f\n\x07\x04'\x03\0\
    \x02\0\x01\x12\x04\xe9\x03\x20/\n\x0f\n\x07\x04'\x03\0\x02\0\x03\x12\x04\
    \xe9\x0323\n\x0e\n\x06\x04'\x03\0\x02\x01\x12\x04\xea\x03\x102\n\x0f\n\
    \x07\x04'\x03\0\x02\x01\x04\x12\x04\xea\x03\x10\x18\n\x0f\n\x07\x04'\x03\
    \0\x02\x01\x05\x12\x04\xea\x03\x19\x1e\n\x0f\n\x07\x04'\x03\0\x02\x01\
    \x01\x12\x04\xea\x03\x1f-\n\x0f\n\x07\x04'\x03\0\x02\x01\x03\x12\x04\xea\
    \x0301\n\x0c\n\x04\x04'\x02\0\x12\x04\xed\x03\x08\"\n\r\n\x05\x04'\x02\0\
    \x04\x12\x04\xed\x03\x08\x10\n\r\n\x05\x04'\x02\0\x05\x12\x04\xed\x03\
    \x11\x17\n\r\n\x05\x04'\x02\0\x01\x12\x04\xed\x03\x18\x1d\n\r\n\x05\x04'\
    \x02\0\x03\x12\x04\xed\x03\x20!\n\x0c\n\x04\x04'\x02\x01\x12\x04\xee\x03\
    \x08{\n\r\n\x05\x04'\x02\x01\x04\x12\x04\xee\x03\x08\x10\n\r\n\x05\x04'\
    \x02\x01\x06\x12\x04\xee\x03\x11^\n\r\n\x05\x04'\x02\x01\x01\x12\x04\xee\
    \x03_v\n\r\n\x05\x04'\x02\x01\x03\x12\x04\xee\x03yz\n\x0c\n\x02\x04(\x12\
    \x06\xf1\x03\0\xf2\x03\x01\n\x0b\n\x03\x04(\x01\x12\x04\xf1\x03\x08?\n\
    \x0c\n\x02\x04)\x12\x06\xf4\x03\0\xf7\x03\x01\n\x0b\n\x03\x04)\x01\x12\
    \x04\xf4\x03\x08'\n\x0c\n\x04\x04)\x02\0\x12\x04\xf5\x03\x08,\n\r\n\x05\
    \x04)\x02\0\x04\x12\x04\xf5\x03\x08\x10\n\r\n\x05\x04)\x02\0\x05\x12\x04\
    \xf5\x03\x11\x17\n\r\n\x05\x04)\x02\0\x01\x12\x04\xf5\x03\x18'\n\r\n\x05\
    \x04)\x02\0\x03\x12\x04\xf5\x03*+\n\x0c\n\x04\x04)\x02\x01\x12\x04\xf6\
    \x03\x082\n\r\n\x05\x04)\x02\x01\x04\x12\x04\xf6\x03\x08\x10\n\r\n\x05\
    \x04)\x02\x01\x05\x12\x04\xf6\x03\x11\x17\n\r\n\x05\x04)\x02\x01\x01\x12\
    \x04\xf6\x03\x18-\n\r\n\x05\x04)\x02\x01\x03\x12\x04\xf6\x0301\n\x0c\n\
    \x02\x04*\x12\x06\xf9\x03\0\xfa\x03\x01\n\x0b\n\x03\x04*\x01\x12\x04\xf9\
    \x03\x08(\n\x0c\n\x02\x04+\x12\x06\xfc\x03\0\xff\x03\x01\n\x0b\n\x03\x04\
    +\x01\x12\x04\xfc\x03\x08*\n\x0c\n\x04\x04+\x02\0\x12\x04\xfd\x03\x08,\n\
    \r\n\x05\x04+\x02\0\x04\x12\x04\xfd\x03\x08\x10\n\r\n\x05\x04+\x02\0\x05\
    \x12\x04\xfd\x03\x11\x17\n\r\n\x05\x04+\x02\0\x01\x12\x04\xfd\x03\x18'\n\
    \r\n\x05\x04+\x02\0\x03\x12\x04\xfd\x03*+\n\x0c\n\x04\x04+\x02\x01\x12\
    \x04\xfe\x03\x082\n\r\n\x05\x04+\x02\x01\x04\x12\x04\xfe\x03\x08\x10\n\r\
    \n\x05\x04+\x02\x01\x05\x12\x04\xfe\x03\x11\x17\n\r\n\x05\x04+\x02\x01\
    \x01\x12\x04\xfe\x03\x18-\n\r\n\x05\x04+\x02\x01\x03\x12\x04\xfe\x0301\n\
    \x0c\n\x02\x04,\x12\x06\x81\x04\0\x82\x04\x01\n\x0b\n\x03\x04,\x01\x12\
    \x04\x81\x04\x08+\n\x0c\n\x02\x04-\x12\x06\x84\x04\0\x86\x04\x01\n\x0b\n\
    \x03\x04-\x01\x12\x04\x84\x04\x081\n\x0c\n\x04\x04-\x02\0\x12\x04\x85\
    \x04\x08.\n\r\n\x05\x04-\x02\0\x04\x12\x04\x85\x04\x08\x10\n\r\n\x05\x04\
    -\x02\0\x05\x12\x04\x85\x04\x11\x18\n\r\n\x05\x04-\x02\0\x01\x12\x04\x85\
    \x04\x19)\n\r\n\x05\x04-\x02\0\x03\x12\x04\x85\x04,-\n\x0c\n\x02\x04.\
    \x12\x06\x88\x04\0\x91\x04\x01\n\x0b\n\x03\x04.\x01\x12\x04\x88\x04\x082\
    \n\x0e\n\x04\x04.\x03\0\x12\x06\x89\x04\x08\x8e\x04\t\n\r\n\x05\x04.\x03\
    \0\x01\x12\x04\x89\x04\x10\x1b\n\x0e\n\x06\x04.\x03\0\x02\0\x12\x04\x8a\
    \x04\x105\n\x0f\n\x07\x04.\x03\0\x02\0\x04\x12\x04\x8a\x04\x10\x18\n\x0f\
    \n\x07\x04.\x03\0\x02\0\x05\x12\x04\x8a\x04\x19\x20\n\x0f\n\x07\x04.\x03\
    \0\x02\0\x01\x12\x04\x8a\x04!0\n\x0f\n\x07\x04.\x03\0\x02\0\x03\x12\x04\
    \x8a\x0434\n\x0e\n\x06\x04.\x03\0\x02\x01\x12\x04\x8b\x04\x10+\n\x0f\n\
    \x07\x04.\x03\0\x02\x01\x04\x12\x04\x8b\x04\x10\x18\n\x0f\n\x07\x04.\x03\
    \0\x02\x01\x05\x12\x04\x8b\x04\x19\x1d\n\x0f\n\x07\x04.\x03\0\x02\x01\
    \x01\x12\x04\x8b\x04\x1e&\n\x0f\n\x07\x04.\x03\0\x02\x01\x03\x12\x04\x8b\
    \x04)*\n\x0e\n\x06\x04.\x03\0\x02\x02\x12\x04\x8c\x04\x10/\n\x0f\n\x07\
    \x04.\x03\0\x02\x02\x04\x12\x04\x8c\x04\x10\x18\n\x0f\n\x07\x04.\x03\0\
    \x02\x02\x05\x12\x04\x8c\x04\x19\x1d\n\x0f\n\x07\x04.\x03\0\x02\x02\x01\
    \x12\x04\x8c\x04\x1e*\n\x0f\n\x07\x04.\x03\0\x02\x02\x03\x12\x04\x8c\x04\
    -.\n\x0e\n\x06\x04.\x03\0\x02\x03\x12\x04\x8d\x04\x10+\n\x0f\n\x07\x04.\
    \x03\0\x02\x03\x04\x12\x04\x8d\x04\x10\x18\n\x0f\n\x07\x04.\x03\0\x02\
    \x03\x05\x12\x04\x8d\x04\x19\x1d\n\x0f\n\x07\x04.\x03\0\x02\x03\x01\x12\
    \x04\x8d\x04\x1e&\n\x0f\n\x07\x04.\x03\0\x02\x03\x03\x12\x04\x8d\x04)*\n\
    \x0c\n\x04\x04.\x02\0\x12\x04\x90\x04\x08W\n\r\n\x05\x04.\x02\0\x04\x12\
    \x04\x90\x04\x08\x10\n\r\n\x05\x04.\x02\0\x06\x12\x04\x90\x04\x11H\n\r\n\
    \x05\x04.\x02\0\x01\x12\x04\x90\x04IR\n\r\n\x05\x04.\x02\0\x03\x12\x04\
    \x90\x04UV\n\x0c\n\x02\x04/\x12\x06\x93\x04\0\xa2\x04\x01\n\x0b\n\x03\
    \x04/\x01\x12\x04\x93\x04\x082\n\x0e\n\x04\x04/\x03\0\x12\x06\x94\x04\
    \x08\x98\x04\t\n\r\n\x05\x04/\x03\0\x01\x12\x04\x94\x04\x10\x1c\n\x0e\n\
    \x06\x04/\x03\0\x02\0\x12\x04\x95\x04\x10k\n\x0f\n\x07\x04/\x03\0\x02\0\
    \x04\x12\x04\x95\x04\x10\x18\n\x0f\n\x07\x04/\x03\0\x02\0\x06\x12\x04\
    \x95\x04\x190\n\x0f\n\x07\x04/\x03\0\x02\0\x01\x12\x04\x95\x0419\n\x0f\n\
    \x07\x04/\x03\0\x02\0\x03\x12\x04\x95\x04<=\n\x0f\n\x07\x04/\x03\0\x02\0\
    \x08\x12\x04\x95\x04>j\n\x0f\n\x07\x04/\x03\0\x02\0\x07\x12\x04\x95\x04I\
    i\n\x0e\n\x06\x04/\x03\0\x02\x01\x12\x04\x96\x04\x10T\n\x0f\n\x07\x04/\
    \x03\0\x02\x01\x04\x12\x04\x96\x04\x10\x18\n\x0f\n\x07\x04/\x03\0\x02\
    \x01\x05\x12\x04\x96\x04\x19\x20\n\x0f\n\x07\x04/\x03\0\x02\x01\x01\x12\
    \x04\x96\x04!.\n\x0f\n\x07\x04/\x03\0\x02\x01\x03\x12\x04\x96\x0412\n\
    \x0f\n\x07\x04/\x03\0\x02\x01\x08\x12\x04\x96\x043S\n\x12\n\n\x04/\x03\0\
    \x02\x01\x08\xd0\x86\x03\x12\x04\x96\x044R\n\x0e\n\x06\x04/\x03\0\x02\
    \x02\x12\x04\x97\x04\x10`\n\x0f\n\x07\x04/\x03\0\x02\x02\x04\x12\x04\x97\
    \x04\x10\x18\n\x0f\n\x07\x04/\x03\0\x02\x02\x05\x12\x04\x97\x04\x19\x1f\
    \n\x0f\n\x07\x04/\x03\0\x02\x02\x01\x12\x04\x97\x04\x20-\n\x0f\n\x07\x04\
    /\x03\0\x02\x02\x03\x12\x04\x97\x0401\n\x0f\n\x07\x04/\x03\0\x02\x02\x08\
    \x12\x04\x97\x042_\n\x12\n\n\x04/\x03\0\x02\x02\x08\xd0\x86\x03\x12\x04\
    \x97\x043^\n\x0c\n\x04\x04/\x02\0\x12\x04\x9a\x04\x08e\n\r\n\x05\x04/\
    \x02\0\x04\x12\x04\x9a\x04\x08\x10\n\r\n\x05\x04/\x02\0\x05\x12\x04\x9a\
    \x04\x11\x18\n\r\n\x05\x04/\x02\0\x01\x12\x04\x9a\x04\x19*\n\r\n\x05\x04\
    /\x02\0\x03\x12\x04\x9a\x04-.\n\r\n\x05\x04/\x02\0\x08\x12\x04\x9a\x04/d\
    \n\x10\n\x08\x04/\x02\0\x08\xd0\x86\x03\x12\x04\x9a\x040c\n\x0c\n\x04\
    \x04/\x02\x01\x12\x04\x9b\x04\x08#\n\r\n\x05\x04/\x02\x01\x04\x12\x04\
    \x9b\x04\x08\x10\n\r\n\x05\x04/\x02\x01\x05\x12\x04\x9b\x04\x11\x17\n\r\
    \n\x05\x04/\x02\x01\x01\x12\x04\x9b\x04\x18\x1e\n\r\n\x05\x04/\x02\x01\
    \x03\x12\x04\x9b\x04!\"\n\x0c\n\x04\x04/\x02\x02\x12\x04\x9c\x04\x08_\n\
    \r\n\x05\x04/\x02\x02\x04\x12\x04\x9c\x04\x08\x10\n\r\n\x05\x04/\x02\x02\
    \x05\x12\x04\x9c\x04\x11\x18\n\r\n\x05\x04/\x02\x02\x01\x12\x04\x9c\x04\
    \x19&\n\r\n\x05\x04/\x02\x02\x03\x12\x04\x9c\x04)*\n\r\n\x05\x04/\x02\
    \x02\x08\x12\x04\x9c\x04+^\n\x10\n\x08\x04/\x02\x02\x08\xd0\x86\x03\x12\
    \x04\x9c\x04,]\n\x0c\n\x04\x04/\x02\x03\x12\x04\x9d\x04\x08&\n\r\n\x05\
    \x04/\x02\x03\x04\x12\x04\x9d\x04\x08\x10\n\r\n\x05\x04/\x02\x03\x05\x12\
    \x04\x9d\x04\x11\x17\n\r\n\x05\x04/\x02\x03\x01\x12\x04\x9d\x04\x18!\n\r\
    \n\x05\x04/\x02\x03\x03\x12\x04\x9d\x04$%\n\x0c\n\x04\x04/\x02\x04\x12\
    \x04\x9e\x04\x08-\n\r\n\x05\x04/\x02\x04\x04\x12\x04\x9e\x04\x08\x10\n\r\
    \n\x05\x04/\x02\x04\x05\x12\x04\x9e\x04\x11\x17\n\r\n\x05\x04/\x02\x04\
    \x01\x12\x04\x9e\x04\x18(\n\r\n\x05\x04/\x02\x04\x03\x12\x04\x9e\x04+,\n\
    \x0c\n\x04\x04/\x02\x05\x12\x04\x9f\x04\x08p\n\r\n\x05\x04/\x02\x05\x04\
    \x12\x04\x9f\x04\x08\x10\n\r\n\x05\x04/\x02\x05\x05\x12\x04\x9f\x04\x11\
    \x15\n\r\n\x05\x04/\x02\x05\x01\x12\x04\x9f\x04\x16&\n\r\n\x05\x04/\x02\
    \x05\x03\x12\x04\x9f\x04)*\n\r\n\x05\x04/\x02\x05\x08\x12\x04\x9f\x04+o\
    \n\x10\n\x08\x04/\x02\x05\x08\xd0\x86\x03\x12\x04\x9f\x04,n\n\x0c\n\x04\
    \x04/\x02\x06\x12\x04\xa0\x04\x08X\n\r\n\x05\x04/\x02\x06\x04\x12\x04\
    \xa0\x04\x08\x10\n\r\n\x05\x04/\x02\x06\x05\x12\x04\xa0\x04\x11\x17\n\r\
    \n\x05\x04/\x02\x06\x01\x12\x04\xa0\x04\x18%\n\r\n\x05\x04/\x02\x06\x03\
    \x12\x04\xa0\x04()\n\r\n\x05\x04/\x02\x06\x08\x12\x04\xa0\x04*W\n\x10\n\
    \x08\x04/\x02\x06\x08\xd0\x86\x03\x12\x04\xa0\x04+V\n\r\n\x04\x04/\x02\
    \x07\x12\x05\xa1\x04\x08\x9e\x01\n\r\n\x05\x04/\x02\x07\x04\x12\x04\xa1\
    \x04\x08\x10\n\r\n\x05\x04/\x02\x07\x06\x12\x04\xa1\x04\x11I\n\r\n\x05\
    \x04/\x02\x07\x01\x12\x04\xa1\x04JS\n\r\n\x05\x04/\x02\x07\x03\x12\x04\
    \xa1\x04VW\n\x0e\n\x05\x04/\x02\x07\x08\x12\x05\xa1\x04X\x9d\x01\n\x11\n\
    \x08\x04/\x02\x07\x08\xd0\x86\x03\x12\x05\xa1\x04Y\x9c\x01\n\x0c\n\x02\
    \x040\x12\x06\xa4\x04\0\xa7\x04\x01\n\x0b\n\x03\x040\x01\x12\x04\xa4\x04\
    \x084\n\x0c\n\x04\x040\x02\0\x12\x04\xa5\x04\x08e\n\r\n\x05\x040\x02\0\
    \x04\x12\x04\xa5\x04\x08\x10\n\r\n\x05\x040\x02\0\x05\x12\x04\xa5\x04\
    \x11\x18\n\r\n\x05\x040\x02\0\x01\x12\x04\xa5\x04\x19*\n\r\n\x05\x040\
    \x02\0\x03\x12\x04\xa5\x04-.\n\r\n\x05\x040\x02\0\x08\x12\x04\xa5\x04/d\
    \n\x10\n\x08\x040\x02\0\x08\xd0\x86\x03\x12\x04\xa5\x040c\n\x0c\n\x04\
    \x040\x02\x01\x12\x04\xa6\x04\x08#\n\r\n\x05\x040\x02\x01\x04\x12\x04\
    \xa6\x04\x08\x10\n\r\n\x05\x040\x02\x01\x05\x12\x04\xa6\x04\x11\x17\n\r\
    \n\x05\x040\x02\x01\x01\x12\x04\xa6\x04\x18\x1e\n\r\n\x05\x040\x02\x01\
    \x03\x12\x04\xa6\x04!\"\n\x0c\n\x02\x041\x12\x06\xa9\x04\0\xac\x04\x01\n\
    \x0b\n\x03\x041\x01\x12\x04\xa9\x04\x086\n\x0c\n\x04\x041\x02\0\x12\x04\
    \xaa\x04\x08e\n\r\n\x05\x041\x02\0\x04\x12\x04\xaa\x04\x08\x10\n\r\n\x05\
    \x041\x02\0\x05\x12\x04\xaa\x04\x11\x18\n\r\n\x05\x041\x02\0\x01\x12\x04\
    \xaa\x04\x19*\n\r\n\x05\x041\x02\0\x03\x12\x04\xaa\x04-.\n\r\n\x05\x041\
    \x02\0\x08\x12\x04\xaa\x04/d\n\x10\n\x08\x041\x02\0\x08\xd0\x86\x03\x12\
    \x04\xaa\x040c\n\x0c\n\x04\x041\x02\x01\x12\x04\xab\x04\x08#\n\r\n\x05\
    \x041\x02\x01\x04\x12\x04\xab\x04\x08\x10\n\r\n\x05\x041\x02\x01\x05\x12\
    \x04\xab\x04\x11\x17\n\r\n\x05\x041\x02\x01\x01\x12\x04\xab\x04\x18\x1e\
    \n\r\n\x05\x041\x02\x01\x03\x12\x04\xab\x04!\"\n\x0c\n\x02\x06\0\x12\x06\
    \xae\x04\0\x8c\x05\x01\n\x0b\n\x03\x06\0\x01\x12\x04\xae\x04\x08\x15\n\
    \x0b\n\x03\x06\0\x03\x12\x04\xaf\x04\x08Q\n\x0e\n\x06\x06\0\x03\xd0\x86\
    \x03\x12\x04\xaf\x04\x08Q\n\x0e\n\x04\x06\0\x02\0\x12\x06\xb1\x04\x08\
    \xb3\x04\t\n\r\n\x05\x06\0\x02\0\x01\x12\x04\xb1\x04\x0c\x15\n\r\n\x05\
    \x06\0\x02\0\x02\x12\x04\xb1\x04\x178\n\r\n\x05\x06\0\x02\0\x03\x12\x04\
    \xb1\x04Ce\n\r\n\x05\x06\0\x02\0\x04\x12\x04\xb2\x04\x10Z\n\x10\n\x08\
    \x06\0\x02\0\x04\xd0\x86\x03\x12\x04\xb2\x04\x10Z\n\x0e\n\x04\x06\0\x02\
    \x01\x12\x06\xb5\x04\x08\xb7\x04\t\n\r\n\x05\x06\0\x02\x01\x01\x12\x04\
    \xb5\x04\x0c\x17\n\r\n\x05\x06\0\x02\x01\x02\x12\x04\xb5\x04\x19<\n\r\n\
    \x05\x06\0\x02\x01\x03\x12\x04\xb5\x04Gk\n\r\n\x05\x06\0\x02\x01\x04\x12\
    \x04\xb6\x04\x10^\n\x10\n\x08\x06\0\x02\x01\x04\xd0\x86\x03\x12\x04\xb6\
    \x04\x10^\n\x0e\n\x04\x06\0\x02\x02\x12\x06\xb9\x04\x08\xbb\x04\t\n\r\n\
    \x05\x06\0\x02\x02\x01\x12\x04\xb9\x04\x0c\x18\n\r\n\x05\x06\0\x02\x02\
    \x02\x12\x04\xb9\x04\x1a>\n\r\n\x05\x06\0\x02\x02\x03\x12\x04\xb9\x04In\
    \n\r\n\x05\x06\0\x02\x02\x04\x12\x04\xba\x04\x10f\n\x10\n\x08\x06\0\x02\
    \x02\x04\xd0\x86\x03\x12\x04\xba\x04\x10f\n\x0e\n\x04\x06\0\x02\x03\x12\
    \x06\xbd\x04\x08\xbf\x04\t\n\r\n\x05\x06\0\x02\x03\x01\x12\x04\xbd\x04\
    \x0c\x13\n\r\n\x05\x06\0\x02\x03\x02\x12\x04\xbd\x04\x154\n\r\n\x05\x06\
    \0\x02\x03\x03\x12\x04\xbd\x04?_\n\r\n\x05\x06\0\x02\x03\x04\x12\x04\xbe\
    \x04\x10_\n\x10\n\x08\x06\0\x02\x03\x04\xd0\x86\x03\x12\x04\xbe\x04\x10_\
    \n\x0e\n\x04\x06\0\x02\x04\x12\x06\xc1\x04\x08\xc3\x04\t\n\r\n\x05\x06\0\
    \x02\x04\x01\x12\x04\xc1\x04\x0c\x16\n\r\n\x05\x06\0\x02\x04\x02\x12\x04\
    \xc1\x04\x18:\n\r\n\x05\x06\0\x02\x04\x03\x12\x04\xc1\x04Eh\n\r\n\x05\
    \x06\0\x02\x04\x04\x12\x04\xc2\x04\x10f\n\x10\n\x08\x06\0\x02\x04\x04\
    \xd0\x86\x03\x12\x04\xc2\x04\x10f\n\x0e\n\x04\x06\0\x02\x05\x12\x06\xc5\
    \x04\x08\xc7\x04\t\n\r\n\x05\x06\0\x02\x05\x01\x12\x04\xc5\x04\x0c\x17\n\
    \r\n\x05\x06\0\x02\x05\x02\x12\x04\xc5\x04\x19<\n\r\n\x05\x06\0\x02\x05\
    \x03\x12\x04\xc5\x04Gk\n\r\n\x05\x06\0\x02\x05\x04\x12\x04\xc6\x04\x10f\
    \n\x10\n\x08\x06\0\x02\x05\x04\xd0\x86\x03\x12\x04\xc6\x04\x10f\n\x0e\n\
    \x04\x06\0\x02\x06\x12\x06\xc9\x04\x08\xcb\x04\t\n\r\n\x05\x06\0\x02\x06\
    \x01\x12\x04\xc9\x04\x0c\x18\n\r\n\x05\x06\0\x02\x06\x02\x12\x04\xc9\x04\
    \x1a>\n\r\n\x05\x06\0\x02\x06\x03\x12\x04\xc9\x04In\n\r\n\x05\x06\0\x02\
    \x06\x04\x12\x04\xca\x04\x10U\n\x10\n\x08\x06\0\x02\x06\x04\xd0\x86\x03\
    \x12\x04\xca\x04\x10U\n\x0e\n\x04\x06\0\x02\x07\x12\x06\xcd\x04\x08\xcf\
    \x04\t\n\r\n\x05\x06\0\x02\x07\x01\x12\x04\xcd\x04\x0c&\n\r\n\x05\x06\0\
    \x02\x07\x02\x12\x04\xcd\x04(Z\n\x0e\n\x05\x06\0\x02\x07\x03\x12\x05\xcd\
    \x04e\x98\x01\n\r\n\x05\x06\0\x02\x07\x04\x12\x04\xce\x04\x10{\n\x10\n\
    \x08\x06\0\x02\x07\x04\xd0\x86\x03\x12\x04\xce\x04\x10{\n\x0e\n\x04\x06\
    \0\x02\x08\x12\x06\xd1\x04\x08\xd3\x04\t\n\r\n\x05\x06\0\x02\x08\x01\x12\
    \x04\xd1\x04\x0c\x12\n\r\n\x05\x06\0\x02\x08\x02\x12\x04\xd1\x04\x142\n\
    \r\n\x05\x06\0\x02\x08\x03\x12\x04\xd1\x04=\\\n\r\n\x05\x06\0\x02\x08\
    \x04\x12\x04\xd2\x04\x10\\\n\x10\n\x08\x06\0\x02\x08\x04\xd0\x86\x03\x12\
    \x04\xd2\x04\x10\\\n\x0e\n\x04\x06\0\x02\t\x12\x06\xd5\x04\x08\xd7\x04\t\
    \n\r\n\x05\x06\0\x02\t\x01\x12\x04\xd5\x04\x0c!\n\r\n\x05\x06\0\x02\t\
    \x02\x12\x04\xd5\x04#P\n\x0e\n\x05\x06\0\x02\t\x03\x12\x05\xd5\x04[\x89\
    \x01\n\r\n\x05\x06\0\x02\t\x04\x12\x04\xd6\x04\x10u\n\x10\n\x08\x06\0\
    \x02\t\x04\xd0\x86\x03\x12\x04\xd6\x04\x10u\n\x0e\n\x04\x06\0\x02\n\x12\
    \x06\xd9\x04\x08\xdb\x04\t\n\r\n\x05\x06\0\x02\n\x01\x12\x04\xd9\x04\x0c\
    \x1c\n\r\n\x05\x06\0\x02\n\x02\x12\x04\xd9\x04\x1eF\n\r\n\x05\x06\0\x02\
    \n\x03\x12\x04\xd9\x04Qz\n\r\n\x05\x06\0\x02\n\x04\x12\x04\xda\x04\x10h\
    \n\x10\n\x08\x06\0\x02\n\x04\xd0\x86\x03\x12\x04\xda\x04\x10h\n\x0e\n\
    \x04\x06\0\x02\x0b\x12\x06\xdd\x04\x08\xdf\x04\t\n\r\n\x05\x06\0\x02\x0b\
    \x01\x12\x04\xdd\x04\x0c\x1e\n\r\n\x05\x06\0\x02\x0b\x02\x12\x04\xdd\x04\
    \x20J\n\x0e\n\x05\x06\0\x02\x0b\x03\x12\x05\xdd\x04U\x80\x01\n\r\n\x05\
    \x06\0\x02\x0b\x04\x12\x04\xde\x04\x10V\n\x10\n\x08\x06\0\x02\x0b\x04\
    \xd0\x86\x03\x12\x04\xde\x04\x10V\n\x0e\n\x04\x06\0\x02\x0c\x12\x06\xe1\
    \x04\x08\xe3\x04\t\n\r\n\x05\x06\0\x02\x0c\x01\x12\x04\xe1\x04\x0c\x16\n\
    \r\n\x05\x06\0\x02\x0c\x02\x12\x04\xe1\x04\x18:\n\r\n\x05\x06\0\x02\x0c\
    \x03\x12\x04\xe1\x04Eh\n\r\n\x05\x06\0\x02\x0c\x04\x12\x04\xe2\x04\x10\\\
    \n\x10\n\x08\x06\0\x02\x0c\x04\xd0\x86\x03\x12\x04\xe2\x04\x10\\\n\x0e\n\
    \x04\x06\0\x02\r\x12\x06\xe5\x04\x08\xe7\x04\t\n\r\n\x05\x06\0\x02\r\x01\
    \x12\x04\xe5\x04\x0c\x1e\n\r\n\x05\x06\0\x02\r\x02\x12\x04\xe5\x04\x20J\
    \n\x0e\n\x05\x06\0\x02\r\x03\x12\x05\xe5\x04U\x80\x01\n\r\n\x05\x06\0\
    \x02\r\x04\x12\x04\xe6\x04\x10q\n\x10\n\x08\x06\0\x02\r\x04\xd0\x86\x03\
    \x12\x04\xe6\x04\x10q\n\x0e\n\x04\x06\0\x02\x0e\x12\x06\xe9\x04\x08\xeb\
    \x04\t\n\r\n\x05\x06\0\x02\x0e\x01\x12\x04\xe9\x04\x0c!\n\r\n\x05\x06\0\
    \x02\x0e\x02\x12\x04\xe9\x04#P\n\x0e\n\x05\x06\0\x02\x0e\x03\x12\x05\xe9\
    \x04[\x89\x01\n\r\n\x05\x06\0\x02\x0e\x04\x12\x04\xea\x04\x10s\n\x10\n\
    \x08\x06\0\x02\x0e\x04\xd0\x86\x03\x12\x04\xea\x04\x10s\n\x0e\n\x04\x06\
    \0\x02\x0f\x12\x06\xed\x04\x08\xef\x04\t\n\r\n\x05\x06\0\x02\x0f\x01\x12\
    \x04\xed\x04\x0c\x1f\n\r\n\x05\x06\0\x02\x0f\x02\x12\x04\xed\x04!L\n\x0e\
    \n\x05\x06\0\x02\x0f\x03\x12\x05\xed\x04W\x83\x01\n\r\n\x05\x06\0\x02\
    \x0f\x04\x12\x04\xee\x04\x10n\n\x10\n\x08\x06\0\x02\x0f\x04\xd0\x86\x03\
    \x12\x04\xee\x04\x10n\n\x0e\n\x04\x06\0\x02\x10\x12\x06\xf1\x04\x08\xf3\
    \x04\t\n\r\n\x05\x06\0\x02\x10\x01\x12\x04\xf1\x04\x0c!\n\r\n\x05\x06\0\
    \x02\x10\x02\x12\x04\xf1\x04#P\n\x0e\n\x05\x06\0\x02\x10\x03\x12\x05\xf1\
    \x04[\x89\x01\n\r\n\x05\x06\0\x02\x10\x04\x12\x04\xf2\x04\x10h\n\x10\n\
    \x08\x06\0\x02\x10\x04\xd0\x86\x03\x12\x04\xf2\x04\x10h\n\x0e\n\x04\x06\
    \0\x02\x11\x12\x06\xf5\x04\x08\xf7\x04\t\n\r\n\x05\x06\0\x02\x11\x01\x12\
    \x04\xf5\x04\x0c\x20\n\r\n\x05\x06\0\x02\x11\x02\x12\x04\xf5\x04\"N\n\
    \x0e\n\x05\x06\0\x02\x11\x03\x12\x05\xf5\x04Y\x86\x01\n\r\n\x05\x06\0\
    \x02\x11\x04\x12\x04\xf6\x04\x10h\n\x10\n\x08\x06\0\x02\x11\x04\xd0\x86\
    \x03\x12\x04\xf6\x04\x10h\n\x0e\n\x04\x06\0\x02\x12\x12\x06\xf9\x04\x08\
    \xfb\x04\t\n\r\n\x05\x06\0\x02\x12\x01\x12\x04\xf9\x04\x0c.\n\r\n\x05\
    \x06\0\x02\x12\x02\x12\x04\xf9\x040j\n\x0e\n\x05\x06\0\x02\x12\x03\x12\
    \x05\xf9\x04u\xb0\x01\n\r\n\x05\x06\0\x02\x12\x04\x12\x04\xfa\x04\x10{\n\
    \x10\n\x08\x06\0\x02\x12\x04\xd0\x86\x03\x12\x04\xfa\x04\x10{\n\x0e\n\
    \x04\x06\0\x02\x13\x12\x06\xfd\x04\x08\xff\x04\t\n\r\n\x05\x06\0\x02\x13\
    \x01\x12\x04\xfd\x04\x0c+\n\r\n\x05\x06\0\x02\x13\x02\x12\x04\xfd\x04-d\
    \n\x0e\n\x05\x06\0\x02\x13\x03\x12\x05\xfd\x04o\xa7\x01\n\x0e\n\x05\x06\
    \0\x02\x13\x04\x12\x05\xfe\x04\x10\xae\x01\n\x11\n\x08\x06\0\x02\x13\x04\
    \xd0\x86\x03\x12\x05\xfe\x04\x10\xae\x01\n\x0e\n\x04\x06\0\x02\x14\x12\
    \x06\x81\x05\x08\x83\x05\t\n\r\n\x05\x06\0\x02\x14\x01\x12\x04\x81\x05\
    \x0c\x14\n\r\n\x05\x06\0\x02\x14\x02\x12\x04\x81\x05\x166\n\r\n\x05\x06\
    \0\x02\x14\x03\x12\x04\x81\x05Ab\n\r\n\x05\x06\0\x02\x14\x04\x12\x04\x82\
    \x05\x10k\n\x10\n\x08\x06\0\x02\x14\x04\xd0\x86\x03\x12\x04\x82\x05\x10k\
    \n\x0e\n\x04\x06\0\x02\x15\x12\x06\x85\x05\x08\x87\x05\t\n\r\n\x05\x06\0\
    \x02\x15\x01\x12\x04\x85\x05\x0c\x17\n\r\n\x05\x06\0\x02\x15\x02\x12\x04\
    \x85\x05\x19<\n\r\n\x05\x06\0\x02\x15\x03\x12\x04\x85\x05Gk\n\r\n\x05\
    \x06\0\x02\x15\x04\x12\x04\x86\x05\x10l\n\x10\n\x08\x06\0\x02\x15\x04\
    \xd0\x86\x03\x12\x04\x86\x05\x10l\n\x0e\n\x04\x06\0\x02\x16\x12\x06\x89\
    \x05\x08\x8b\x05\t\n\r\n\x05\x06\0\x02\x16\x01\x12\x04\x89\x05\x0c\x1e\n\
    \r\n\x05\x06\0\x02\x16\x02\x12\x04\x89\x05\x20J\n\x0e\n\x05\x06\0\x02\
    \x16\x03\x12\x05\x89\x05U\x80\x01\n\r\n\x05\x06\0\x02\x16\x04\x12\x04\
    \x8a\x05\x10F\n\x10\n\x08\x06\0\x02\x16\x04\xd0\x86\x03\x12\x04\x8a\x05\
    \x10F\n\x0c\n\x02\x06\x01\x12\x06\x8e\x05\0\x9d\x05\x01\n\x0b\n\x03\x06\
    \x01\x01\x12\x04\x8e\x05\x08\x1b\n\x0b\n\x03\x06\x01\x03\x12\x04\x8f\x05\
    \x08M\n\x0e\n\x06\x06\x01\x03\xd0\x86\x03\x12\x04\x8f\x05\x08M\n\x0b\n\
    \x03\x06\x01\x03\x12\x04\x90\x05\x08K\n\x0e\n\x06\x06\x01\x03\xd8\x86\
    \x03\x12\x04\x90\x05\x08K\n\x0e\n\x04\x06\x01\x02\0\x12\x06\x92\x05\x08\
    \x94\x05\t\n\r\n\x05\x06\x01\x02\0\x01\x12\x04\x92\x05\x0c\x20\n\r\n\x05\
    \x06\x01\x02\0\x02\x12\x04\x92\x05\"M\n\r\n\x05\x06\x01\x02\0\x03\x12\
    \x04\x92\x05Xc\n\r\n\x05\x06\x01\x02\0\x04\x12\x04\x93\x05\x10n\n\x10\n\
    \x08\x06\x01\x02\0\x04\xd0\x86\x03\x12\x04\x93\x05\x10n\n\x0e\n\x04\x06\
    \x01\x02\x01\x12\x06\x96\x05\x08\x98\x05\t\n\r\n\x05\x06\x01\x02\x01\x01\
    \x12\x04\x96\x05\x0c\"\n\r\n\x05\x06\x01\x02\x01\x02\x12\x04\x96\x05$Q\n\
    \r\n\x05\x06\x01\x02\x01\x03\x12\x04\x96\x05\\g\n\r\n\x05\x06\x01\x02\
    \x01\x04\x12\x04\x97\x05\x10r\n\x10\n\x08\x06\x01\x02\x01\x04\xd0\x86\
    \x03\x12\x04\x97\x05\x10r\n\x0e\n\x04\x06\x01\x02\x02\x12\x06\x9a\x05\
    \x08\x9c\x05\t\n\r\n\x05\x06\x01\x02\x02\x01\x12\x04\x9a\x05\x0c\x1d\n\r\
    \n\x05\x06\x01\x02\x02\x02\x12\x04\x9a\x05\x1fN\n\r\n\x05\x06\x01\x02\
    \x02\x03\x12\x04\x9a\x05Yd\n\r\n\x05\x06\x01\x02\x02\x04\x12\x04\x9b\x05\
    \x10n\n\x10\n\x08\x06\x01\x02\x02\x04\xd0\x86\x03\x12\x04\x9b\x05\x10n\
";

static file_descriptor_proto_lazy: ::protobuf::rt::LazyV2<::protobuf::descriptor::FileDescriptorProto> = ::protobuf::rt::LazyV2::INIT;

fn parse_descriptor_proto() -> ::protobuf::descriptor::FileDescriptorProto {
    ::protobuf::Message::parse_from_bytes(file_descriptor_proto_data).unwrap()
}

pub fn file_descriptor_proto() -> &'static ::protobuf::descriptor::FileDescriptorProto {
    file_descriptor_proto_lazy.get(|| {
        parse_descriptor_proto()
    })
}