// <auto-generated>
//     Generated by the protocol buffer compiler.  DO NOT EDIT!
//     source: configuration.proto
// </auto-generated>
#pragma warning disable 1591, 0612, 3021, 8981
#region Designer generated code

using pb = global::Google.Protobuf;
using pbc = global::Google.Protobuf.Collections;
using pbr = global::Google.Protobuf.Reflection;
using scg = global::System.Collections.Generic;
namespace FilterListManager {

  /// <summary>Holder for reflection information generated from configuration.proto</summary>
  public static partial class ConfigurationReflection {

    #region Descriptor
    /// <summary>File descriptor for configuration.proto</summary>
    public static pbr::FileDescriptor Descriptor {
      get { return descriptor; }
    }
    private static pbr::FileDescriptor descriptor;

    static ConfigurationReflection() {
      byte[] descriptorData = global::System.Convert.FromBase64String(
          string.Concat(
            "ChNjb25maWd1cmF0aW9uLnByb3RvEhNmaWx0ZXJfbGlzdF9tYW5hZ2VyIi0K",
            "GEZpbHRlcnNDb21waWxhdGlvblBvbGljeRIRCgljb25zdGFudHMYASADKAki",
            "3gUKDUNvbmZpZ3VyYXRpb24SPQoQZmlsdGVyX2xpc3RfdHlwZRgBIAEoDjIj",
            "LmZpbHRlcl9saXN0X21hbmFnZXIuRmlsdGVyTGlzdFR5cGUSHgoRd29ya2lu",
            "Z19kaXJlY3RvcnkYAiABKAlIAIgBARIOCgZsb2NhbGUYAyABKAkSLgomZGVm",
            "YXVsdF9maWx0ZXJfbGlzdF9leHBpcmVzX3BlcmlvZF9zZWMYBCABKAUSVgoa",
            "ZmlsdGVyc19jb21waWxhdGlvbl9wb2xpY3kYBSABKAsyLS5maWx0ZXJfbGlz",
            "dF9tYW5hZ2VyLkZpbHRlcnNDb21waWxhdGlvblBvbGljeUgBiAEBEhQKDG1l",
            "dGFkYXRhX3VybBgGIAEoCRIcChRtZXRhZGF0YV9sb2NhbGVzX3VybBgHIAEo",
            "CRIaChJyZXF1ZXN0X3RpbWVvdXRfbXMYCCABKAUSHQoVYXV0b19saWZ0X3Vw",
            "X2RhdGFiYXNlGAkgASgIEkQKEnJlcXVlc3RfcHJveHlfbW9kZRgKIAEoDjIo",
            "LmZpbHRlcl9saXN0X21hbmFnZXIuUmF3UmVxdWVzdFByb3h5TW9kZRIhChly",
            "ZXF1ZXN0X2N1c3RvbV9wcm94eV9hZGRyGAsgASgJEhAKCGFwcF9uYW1lGAwg",
            "ASgJEg8KB3ZlcnNpb24YDSABKAkSLAokc2hvdWxkX2lnbm9yZV9leHBpcmVz",
            "X2Zvcl9sb2NhbF91cmxzGA4gASgIEhoKDWludGVncml0eV9rZXkYDyABKAlI",
            "AogBARIhChlmaWx0ZXJfdXBkYXRlX2NvbmN1cnJlbmN5GBAgASgFEicKH2Zp",
            "bHRlcl91cGRhdGVfZGlzcGF0Y2hfZGVsYXlfbXMYESABKAVCFAoSX3dvcmtp",
            "bmdfZGlyZWN0b3J5Qh0KG19maWx0ZXJzX2NvbXBpbGF0aW9uX3BvbGljeUIQ",
            "Cg5faW50ZWdyaXR5X2tleSoxCg5GaWx0ZXJMaXN0VHlwZRIMCghTVEFOREFS",
            "RBAAEgcKA0ROUxABEggKBE1JU0MQAipPChNSYXdSZXF1ZXN0UHJveHlNb2Rl",
            "EhQKEFVTRV9TWVNURU1fUFJPWFkQABIMCghOT19QUk9YWRABEhQKEFVTRV9D",
            "VVNUT01fUFJPWFkQAkIwChhjb20uYWRndWFyZC5mbG0ucHJvdG9idWZCEkNv",
            "bmZpZ3VyYXRpb25Qcm90b1ABYgZwcm90bzM="));
      descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
          new pbr::FileDescriptor[] { },
          new pbr::GeneratedClrTypeInfo(new[] {typeof(global::FilterListManager.FilterListType), typeof(global::FilterListManager.RawRequestProxyMode), }, null, new pbr::GeneratedClrTypeInfo[] {
            new pbr::GeneratedClrTypeInfo(typeof(global::FilterListManager.FiltersCompilationPolicy), global::FilterListManager.FiltersCompilationPolicy.Parser, new[]{ "Constants" }, null, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::FilterListManager.Configuration), global::FilterListManager.Configuration.Parser, new[]{ "FilterListType", "WorkingDirectory", "Locale", "DefaultFilterListExpiresPeriodSec", "FiltersCompilationPolicy", "MetadataUrl", "MetadataLocalesUrl", "RequestTimeoutMs", "AutoLiftUpDatabase", "RequestProxyMode", "RequestCustomProxyAddr", "AppName", "Version", "ShouldIgnoreExpiresForLocalUrls", "IntegrityKey", "FilterUpdateConcurrency", "FilterUpdateDispatchDelayMs" }, new[]{ "WorkingDirectory", "FiltersCompilationPolicy", "IntegrityKey" }, null, null, null)
          }));
    }
    #endregion

  }
  #region Enums
  public enum FilterListType {
    [pbr::OriginalName("STANDARD")] Standard = 0,
    [pbr::OriginalName("DNS")] Dns = 1,
    [pbr::OriginalName("MISC")] Misc = 2,
  }

  /// <summary>
  /// FLM Requests proxy mode
  /// </summary>
  public enum RawRequestProxyMode {
    /// <summary>
    /// System proxy will be used
    /// </summary>
    [pbr::OriginalName("USE_SYSTEM_PROXY")] UseSystemProxy = 0,
    /// <summary>
    /// All proxies disabled
    /// </summary>
    [pbr::OriginalName("NO_PROXY")] NoProxy = 1,
    /// <summary>
    /// Use custom proxy
    /// </summary>
    [pbr::OriginalName("USE_CUSTOM_PROXY")] UseCustomProxy = 2,
  }

  #endregion

  #region Messages
  [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")]
  public sealed partial class FiltersCompilationPolicy : pb::IMessage<FiltersCompilationPolicy>
  #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      , pb::IBufferMessage
  #endif
  {
    private static readonly pb::MessageParser<FiltersCompilationPolicy> _parser = new pb::MessageParser<FiltersCompilationPolicy>(() => new FiltersCompilationPolicy());
    private pb::UnknownFieldSet _unknownFields;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pb::MessageParser<FiltersCompilationPolicy> Parser { get { return _parser; } }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::FilterListManager.ConfigurationReflection.Descriptor.MessageTypes[0]; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    pbr::MessageDescriptor pb::IMessage.Descriptor {
      get { return Descriptor; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public FiltersCompilationPolicy() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public FiltersCompilationPolicy(FiltersCompilationPolicy other) : this() {
      constants_ = other.constants_.Clone();
      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public FiltersCompilationPolicy Clone() {
      return new FiltersCompilationPolicy(this);
    }

    /// <summary>Field number for the "constants" field.</summary>
    public const int ConstantsFieldNumber = 1;
    private static readonly pb::FieldCodec<string> _repeated_constants_codec
        = pb::FieldCodec.ForString(10);
    private readonly pbc::RepeatedField<string> constants_ = new pbc::RepeatedField<string>();
    /// <summary>
    /// List of literal constants for filters conditional compilation.
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public pbc::RepeatedField<string> Constants {
      get { return constants_; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override bool Equals(object other) {
      return Equals(other as FiltersCompilationPolicy);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Equals(FiltersCompilationPolicy other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if(!constants_.Equals(other.constants_)) return false;
      return Equals(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override int GetHashCode() {
      int hash = 1;
      hash ^= constants_.GetHashCode();
      if (_unknownFields != null) {
        hash ^= _unknownFields.GetHashCode();
      }
      return hash;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override string ToString() {
      return pb::JsonFormatter.ToDiagnosticString(this);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void WriteTo(pb::CodedOutputStream output) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      output.WriteRawMessage(this);
    #else
      constants_.WriteTo(output, _repeated_constants_codec);
      if (_unknownFields != null) {
        _unknownFields.WriteTo(output);
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
      constants_.WriteTo(ref output, _repeated_constants_codec);
      if (_unknownFields != null) {
        _unknownFields.WriteTo(ref output);
      }
    }
    #endif

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public int CalculateSize() {
      int size = 0;
      size += constants_.CalculateSize(_repeated_constants_codec);
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(FiltersCompilationPolicy other) {
      if (other == null) {
        return;
      }
      constants_.Add(other.constants_);
      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(pb::CodedInputStream input) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      input.ReadRawMessage(this);
    #else
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
          case 10: {
            constants_.AddEntriesFrom(input, _repeated_constants_codec);
            break;
          }
        }
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
            break;
          case 10: {
            constants_.AddEntriesFrom(ref input, _repeated_constants_codec);
            break;
          }
        }
      }
    }
    #endif

  }

  [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")]
  public sealed partial class Configuration : pb::IMessage<Configuration>
  #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      , pb::IBufferMessage
  #endif
  {
    private static readonly pb::MessageParser<Configuration> _parser = new pb::MessageParser<Configuration>(() => new Configuration());
    private pb::UnknownFieldSet _unknownFields;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pb::MessageParser<Configuration> Parser { get { return _parser; } }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::FilterListManager.ConfigurationReflection.Descriptor.MessageTypes[1]; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    pbr::MessageDescriptor pb::IMessage.Descriptor {
      get { return Descriptor; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public Configuration() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public Configuration(Configuration other) : this() {
      filterListType_ = other.filterListType_;
      workingDirectory_ = other.workingDirectory_;
      locale_ = other.locale_;
      defaultFilterListExpiresPeriodSec_ = other.defaultFilterListExpiresPeriodSec_;
      filtersCompilationPolicy_ = other.filtersCompilationPolicy_ != null ? other.filtersCompilationPolicy_.Clone() : null;
      metadataUrl_ = other.metadataUrl_;
      metadataLocalesUrl_ = other.metadataLocalesUrl_;
      requestTimeoutMs_ = other.requestTimeoutMs_;
      autoLiftUpDatabase_ = other.autoLiftUpDatabase_;
      requestProxyMode_ = other.requestProxyMode_;
      requestCustomProxyAddr_ = other.requestCustomProxyAddr_;
      appName_ = other.appName_;
      version_ = other.version_;
      shouldIgnoreExpiresForLocalUrls_ = other.shouldIgnoreExpiresForLocalUrls_;
      integrityKey_ = other.integrityKey_;
      filterUpdateConcurrency_ = other.filterUpdateConcurrency_;
      filterUpdateDispatchDelayMs_ = other.filterUpdateDispatchDelayMs_;
      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public Configuration Clone() {
      return new Configuration(this);
    }

    /// <summary>Field number for the "filter_list_type" field.</summary>
    public const int FilterListTypeFieldNumber = 1;
    private global::FilterListManager.FilterListType filterListType_ = global::FilterListManager.FilterListType.Standard;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::FilterListManager.FilterListType FilterListType {
      get { return filterListType_; }
      set {
        filterListType_ = value;
      }
    }

    /// <summary>Field number for the "working_directory" field.</summary>
    public const int WorkingDirectoryFieldNumber = 2;
    private readonly static string WorkingDirectoryDefaultValue = "";

    private string workingDirectory_;
    /// <summary>
    /// Absolute path for library working directory.
    /// This will be used for database operating.
    /// If value is "None", `cwd` will be used.
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public string WorkingDirectory {
      get { return workingDirectory_ ?? WorkingDirectoryDefaultValue; }
      set {
        workingDirectory_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }
    /// <summary>Gets whether the "working_directory" field is set</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool HasWorkingDirectory {
      get { return workingDirectory_ != null; }
    }
    /// <summary>Clears the value of the "working_directory" field</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void ClearWorkingDirectory() {
      workingDirectory_ = null;
    }

    /// <summary>Field number for the "locale" field.</summary>
    public const int LocaleFieldNumber = 3;
    private string locale_ = "";
    /// <summary>
    /// Locale that needs to be used to extract localized names and descriptions.
    /// Locale `en-GB` will be normalized to internal `en_GB` representation.
    /// Default value: en.
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public string Locale {
      get { return locale_; }
      set {
        locale_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    /// <summary>Field number for the "default_filter_list_expires_period_sec" field.</summary>
    public const int DefaultFilterListExpiresPeriodSecFieldNumber = 4;
    private int defaultFilterListExpiresPeriodSec_;
    /// <summary>
    /// Default period for expires in seconds (unless specified in "Expires", or its value is too small).
    /// Default value: 86400 (1 day).
    /// Values &lt; 3600 will be clamped to 3600.
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public int DefaultFilterListExpiresPeriodSec {
      get { return defaultFilterListExpiresPeriodSec_; }
      set {
        defaultFilterListExpiresPeriodSec_ = value;
      }
    }

    /// <summary>Field number for the "filters_compilation_policy" field.</summary>
    public const int FiltersCompilationPolicyFieldNumber = 5;
    private global::FilterListManager.FiltersCompilationPolicy filtersCompilationPolicy_;
    /// <summary>
    /// Settings for filters compilation or collection from compiled parts.
    /// 
    /// ### Compilation
    /// During the update, each filter will be "compiled" into main filter and its includes.
    /// Main filter remains unchanged. But in includes, (include, if/else/endif) directives will be resolved, using this policy. 
    /// Recursive includes will be inlined.
    /// 
    /// ### Collection
    /// When you get filters, they will be collected from compiled parts (main filter + includes).
    /// All directives in main filter will be resolved, using this policy, and includes will be injected. 
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::FilterListManager.FiltersCompilationPolicy FiltersCompilationPolicy {
      get { return filtersCompilationPolicy_; }
      set {
        filtersCompilationPolicy_ = value;
      }
    }

    /// <summary>Field number for the "metadata_url" field.</summary>
    public const int MetadataUrlFieldNumber = 6;
    private string metadataUrl_ = "";
    /// <summary>
    /// URL of the index (filters.json) file.
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public string MetadataUrl {
      get { return metadataUrl_; }
      set {
        metadataUrl_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    /// <summary>Field number for the "metadata_locales_url" field.</summary>
    public const int MetadataLocalesUrlFieldNumber = 7;
    private string metadataLocalesUrl_ = "";
    /// <summary>
    /// URL of the locales (filters_i18n.json) file.
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public string MetadataLocalesUrl {
      get { return metadataLocalesUrl_; }
      set {
        metadataLocalesUrl_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    /// <summary>Field number for the "request_timeout_ms" field.</summary>
    public const int RequestTimeoutMsFieldNumber = 8;
    private int requestTimeoutMs_;
    /// <summary>
    /// Requests timeouts in milliseconds. Default value 60000 (60 seconds).
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public int RequestTimeoutMs {
      get { return requestTimeoutMs_; }
      set {
        requestTimeoutMs_ = value;
      }
    }

    /// <summary>Field number for the "auto_lift_up_database" field.</summary>
    public const int AutoLiftUpDatabaseFieldNumber = 9;
    private bool autoLiftUpDatabase_;
    /// <summary>
    /// “Uplifting” a database is a set of measures that brings the database up to date:
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool AutoLiftUpDatabase {
      get { return autoLiftUpDatabase_; }
      set {
        autoLiftUpDatabase_ = value;
      }
    }

    /// <summary>Field number for the "request_proxy_mode" field.</summary>
    public const int RequestProxyModeFieldNumber = 10;
    private global::FilterListManager.RawRequestProxyMode requestProxyMode_ = global::FilterListManager.RawRequestProxyMode.UseSystemProxy;
    /// <summary>
    /// Proxy mode
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::FilterListManager.RawRequestProxyMode RequestProxyMode {
      get { return requestProxyMode_; }
      set {
        requestProxyMode_ = value;
      }
    }

    /// <summary>Field number for the "request_custom_proxy_addr" field.</summary>
    public const int RequestCustomProxyAddrFieldNumber = 11;
    private string requestCustomProxyAddr_ = "";
    /// <summary>
    /// Custom proxy addr for requests
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public string RequestCustomProxyAddr {
      get { return requestCustomProxyAddr_; }
      set {
        requestCustomProxyAddr_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    /// <summary>Field number for the "app_name" field.</summary>
    public const int AppNameFieldNumber = 12;
    private string appName_ = "";
    /// <summary>
    /// Client app name
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public string AppName {
      get { return appName_; }
      set {
        appName_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    /// <summary>Field number for the "version" field.</summary>
    public const int VersionFieldNumber = 13;
    private string version_ = "";
    /// <summary>
    /// Client app version
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public string Version {
      get { return version_; }
      set {
        version_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    /// <summary>Field number for the "should_ignore_expires_for_local_urls" field.</summary>
    public const int ShouldIgnoreExpiresForLocalUrlsFieldNumber = 14;
    private bool shouldIgnoreExpiresForLocalUrls_;
    /// <summary>
    /// Should ignore expires for local urls during update
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool ShouldIgnoreExpiresForLocalUrls {
      get { return shouldIgnoreExpiresForLocalUrls_; }
      set {
        shouldIgnoreExpiresForLocalUrls_ = value;
      }
    }

    /// <summary>Field number for the "integrity_key" field.</summary>
    public const int IntegrityKeyFieldNumber = 15;
    private readonly static string IntegrityKeyDefaultValue = "";

    private string integrityKey_;
    /// <summary>
    /// Optional key for signing and verifying integrity of filter rules.
    /// If set, rules will be signed on write and verified on read.
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public string IntegrityKey {
      get { return integrityKey_ ?? IntegrityKeyDefaultValue; }
      set {
        integrityKey_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }
    /// <summary>Gets whether the "integrity_key" field is set</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool HasIntegrityKey {
      get { return integrityKey_ != null; }
    }
    /// <summary>Clears the value of the "integrity_key" field</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void ClearIntegrityKey() {
      integrityKey_ = null;
    }

    /// <summary>Field number for the "filter_update_concurrency" field.</summary>
    public const int FilterUpdateConcurrencyFieldNumber = 16;
    private int filterUpdateConcurrency_;
    /// <summary>
    /// Maximum number of concurrent threads used when downloading and compiling
    /// filter lists during an update.
    /// Default value: 16. Values of 0 will be treated as 1.
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public int FilterUpdateConcurrency {
      get { return filterUpdateConcurrency_; }
      set {
        filterUpdateConcurrency_ = value;
      }
    }

    /// <summary>Field number for the "filter_update_dispatch_delay_ms" field.</summary>
    public const int FilterUpdateDispatchDelayMsFieldNumber = 17;
    private int filterUpdateDispatchDelayMs_;
    /// <summary>
    /// Minimum delay in milliseconds between consecutive filter download
    /// dispatches during a concurrent update. Helps avoid HTTP 429.
    /// Default value: 60.
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public int FilterUpdateDispatchDelayMs {
      get { return filterUpdateDispatchDelayMs_; }
      set {
        filterUpdateDispatchDelayMs_ = value;
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override bool Equals(object other) {
      return Equals(other as Configuration);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Equals(Configuration other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (FilterListType != other.FilterListType) return false;
      if (WorkingDirectory != other.WorkingDirectory) return false;
      if (Locale != other.Locale) return false;
      if (DefaultFilterListExpiresPeriodSec != other.DefaultFilterListExpiresPeriodSec) return false;
      if (!object.Equals(FiltersCompilationPolicy, other.FiltersCompilationPolicy)) return false;
      if (MetadataUrl != other.MetadataUrl) return false;
      if (MetadataLocalesUrl != other.MetadataLocalesUrl) return false;
      if (RequestTimeoutMs != other.RequestTimeoutMs) return false;
      if (AutoLiftUpDatabase != other.AutoLiftUpDatabase) return false;
      if (RequestProxyMode != other.RequestProxyMode) return false;
      if (RequestCustomProxyAddr != other.RequestCustomProxyAddr) return false;
      if (AppName != other.AppName) return false;
      if (Version != other.Version) return false;
      if (ShouldIgnoreExpiresForLocalUrls != other.ShouldIgnoreExpiresForLocalUrls) return false;
      if (IntegrityKey != other.IntegrityKey) return false;
      if (FilterUpdateConcurrency != other.FilterUpdateConcurrency) return false;
      if (FilterUpdateDispatchDelayMs != other.FilterUpdateDispatchDelayMs) return false;
      return Equals(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override int GetHashCode() {
      int hash = 1;
      if (FilterListType != global::FilterListManager.FilterListType.Standard) hash ^= FilterListType.GetHashCode();
      if (HasWorkingDirectory) hash ^= WorkingDirectory.GetHashCode();
      if (Locale.Length != 0) hash ^= Locale.GetHashCode();
      if (DefaultFilterListExpiresPeriodSec != 0) hash ^= DefaultFilterListExpiresPeriodSec.GetHashCode();
      if (filtersCompilationPolicy_ != null) hash ^= FiltersCompilationPolicy.GetHashCode();
      if (MetadataUrl.Length != 0) hash ^= MetadataUrl.GetHashCode();
      if (MetadataLocalesUrl.Length != 0) hash ^= MetadataLocalesUrl.GetHashCode();
      if (RequestTimeoutMs != 0) hash ^= RequestTimeoutMs.GetHashCode();
      if (AutoLiftUpDatabase != false) hash ^= AutoLiftUpDatabase.GetHashCode();
      if (RequestProxyMode != global::FilterListManager.RawRequestProxyMode.UseSystemProxy) hash ^= RequestProxyMode.GetHashCode();
      if (RequestCustomProxyAddr.Length != 0) hash ^= RequestCustomProxyAddr.GetHashCode();
      if (AppName.Length != 0) hash ^= AppName.GetHashCode();
      if (Version.Length != 0) hash ^= Version.GetHashCode();
      if (ShouldIgnoreExpiresForLocalUrls != false) hash ^= ShouldIgnoreExpiresForLocalUrls.GetHashCode();
      if (HasIntegrityKey) hash ^= IntegrityKey.GetHashCode();
      if (FilterUpdateConcurrency != 0) hash ^= FilterUpdateConcurrency.GetHashCode();
      if (FilterUpdateDispatchDelayMs != 0) hash ^= FilterUpdateDispatchDelayMs.GetHashCode();
      if (_unknownFields != null) {
        hash ^= _unknownFields.GetHashCode();
      }
      return hash;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override string ToString() {
      return pb::JsonFormatter.ToDiagnosticString(this);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void WriteTo(pb::CodedOutputStream output) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      output.WriteRawMessage(this);
    #else
      if (FilterListType != global::FilterListManager.FilterListType.Standard) {
        output.WriteRawTag(8);
        output.WriteEnum((int) FilterListType);
      }
      if (HasWorkingDirectory) {
        output.WriteRawTag(18);
        output.WriteString(WorkingDirectory);
      }
      if (Locale.Length != 0) {
        output.WriteRawTag(26);
        output.WriteString(Locale);
      }
      if (DefaultFilterListExpiresPeriodSec != 0) {
        output.WriteRawTag(32);
        output.WriteInt32(DefaultFilterListExpiresPeriodSec);
      }
      if (filtersCompilationPolicy_ != null) {
        output.WriteRawTag(42);
        output.WriteMessage(FiltersCompilationPolicy);
      }
      if (MetadataUrl.Length != 0) {
        output.WriteRawTag(50);
        output.WriteString(MetadataUrl);
      }
      if (MetadataLocalesUrl.Length != 0) {
        output.WriteRawTag(58);
        output.WriteString(MetadataLocalesUrl);
      }
      if (RequestTimeoutMs != 0) {
        output.WriteRawTag(64);
        output.WriteInt32(RequestTimeoutMs);
      }
      if (AutoLiftUpDatabase != false) {
        output.WriteRawTag(72);
        output.WriteBool(AutoLiftUpDatabase);
      }
      if (RequestProxyMode != global::FilterListManager.RawRequestProxyMode.UseSystemProxy) {
        output.WriteRawTag(80);
        output.WriteEnum((int) RequestProxyMode);
      }
      if (RequestCustomProxyAddr.Length != 0) {
        output.WriteRawTag(90);
        output.WriteString(RequestCustomProxyAddr);
      }
      if (AppName.Length != 0) {
        output.WriteRawTag(98);
        output.WriteString(AppName);
      }
      if (Version.Length != 0) {
        output.WriteRawTag(106);
        output.WriteString(Version);
      }
      if (ShouldIgnoreExpiresForLocalUrls != false) {
        output.WriteRawTag(112);
        output.WriteBool(ShouldIgnoreExpiresForLocalUrls);
      }
      if (HasIntegrityKey) {
        output.WriteRawTag(122);
        output.WriteString(IntegrityKey);
      }
      if (FilterUpdateConcurrency != 0) {
        output.WriteRawTag(128, 1);
        output.WriteInt32(FilterUpdateConcurrency);
      }
      if (FilterUpdateDispatchDelayMs != 0) {
        output.WriteRawTag(136, 1);
        output.WriteInt32(FilterUpdateDispatchDelayMs);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(output);
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
      if (FilterListType != global::FilterListManager.FilterListType.Standard) {
        output.WriteRawTag(8);
        output.WriteEnum((int) FilterListType);
      }
      if (HasWorkingDirectory) {
        output.WriteRawTag(18);
        output.WriteString(WorkingDirectory);
      }
      if (Locale.Length != 0) {
        output.WriteRawTag(26);
        output.WriteString(Locale);
      }
      if (DefaultFilterListExpiresPeriodSec != 0) {
        output.WriteRawTag(32);
        output.WriteInt32(DefaultFilterListExpiresPeriodSec);
      }
      if (filtersCompilationPolicy_ != null) {
        output.WriteRawTag(42);
        output.WriteMessage(FiltersCompilationPolicy);
      }
      if (MetadataUrl.Length != 0) {
        output.WriteRawTag(50);
        output.WriteString(MetadataUrl);
      }
      if (MetadataLocalesUrl.Length != 0) {
        output.WriteRawTag(58);
        output.WriteString(MetadataLocalesUrl);
      }
      if (RequestTimeoutMs != 0) {
        output.WriteRawTag(64);
        output.WriteInt32(RequestTimeoutMs);
      }
      if (AutoLiftUpDatabase != false) {
        output.WriteRawTag(72);
        output.WriteBool(AutoLiftUpDatabase);
      }
      if (RequestProxyMode != global::FilterListManager.RawRequestProxyMode.UseSystemProxy) {
        output.WriteRawTag(80);
        output.WriteEnum((int) RequestProxyMode);
      }
      if (RequestCustomProxyAddr.Length != 0) {
        output.WriteRawTag(90);
        output.WriteString(RequestCustomProxyAddr);
      }
      if (AppName.Length != 0) {
        output.WriteRawTag(98);
        output.WriteString(AppName);
      }
      if (Version.Length != 0) {
        output.WriteRawTag(106);
        output.WriteString(Version);
      }
      if (ShouldIgnoreExpiresForLocalUrls != false) {
        output.WriteRawTag(112);
        output.WriteBool(ShouldIgnoreExpiresForLocalUrls);
      }
      if (HasIntegrityKey) {
        output.WriteRawTag(122);
        output.WriteString(IntegrityKey);
      }
      if (FilterUpdateConcurrency != 0) {
        output.WriteRawTag(128, 1);
        output.WriteInt32(FilterUpdateConcurrency);
      }
      if (FilterUpdateDispatchDelayMs != 0) {
        output.WriteRawTag(136, 1);
        output.WriteInt32(FilterUpdateDispatchDelayMs);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(ref output);
      }
    }
    #endif

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public int CalculateSize() {
      int size = 0;
      if (FilterListType != global::FilterListManager.FilterListType.Standard) {
        size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) FilterListType);
      }
      if (HasWorkingDirectory) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(WorkingDirectory);
      }
      if (Locale.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(Locale);
      }
      if (DefaultFilterListExpiresPeriodSec != 0) {
        size += 1 + pb::CodedOutputStream.ComputeInt32Size(DefaultFilterListExpiresPeriodSec);
      }
      if (filtersCompilationPolicy_ != null) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(FiltersCompilationPolicy);
      }
      if (MetadataUrl.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(MetadataUrl);
      }
      if (MetadataLocalesUrl.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(MetadataLocalesUrl);
      }
      if (RequestTimeoutMs != 0) {
        size += 1 + pb::CodedOutputStream.ComputeInt32Size(RequestTimeoutMs);
      }
      if (AutoLiftUpDatabase != false) {
        size += 1 + 1;
      }
      if (RequestProxyMode != global::FilterListManager.RawRequestProxyMode.UseSystemProxy) {
        size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) RequestProxyMode);
      }
      if (RequestCustomProxyAddr.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(RequestCustomProxyAddr);
      }
      if (AppName.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(AppName);
      }
      if (Version.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(Version);
      }
      if (ShouldIgnoreExpiresForLocalUrls != false) {
        size += 1 + 1;
      }
      if (HasIntegrityKey) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(IntegrityKey);
      }
      if (FilterUpdateConcurrency != 0) {
        size += 2 + pb::CodedOutputStream.ComputeInt32Size(FilterUpdateConcurrency);
      }
      if (FilterUpdateDispatchDelayMs != 0) {
        size += 2 + pb::CodedOutputStream.ComputeInt32Size(FilterUpdateDispatchDelayMs);
      }
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(Configuration other) {
      if (other == null) {
        return;
      }
      if (other.FilterListType != global::FilterListManager.FilterListType.Standard) {
        FilterListType = other.FilterListType;
      }
      if (other.HasWorkingDirectory) {
        WorkingDirectory = other.WorkingDirectory;
      }
      if (other.Locale.Length != 0) {
        Locale = other.Locale;
      }
      if (other.DefaultFilterListExpiresPeriodSec != 0) {
        DefaultFilterListExpiresPeriodSec = other.DefaultFilterListExpiresPeriodSec;
      }
      if (other.filtersCompilationPolicy_ != null) {
        if (filtersCompilationPolicy_ == null) {
          FiltersCompilationPolicy = new global::FilterListManager.FiltersCompilationPolicy();
        }
        FiltersCompilationPolicy.MergeFrom(other.FiltersCompilationPolicy);
      }
      if (other.MetadataUrl.Length != 0) {
        MetadataUrl = other.MetadataUrl;
      }
      if (other.MetadataLocalesUrl.Length != 0) {
        MetadataLocalesUrl = other.MetadataLocalesUrl;
      }
      if (other.RequestTimeoutMs != 0) {
        RequestTimeoutMs = other.RequestTimeoutMs;
      }
      if (other.AutoLiftUpDatabase != false) {
        AutoLiftUpDatabase = other.AutoLiftUpDatabase;
      }
      if (other.RequestProxyMode != global::FilterListManager.RawRequestProxyMode.UseSystemProxy) {
        RequestProxyMode = other.RequestProxyMode;
      }
      if (other.RequestCustomProxyAddr.Length != 0) {
        RequestCustomProxyAddr = other.RequestCustomProxyAddr;
      }
      if (other.AppName.Length != 0) {
        AppName = other.AppName;
      }
      if (other.Version.Length != 0) {
        Version = other.Version;
      }
      if (other.ShouldIgnoreExpiresForLocalUrls != false) {
        ShouldIgnoreExpiresForLocalUrls = other.ShouldIgnoreExpiresForLocalUrls;
      }
      if (other.HasIntegrityKey) {
        IntegrityKey = other.IntegrityKey;
      }
      if (other.FilterUpdateConcurrency != 0) {
        FilterUpdateConcurrency = other.FilterUpdateConcurrency;
      }
      if (other.FilterUpdateDispatchDelayMs != 0) {
        FilterUpdateDispatchDelayMs = other.FilterUpdateDispatchDelayMs;
      }
      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(pb::CodedInputStream input) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      input.ReadRawMessage(this);
    #else
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
          case 8: {
            FilterListType = (global::FilterListManager.FilterListType) input.ReadEnum();
            break;
          }
          case 18: {
            WorkingDirectory = input.ReadString();
            break;
          }
          case 26: {
            Locale = input.ReadString();
            break;
          }
          case 32: {
            DefaultFilterListExpiresPeriodSec = input.ReadInt32();
            break;
          }
          case 42: {
            if (filtersCompilationPolicy_ == null) {
              FiltersCompilationPolicy = new global::FilterListManager.FiltersCompilationPolicy();
            }
            input.ReadMessage(FiltersCompilationPolicy);
            break;
          }
          case 50: {
            MetadataUrl = input.ReadString();
            break;
          }
          case 58: {
            MetadataLocalesUrl = input.ReadString();
            break;
          }
          case 64: {
            RequestTimeoutMs = input.ReadInt32();
            break;
          }
          case 72: {
            AutoLiftUpDatabase = input.ReadBool();
            break;
          }
          case 80: {
            RequestProxyMode = (global::FilterListManager.RawRequestProxyMode) input.ReadEnum();
            break;
          }
          case 90: {
            RequestCustomProxyAddr = input.ReadString();
            break;
          }
          case 98: {
            AppName = input.ReadString();
            break;
          }
          case 106: {
            Version = input.ReadString();
            break;
          }
          case 112: {
            ShouldIgnoreExpiresForLocalUrls = input.ReadBool();
            break;
          }
          case 122: {
            IntegrityKey = input.ReadString();
            break;
          }
          case 128: {
            FilterUpdateConcurrency = input.ReadInt32();
            break;
          }
          case 136: {
            FilterUpdateDispatchDelayMs = input.ReadInt32();
            break;
          }
        }
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
            break;
          case 8: {
            FilterListType = (global::FilterListManager.FilterListType) input.ReadEnum();
            break;
          }
          case 18: {
            WorkingDirectory = input.ReadString();
            break;
          }
          case 26: {
            Locale = input.ReadString();
            break;
          }
          case 32: {
            DefaultFilterListExpiresPeriodSec = input.ReadInt32();
            break;
          }
          case 42: {
            if (filtersCompilationPolicy_ == null) {
              FiltersCompilationPolicy = new global::FilterListManager.FiltersCompilationPolicy();
            }
            input.ReadMessage(FiltersCompilationPolicy);
            break;
          }
          case 50: {
            MetadataUrl = input.ReadString();
            break;
          }
          case 58: {
            MetadataLocalesUrl = input.ReadString();
            break;
          }
          case 64: {
            RequestTimeoutMs = input.ReadInt32();
            break;
          }
          case 72: {
            AutoLiftUpDatabase = input.ReadBool();
            break;
          }
          case 80: {
            RequestProxyMode = (global::FilterListManager.RawRequestProxyMode) input.ReadEnum();
            break;
          }
          case 90: {
            RequestCustomProxyAddr = input.ReadString();
            break;
          }
          case 98: {
            AppName = input.ReadString();
            break;
          }
          case 106: {
            Version = input.ReadString();
            break;
          }
          case 112: {
            ShouldIgnoreExpiresForLocalUrls = input.ReadBool();
            break;
          }
          case 122: {
            IntegrityKey = input.ReadString();
            break;
          }
          case 128: {
            FilterUpdateConcurrency = input.ReadInt32();
            break;
          }
          case 136: {
            FilterUpdateDispatchDelayMs = input.ReadInt32();
            break;
          }
        }
      }
    }
    #endif

  }

  #endregion

}

#endregion Designer generated code
