update OnnxMl.cs (#15702)

This commit is contained in:
liqun Fu 2023-04-28 11:20:29 -07:00 committed by GitHub
parent 29d13cea42
commit 2802c547a1
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 279 additions and 151 deletions

View file

@ -71,7 +71,7 @@ namespace Onnx {
"X2luZm8YDSADKAsyFC5vbm54LlZhbHVlSW5mb1Byb3RvEjcKF3F1YW50aXph",
"dGlvbl9hbm5vdGF0aW9uGA4gAygLMhYub25ueC5UZW5zb3JBbm5vdGF0aW9u",
"SgQIAxAESgQIBBAFSgQIBhAKUgppcl92ZXJzaW9uUhBwcm9kdWNlcl92ZXJz",
"aW9uUgxwcm9kdWNlcl90YWdSBmRvbWFpbiK4BQoLVGVuc29yUHJvdG8SDAoE",
"aW9uUgxwcm9kdWNlcl90YWdSBmRvbWFpbiKCBgoLVGVuc29yUHJvdG8SDAoE",
"ZGltcxgBIAMoAxIRCglkYXRhX3R5cGUYAiABKAUSKgoHc2VnbWVudBgDIAEo",
"CzIZLm9ubnguVGVuc29yUHJvdG8uU2VnbWVudBIWCgpmbG9hdF9kYXRhGAQg",
"AygCQgIQARIWCgppbnQzMl9kYXRhGAUgAygFQgIQARITCgtzdHJpbmdfZGF0",
@ -81,46 +81,50 @@ namespace Onnx {
"bxI1Cg1kYXRhX2xvY2F0aW9uGA4gASgOMh4ub25ueC5UZW5zb3JQcm90by5E",
"YXRhTG9jYXRpb24SFwoLZG91YmxlX2RhdGEYCiADKAFCAhABEhcKC3VpbnQ2",
"NF9kYXRhGAsgAygEQgIQARolCgdTZWdtZW50Eg0KBWJlZ2luGAEgASgDEgsK",
"A2VuZBgCIAEoAyLaAQoIRGF0YVR5cGUSDQoJVU5ERUZJTkVEEAASCQoFRkxP",
"A2VuZBgCIAEoAyKkAgoIRGF0YVR5cGUSDQoJVU5ERUZJTkVEEAASCQoFRkxP",
"QVQQARIJCgVVSU5UOBACEggKBElOVDgQAxIKCgZVSU5UMTYQBBIJCgVJTlQx",
"NhAFEgkKBUlOVDMyEAYSCQoFSU5UNjQQBxIKCgZTVFJJTkcQCBIICgRCT09M",
"EAkSCwoHRkxPQVQxNhAKEgoKBkRPVUJMRRALEgoKBlVJTlQzMhAMEgoKBlVJ",
"TlQ2NBANEg0KCUNPTVBMRVg2NBAOEg4KCkNPTVBMRVgxMjgQDxIMCghCRkxP",
"QVQxNhAQIikKDERhdGFMb2NhdGlvbhILCgdERUZBVUxUEAASDAoIRVhURVJO",
"QUwQASJoChFTcGFyc2VUZW5zb3JQcm90bxIhCgZ2YWx1ZXMYASABKAsyES5v",
"bm54LlRlbnNvclByb3RvEiIKB2luZGljZXMYAiABKAsyES5vbm54LlRlbnNv",
"clByb3RvEgwKBGRpbXMYAyADKAMilQEKEFRlbnNvclNoYXBlUHJvdG8SLQoD",
"ZGltGAEgAygLMiAub25ueC5UZW5zb3JTaGFwZVByb3RvLkRpbWVuc2lvbhpS",
"CglEaW1lbnNpb24SEwoJZGltX3ZhbHVlGAEgASgDSAASEwoJZGltX3BhcmFt",
"GAIgASgJSAASEgoKZGVub3RhdGlvbhgDIAEoCUIHCgV2YWx1ZSKlBQoJVHlw",
"ZVByb3RvEi0KC3RlbnNvcl90eXBlGAEgASgLMhYub25ueC5UeXBlUHJvdG8u",
"VGVuc29ySAASMQoNc2VxdWVuY2VfdHlwZRgEIAEoCzIYLm9ubnguVHlwZVBy",
"b3RvLlNlcXVlbmNlSAASJwoIbWFwX3R5cGUYBSABKAsyEy5vbm54LlR5cGVQ",
"cm90by5NYXBIABIxCg1vcHRpb25hbF90eXBlGAkgASgLMhgub25ueC5UeXBl",
"UHJvdG8uT3B0aW9uYWxIABI6ChJzcGFyc2VfdGVuc29yX3R5cGUYCCABKAsy",
"HC5vbm54LlR5cGVQcm90by5TcGFyc2VUZW5zb3JIABItCgtvcGFxdWVfdHlw",
"ZRgHIAEoCzIWLm9ubnguVHlwZVByb3RvLk9wYXF1ZUgAEhIKCmRlbm90YXRp",
"b24YBiABKAkaQgoGVGVuc29yEhEKCWVsZW1fdHlwZRgBIAEoBRIlCgVzaGFw",
"ZRgCIAEoCzIWLm9ubnguVGVuc29yU2hhcGVQcm90bxouCghTZXF1ZW5jZRIi",
"CgllbGVtX3R5cGUYASABKAsyDy5vbm54LlR5cGVQcm90bxo8CgNNYXASEAoI",
"a2V5X3R5cGUYASABKAUSIwoKdmFsdWVfdHlwZRgCIAEoCzIPLm9ubnguVHlw",
"ZVByb3RvGi4KCE9wdGlvbmFsEiIKCWVsZW1fdHlwZRgBIAEoCzIPLm9ubngu",
"VHlwZVByb3RvGkgKDFNwYXJzZVRlbnNvchIRCgllbGVtX3R5cGUYASABKAUS",
"JQoFc2hhcGUYAiABKAsyFi5vbm54LlRlbnNvclNoYXBlUHJvdG8aJgoGT3Bh",
"cXVlEg4KBmRvbWFpbhgBIAEoCRIMCgRuYW1lGAIgASgJQgcKBXZhbHVlIjUK",
"Ek9wZXJhdG9yU2V0SWRQcm90bxIOCgZkb21haW4YASABKAkSDwoHdmVyc2lv",
"bhgCIAEoAyLlAQoNRnVuY3Rpb25Qcm90bxIMCgRuYW1lGAEgASgJEg0KBWlu",
"cHV0GAQgAygJEg4KBm91dHB1dBgFIAMoCRIRCglhdHRyaWJ1dGUYBiADKAkS",
"HQoEbm9kZRgHIAMoCzIPLm9ubnguTm9kZVByb3RvEhIKCmRvY19zdHJpbmcY",
"CCABKAkSLgoMb3BzZXRfaW1wb3J0GAkgAygLMhgub25ueC5PcGVyYXRvclNl",
"dElkUHJvdG8SDgoGZG9tYWluGAogASgJSgQIAhADSgQIAxAEUg1zaW5jZV92",
"ZXJzaW9uUgZzdGF0dXMq5AEKB1ZlcnNpb24SEgoOX1NUQVJUX1ZFUlNJT04Q",
"ABIZChVJUl9WRVJTSU9OXzIwMTdfMTBfMTAQARIZChVJUl9WRVJTSU9OXzIw",
"MTdfMTBfMzAQAhIYChRJUl9WRVJTSU9OXzIwMTdfMTFfMxADEhgKFElSX1ZF",
"UlNJT05fMjAxOV8xXzIyEAQSGAoUSVJfVkVSU0lPTl8yMDE5XzNfMTgQBRIY",
"ChRJUl9WRVJTSU9OXzIwMTlfOV8xORAGEhcKE0lSX1ZFUlNJT05fMjAyMF81",
"XzgQBxIOCgpJUl9WRVJTSU9OEAgqLgoOT3BlcmF0b3JTdGF0dXMSEAoMRVhQ",
"RVJJTUVOVEFMEAASCgoGU1RBQkxFEAFCAkgDYgZwcm90bzM="));
"QVQxNhAQEhAKDEZMT0FUOEU0TTNGThAREhIKDkZMT0FUOEU0TTNGTlVaEBIS",
"DgoKRkxPQVQ4RTVNMhATEhIKDkZMT0FUOEU1TTJGTlVaEBQiKQoMRGF0YUxv",
"Y2F0aW9uEgsKB0RFRkFVTFQQABIMCghFWFRFUk5BTBABImgKEVNwYXJzZVRl",
"bnNvclByb3RvEiEKBnZhbHVlcxgBIAEoCzIRLm9ubnguVGVuc29yUHJvdG8S",
"IgoHaW5kaWNlcxgCIAEoCzIRLm9ubnguVGVuc29yUHJvdG8SDAoEZGltcxgD",
"IAMoAyKVAQoQVGVuc29yU2hhcGVQcm90bxItCgNkaW0YASADKAsyIC5vbm54",
"LlRlbnNvclNoYXBlUHJvdG8uRGltZW5zaW9uGlIKCURpbWVuc2lvbhITCglk",
"aW1fdmFsdWUYASABKANIABITCglkaW1fcGFyYW0YAiABKAlIABISCgpkZW5v",
"dGF0aW9uGAMgASgJQgcKBXZhbHVlIqUFCglUeXBlUHJvdG8SLQoLdGVuc29y",
"X3R5cGUYASABKAsyFi5vbm54LlR5cGVQcm90by5UZW5zb3JIABIxCg1zZXF1",
"ZW5jZV90eXBlGAQgASgLMhgub25ueC5UeXBlUHJvdG8uU2VxdWVuY2VIABIn",
"CghtYXBfdHlwZRgFIAEoCzITLm9ubnguVHlwZVByb3RvLk1hcEgAEjEKDW9w",
"dGlvbmFsX3R5cGUYCSABKAsyGC5vbm54LlR5cGVQcm90by5PcHRpb25hbEgA",
"EjoKEnNwYXJzZV90ZW5zb3JfdHlwZRgIIAEoCzIcLm9ubnguVHlwZVByb3Rv",
"LlNwYXJzZVRlbnNvckgAEi0KC29wYXF1ZV90eXBlGAcgASgLMhYub25ueC5U",
"eXBlUHJvdG8uT3BhcXVlSAASEgoKZGVub3RhdGlvbhgGIAEoCRpCCgZUZW5z",
"b3ISEQoJZWxlbV90eXBlGAEgASgFEiUKBXNoYXBlGAIgASgLMhYub25ueC5U",
"ZW5zb3JTaGFwZVByb3RvGi4KCFNlcXVlbmNlEiIKCWVsZW1fdHlwZRgBIAEo",
"CzIPLm9ubnguVHlwZVByb3RvGjwKA01hcBIQCghrZXlfdHlwZRgBIAEoBRIj",
"Cgp2YWx1ZV90eXBlGAIgASgLMg8ub25ueC5UeXBlUHJvdG8aLgoIT3B0aW9u",
"YWwSIgoJZWxlbV90eXBlGAEgASgLMg8ub25ueC5UeXBlUHJvdG8aSAoMU3Bh",
"cnNlVGVuc29yEhEKCWVsZW1fdHlwZRgBIAEoBRIlCgVzaGFwZRgCIAEoCzIW",
"Lm9ubnguVGVuc29yU2hhcGVQcm90bxomCgZPcGFxdWUSDgoGZG9tYWluGAEg",
"ASgJEgwKBG5hbWUYAiABKAlCBwoFdmFsdWUiNQoST3BlcmF0b3JTZXRJZFBy",
"b3RvEg4KBmRvbWFpbhgBIAEoCRIPCgd2ZXJzaW9uGAIgASgDIpQCCg1GdW5j",
"dGlvblByb3RvEgwKBG5hbWUYASABKAkSDQoFaW5wdXQYBCADKAkSDgoGb3V0",
"cHV0GAUgAygJEhEKCWF0dHJpYnV0ZRgGIAMoCRItCg9hdHRyaWJ1dGVfcHJv",
"dG8YCyADKAsyFC5vbm54LkF0dHJpYnV0ZVByb3RvEh0KBG5vZGUYByADKAsy",
"Dy5vbm54Lk5vZGVQcm90bxISCgpkb2Nfc3RyaW5nGAggASgJEi4KDG9wc2V0",
"X2ltcG9ydBgJIAMoCzIYLm9ubnguT3BlcmF0b3JTZXRJZFByb3RvEg4KBmRv",
"bWFpbhgKIAEoCUoECAIQA0oECAMQBFINc2luY2VfdmVyc2lvblIGc3RhdHVz",
"Kv4BCgdWZXJzaW9uEhIKDl9TVEFSVF9WRVJTSU9OEAASGQoVSVJfVkVSU0lP",
"Tl8yMDE3XzEwXzEwEAESGQoVSVJfVkVSU0lPTl8yMDE3XzEwXzMwEAISGAoU",
"SVJfVkVSU0lPTl8yMDE3XzExXzMQAxIYChRJUl9WRVJTSU9OXzIwMTlfMV8y",
"MhAEEhgKFElSX1ZFUlNJT05fMjAxOV8zXzE4EAUSGAoUSVJfVkVSU0lPTl8y",
"MDE5XzlfMTkQBhIXChNJUl9WRVJTSU9OXzIwMjBfNV84EAcSGAoUSVJfVkVS",
"U0lPTl8yMDIxXzdfMzAQCBIOCgpJUl9WRVJTSU9OEAkqLgoOT3BlcmF0b3JT",
"dGF0dXMSEAoMRVhQRVJJTUVOVEFMEAASCgoGU1RBQkxFEAFCAkgDYgZwcm90",
"bzM="));
descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
new pbr::FileDescriptor[] { },
new pbr::GeneratedClrTypeInfo(new[] {typeof(global::Onnx.Version), typeof(global::Onnx.OperatorStatus), }, null, new pbr::GeneratedClrTypeInfo[] {
@ -142,7 +146,7 @@ namespace Onnx {
new pbr::GeneratedClrTypeInfo(typeof(global::Onnx.TypeProto.Types.SparseTensor), global::Onnx.TypeProto.Types.SparseTensor.Parser, new[]{ "ElemType", "Shape" }, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::Onnx.TypeProto.Types.Opaque), global::Onnx.TypeProto.Types.Opaque.Parser, new[]{ "Domain", "Name" }, null, null, null, null)}),
new pbr::GeneratedClrTypeInfo(typeof(global::Onnx.OperatorSetIdProto), global::Onnx.OperatorSetIdProto.Parser, new[]{ "Domain", "Version" }, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::Onnx.FunctionProto), global::Onnx.FunctionProto.Parser, new[]{ "Name", "Input", "Output", "Attribute", "Node", "DocString", "OpsetImport", "Domain" }, null, null, null, null)
new pbr::GeneratedClrTypeInfo(typeof(global::Onnx.FunctionProto), global::Onnx.FunctionProto.Parser, new[]{ "Name", "Input", "Output", "Attribute", "AttributeProto", "Node", "DocString", "OpsetImport", "Domain" }, null, null, null, null)
}));
}
#endregion
@ -216,13 +220,19 @@ namespace Onnx {
/// </summary>
[pbr::OriginalName("IR_VERSION_2020_5_8")] IrVersion202058 = 7,
/// <summary>
/// IR VERSION 8 published on &lt;TBD>
/// IR VERSION 8 published on July 30, 2021
/// Introduce TypeProto.SparseTensor
/// Introduce TypeProto.Optional
/// Added a list of FunctionProtos local to the model
/// Deprecated since_version and operator status from FunctionProto
/// </summary>
[pbr::OriginalName("IR_VERSION")] IrVersion = 8,
[pbr::OriginalName("IR_VERSION_2021_7_30")] IrVersion2021730 = 8,
/// <summary>
/// IR VERSION 9 published on TBD
/// Added AttributeProto to FunctionProto so that default attribute values can be set.
/// Added FLOAT8E4M3FN, FLOAT8E4M3FNUZ, FLOAT8E5M2, FLOAT8E5M2FNUZ.
/// </summary>
[pbr::OriginalName("IR_VERSION")] IrVersion = 9,
}
/// <summary>
@ -3860,11 +3870,11 @@ namespace Onnx {
= pb::FieldCodec.ForInt32(42);
private readonly pbc::RepeatedField<int> int32Data_ = new pbc::RepeatedField<int>();
/// <summary>
/// For int32, uint8, int8, uint16, int16, bool, and float16 values
/// float16 values must be bit-wise converted to an uint16_t prior
/// For int32, uint8, int8, uint16, int16, bool, float8, and float16 values
/// float16 and float8 values must be bit-wise converted to an uint16_t prior
/// to writing to the buffer.
/// When this field is present, the data_type field MUST be
/// INT32, INT16, INT8, UINT16, UINT8, BOOL, FLOAT16 or BFLOAT16
/// INT32, INT16, INT8, UINT16, UINT8, BOOL, FLOAT16, BFLOAT16, FLOAT8E4M3FN, FLOAT8E4M3FNUZ, FLOAT8E5M2, FLOAT8E5M2FNUZ
/// </summary>
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
@ -4486,6 +4496,27 @@ namespace Onnx {
/// This format has 1 sign bit, 8 exponent bits, and 7 mantissa bits.
/// </summary>
[pbr::OriginalName("BFLOAT16")] Bfloat16 = 16,
/// <summary>
/// Non-IEEE floating-point format based on papers
/// FP8 Formats for Deep Learning, https://arxiv.org/abs/2209.05433,
/// 8-bit Numerical Formats For Deep Neural Networks, https://arxiv.org/pdf/2206.02915.pdf.
/// Operators supported FP8 are Cast, CastLike, QuantizeLinear, DequantizeLinear.
/// The computation usually happens inside a block quantize / dequantize
/// fused by the runtime.
/// </summary>
[pbr::OriginalName("FLOAT8E4M3FN")] Float8E4M3Fn = 17,
/// <summary>
/// float 8, mostly used for coefficients, supports nan, not inf, no negative zero
/// </summary>
[pbr::OriginalName("FLOAT8E4M3FNUZ")] Float8E4M3Fnuz = 18,
/// <summary>
/// follows IEEE 754, supports nan, inf, mostly used for gradients
/// </summary>
[pbr::OriginalName("FLOAT8E5M2")] Float8E5M2 = 19,
/// <summary>
/// follows IEEE 754, supports nan, inf, mostly used for gradients, no negative zero
/// </summary>
[pbr::OriginalName("FLOAT8E5M2FNUZ")] Float8E5M2Fnuz = 20,
}
/// <summary>
@ -7743,6 +7774,7 @@ namespace Onnx {
input_ = other.input_.Clone();
output_ = other.output_.Clone();
attribute_ = other.attribute_.Clone();
attributeProto_ = other.attributeProto_.Clone();
node_ = other.node_.Clone();
docString_ = other.docString_;
opsetImport_ = other.opsetImport_.Clone();
@ -7804,7 +7836,8 @@ namespace Onnx {
= pb::FieldCodec.ForString(50);
private readonly pbc::RepeatedField<string> attribute_ = new pbc::RepeatedField<string>();
/// <summary>
/// The attributes of the function.
/// The attribute parameters of the function.
/// It is for function parameters without default values.
/// </summary>
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
@ -7812,6 +7845,23 @@ namespace Onnx {
get { return attribute_; }
}
/// <summary>Field number for the "attribute_proto" field.</summary>
public const int AttributeProtoFieldNumber = 11;
private static readonly pb::FieldCodec<global::Onnx.AttributeProto> _repeated_attributeProto_codec
= pb::FieldCodec.ForMessage(90, global::Onnx.AttributeProto.Parser);
private readonly pbc::RepeatedField<global::Onnx.AttributeProto> attributeProto_ = new pbc::RepeatedField<global::Onnx.AttributeProto>();
/// <summary>
/// The attribute protos of the function.
/// It is for function attributes with default values.
/// A function attribute shall be represented either as
/// a string attribute or an AttributeProto, not both.
/// </summary>
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public pbc::RepeatedField<global::Onnx.AttributeProto> AttributeProto {
get { return attributeProto_; }
}
/// <summary>Field number for the "node" field.</summary>
public const int NodeFieldNumber = 7;
private static readonly pb::FieldCodec<global::Onnx.NodeProto> _repeated_node_codec
@ -7887,6 +7937,7 @@ namespace Onnx {
if(!input_.Equals(other.input_)) return false;
if(!output_.Equals(other.output_)) return false;
if(!attribute_.Equals(other.attribute_)) return false;
if(!attributeProto_.Equals(other.attributeProto_)) return false;
if(!node_.Equals(other.node_)) return false;
if (DocString != other.DocString) return false;
if(!opsetImport_.Equals(other.opsetImport_)) return false;
@ -7902,6 +7953,7 @@ namespace Onnx {
hash ^= input_.GetHashCode();
hash ^= output_.GetHashCode();
hash ^= attribute_.GetHashCode();
hash ^= attributeProto_.GetHashCode();
hash ^= node_.GetHashCode();
if (DocString.Length != 0) hash ^= DocString.GetHashCode();
hash ^= opsetImport_.GetHashCode();
@ -7941,6 +7993,7 @@ namespace Onnx {
output.WriteRawTag(82);
output.WriteString(Domain);
}
attributeProto_.WriteTo(output, _repeated_attributeProto_codec);
if (_unknownFields != null) {
_unknownFields.WriteTo(output);
}
@ -7968,6 +8021,7 @@ namespace Onnx {
output.WriteRawTag(82);
output.WriteString(Domain);
}
attributeProto_.WriteTo(ref output, _repeated_attributeProto_codec);
if (_unknownFields != null) {
_unknownFields.WriteTo(ref output);
}
@ -7984,6 +8038,7 @@ namespace Onnx {
size += input_.CalculateSize(_repeated_input_codec);
size += output_.CalculateSize(_repeated_output_codec);
size += attribute_.CalculateSize(_repeated_attribute_codec);
size += attributeProto_.CalculateSize(_repeated_attributeProto_codec);
size += node_.CalculateSize(_repeated_node_codec);
if (DocString.Length != 0) {
size += 1 + pb::CodedOutputStream.ComputeStringSize(DocString);
@ -8010,6 +8065,7 @@ namespace Onnx {
input_.Add(other.input_);
output_.Add(other.output_);
attribute_.Add(other.attribute_);
attributeProto_.Add(other.attributeProto_);
node_.Add(other.node_);
if (other.DocString.Length != 0) {
DocString = other.DocString;
@ -8065,6 +8121,10 @@ namespace Onnx {
Domain = input.ReadString();
break;
}
case 90: {
attributeProto_.AddEntriesFrom(input, _repeated_attributeProto_codec);
break;
}
}
}
#endif
@ -8112,6 +8172,10 @@ namespace Onnx {
Domain = input.ReadString();
break;
}
case 90: {
attributeProto_.AddEntriesFrom(ref input, _repeated_attributeProto_codec);
break;
}
}
}
}

View file

@ -1,6 +1,6 @@
// <auto-generated>
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: onnx-ml.proto3
// source: onnx/onnx-ml.proto3
// </auto-generated>
#pragma warning disable 1591, 0612, 3021
#region Designer generated code
@ -11,11 +11,11 @@ using pbr = global::Google.Protobuf.Reflection;
using scg = global::System.Collections.Generic;
namespace Onnx {
/// <summary>Holder for reflection information generated from onnx-ml.proto3</summary>
/// <summary>Holder for reflection information generated from onnx/onnx-ml.proto3</summary>
public static partial class OnnxMlReflection {
#region Descriptor
/// <summary>File descriptor for onnx-ml.proto3</summary>
/// <summary>File descriptor for onnx/onnx-ml.proto3</summary>
public static pbr::FileDescriptor Descriptor {
get { return descriptor; }
}
@ -24,103 +24,107 @@ namespace Onnx {
static OnnxMlReflection() {
byte[] descriptorData = global::System.Convert.FromBase64String(
string.Concat(
"Cg5vbm54LW1sLnByb3RvMxIEb25ueCLMBQoOQXR0cmlidXRlUHJvdG8SDAoE",
"bmFtZRgBIAEoCRIVCg1yZWZfYXR0cl9uYW1lGBUgASgJEhIKCmRvY19zdHJp",
"bmcYDSABKAkSMAoEdHlwZRgUIAEoDjIiLm9ubnguQXR0cmlidXRlUHJvdG8u",
"QXR0cmlidXRlVHlwZRIJCgFmGAIgASgCEgkKAWkYAyABKAMSCQoBcxgEIAEo",
"DBIcCgF0GAUgASgLMhEub25ueC5UZW5zb3JQcm90bxIbCgFnGAYgASgLMhAu",
"b25ueC5HcmFwaFByb3RvEi4KDXNwYXJzZV90ZW5zb3IYFiABKAsyFy5vbm54",
"LlNwYXJzZVRlbnNvclByb3RvEhsKAnRwGA4gASgLMg8ub25ueC5UeXBlUHJv",
"dG8SDgoGZmxvYXRzGAcgAygCEgwKBGludHMYCCADKAMSDwoHc3RyaW5ncxgJ",
"IAMoDBIiCgd0ZW5zb3JzGAogAygLMhEub25ueC5UZW5zb3JQcm90bxIgCgZn",
"cmFwaHMYCyADKAsyEC5vbm54LkdyYXBoUHJvdG8SLwoOc3BhcnNlX3RlbnNv",
"cnMYFyADKAsyFy5vbm54LlNwYXJzZVRlbnNvclByb3RvEiQKC3R5cGVfcHJv",
"dG9zGA8gAygLMg8ub25ueC5UeXBlUHJvdG8i2QEKDUF0dHJpYnV0ZVR5cGUS",
"DQoJVU5ERUZJTkVEEAASCQoFRkxPQVQQARIHCgNJTlQQAhIKCgZTVFJJTkcQ",
"AxIKCgZURU5TT1IQBBIJCgVHUkFQSBAFEhEKDVNQQVJTRV9URU5TT1IQCxIO",
"CgpUWVBFX1BST1RPEA0SCgoGRkxPQVRTEAYSCAoESU5UUxAHEgsKB1NUUklO",
"R1MQCBILCgdURU5TT1JTEAkSCgoGR1JBUEhTEAoSEgoOU1BBUlNFX1RFTlNP",
"UlMQDBIPCgtUWVBFX1BST1RPUxAOIlEKDlZhbHVlSW5mb1Byb3RvEgwKBG5h",
"bWUYASABKAkSHQoEdHlwZRgCIAEoCzIPLm9ubnguVHlwZVByb3RvEhIKCmRv",
"Y19zdHJpbmcYAyABKAkilgEKCU5vZGVQcm90bxINCgVpbnB1dBgBIAMoCRIO",
"CgZvdXRwdXQYAiADKAkSDAoEbmFtZRgDIAEoCRIPCgdvcF90eXBlGAQgASgJ",
"Eg4KBmRvbWFpbhgHIAEoCRInCglhdHRyaWJ1dGUYBSADKAsyFC5vbm54LkF0",
"dHJpYnV0ZVByb3RvEhIKCmRvY19zdHJpbmcYBiABKAki1gEKEVRyYWluaW5n",
"SW5mb1Byb3RvEigKDmluaXRpYWxpemF0aW9uGAEgASgLMhAub25ueC5HcmFw",
"aFByb3RvEiMKCWFsZ29yaXRobRgCIAEoCzIQLm9ubnguR3JhcGhQcm90bxI8",
"ChZpbml0aWFsaXphdGlvbl9iaW5kaW5nGAMgAygLMhwub25ueC5TdHJpbmdT",
"dHJpbmdFbnRyeVByb3RvEjQKDnVwZGF0ZV9iaW5kaW5nGAQgAygLMhwub25u",
"eC5TdHJpbmdTdHJpbmdFbnRyeVByb3RvIusCCgpNb2RlbFByb3RvEhIKCmly",
"X3ZlcnNpb24YASABKAMSLgoMb3BzZXRfaW1wb3J0GAggAygLMhgub25ueC5P",
"cGVyYXRvclNldElkUHJvdG8SFQoNcHJvZHVjZXJfbmFtZRgCIAEoCRIYChBw",
"cm9kdWNlcl92ZXJzaW9uGAMgASgJEg4KBmRvbWFpbhgEIAEoCRIVCg1tb2Rl",
"bF92ZXJzaW9uGAUgASgDEhIKCmRvY19zdHJpbmcYBiABKAkSHwoFZ3JhcGgY",
"ByABKAsyEC5vbm54LkdyYXBoUHJvdG8SNAoObWV0YWRhdGFfcHJvcHMYDiAD",
"KAsyHC5vbm54LlN0cmluZ1N0cmluZ0VudHJ5UHJvdG8SLgoNdHJhaW5pbmdf",
"aW5mbxgUIAMoCzIXLm9ubnguVHJhaW5pbmdJbmZvUHJvdG8SJgoJZnVuY3Rp",
"b25zGBkgAygLMhMub25ueC5GdW5jdGlvblByb3RvIjQKFlN0cmluZ1N0cmlu",
"Z0VudHJ5UHJvdG8SCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJImsKEFRl",
"bnNvckFubm90YXRpb24SEwoLdGVuc29yX25hbWUYASABKAkSQgoccXVhbnRf",
"cGFyYW1ldGVyX3RlbnNvcl9uYW1lcxgCIAMoCzIcLm9ubnguU3RyaW5nU3Ry",
"aW5nRW50cnlQcm90byKeAwoKR3JhcGhQcm90bxIdCgRub2RlGAEgAygLMg8u",
"b25ueC5Ob2RlUHJvdG8SDAoEbmFtZRgCIAEoCRImCgtpbml0aWFsaXplchgF",
"IAMoCzIRLm9ubnguVGVuc29yUHJvdG8SMwoSc3BhcnNlX2luaXRpYWxpemVy",
"GA8gAygLMhcub25ueC5TcGFyc2VUZW5zb3JQcm90bxISCgpkb2Nfc3RyaW5n",
"GAogASgJEiMKBWlucHV0GAsgAygLMhQub25ueC5WYWx1ZUluZm9Qcm90bxIk",
"CgZvdXRwdXQYDCADKAsyFC5vbm54LlZhbHVlSW5mb1Byb3RvEigKCnZhbHVl",
"X2luZm8YDSADKAsyFC5vbm54LlZhbHVlSW5mb1Byb3RvEjcKF3F1YW50aXph",
"dGlvbl9hbm5vdGF0aW9uGA4gAygLMhYub25ueC5UZW5zb3JBbm5vdGF0aW9u",
"SgQIAxAESgQIBBAFSgQIBhAKUgppcl92ZXJzaW9uUhBwcm9kdWNlcl92ZXJz",
"aW9uUgxwcm9kdWNlcl90YWdSBmRvbWFpbiK4BQoLVGVuc29yUHJvdG8SDAoE",
"ZGltcxgBIAMoAxIRCglkYXRhX3R5cGUYAiABKAUSKgoHc2VnbWVudBgDIAEo",
"CzIZLm9ubnguVGVuc29yUHJvdG8uU2VnbWVudBIWCgpmbG9hdF9kYXRhGAQg",
"AygCQgIQARIWCgppbnQzMl9kYXRhGAUgAygFQgIQARITCgtzdHJpbmdfZGF0",
"YRgGIAMoDBIWCgppbnQ2NF9kYXRhGAcgAygDQgIQARIMCgRuYW1lGAggASgJ",
"EhIKCmRvY19zdHJpbmcYDCABKAkSEAoIcmF3X2RhdGEYCSABKAwSMwoNZXh0",
"ZXJuYWxfZGF0YRgNIAMoCzIcLm9ubnguU3RyaW5nU3RyaW5nRW50cnlQcm90",
"bxI1Cg1kYXRhX2xvY2F0aW9uGA4gASgOMh4ub25ueC5UZW5zb3JQcm90by5E",
"YXRhTG9jYXRpb24SFwoLZG91YmxlX2RhdGEYCiADKAFCAhABEhcKC3VpbnQ2",
"NF9kYXRhGAsgAygEQgIQARolCgdTZWdtZW50Eg0KBWJlZ2luGAEgASgDEgsK",
"A2VuZBgCIAEoAyLaAQoIRGF0YVR5cGUSDQoJVU5ERUZJTkVEEAASCQoFRkxP",
"QVQQARIJCgVVSU5UOBACEggKBElOVDgQAxIKCgZVSU5UMTYQBBIJCgVJTlQx",
"NhAFEgkKBUlOVDMyEAYSCQoFSU5UNjQQBxIKCgZTVFJJTkcQCBIICgRCT09M",
"EAkSCwoHRkxPQVQxNhAKEgoKBkRPVUJMRRALEgoKBlVJTlQzMhAMEgoKBlVJ",
"TlQ2NBANEg0KCUNPTVBMRVg2NBAOEg4KCkNPTVBMRVgxMjgQDxIMCghCRkxP",
"QVQxNhAQIikKDERhdGFMb2NhdGlvbhILCgdERUZBVUxUEAASDAoIRVhURVJO",
"QUwQASJoChFTcGFyc2VUZW5zb3JQcm90bxIhCgZ2YWx1ZXMYASABKAsyES5v",
"bm54LlRlbnNvclByb3RvEiIKB2luZGljZXMYAiABKAsyES5vbm54LlRlbnNv",
"clByb3RvEgwKBGRpbXMYAyADKAMilQEKEFRlbnNvclNoYXBlUHJvdG8SLQoD",
"ZGltGAEgAygLMiAub25ueC5UZW5zb3JTaGFwZVByb3RvLkRpbWVuc2lvbhpS",
"CglEaW1lbnNpb24SEwoJZGltX3ZhbHVlGAEgASgDSAASEwoJZGltX3BhcmFt",
"GAIgASgJSAASEgoKZGVub3RhdGlvbhgDIAEoCUIHCgV2YWx1ZSKlBQoJVHlw",
"ZVByb3RvEi0KC3RlbnNvcl90eXBlGAEgASgLMhYub25ueC5UeXBlUHJvdG8u",
"VGVuc29ySAASMQoNc2VxdWVuY2VfdHlwZRgEIAEoCzIYLm9ubnguVHlwZVBy",
"b3RvLlNlcXVlbmNlSAASJwoIbWFwX3R5cGUYBSABKAsyEy5vbm54LlR5cGVQ",
"cm90by5NYXBIABIxCg1vcHRpb25hbF90eXBlGAkgASgLMhgub25ueC5UeXBl",
"UHJvdG8uT3B0aW9uYWxIABI6ChJzcGFyc2VfdGVuc29yX3R5cGUYCCABKAsy",
"HC5vbm54LlR5cGVQcm90by5TcGFyc2VUZW5zb3JIABItCgtvcGFxdWVfdHlw",
"ZRgHIAEoCzIWLm9ubnguVHlwZVByb3RvLk9wYXF1ZUgAEhIKCmRlbm90YXRp",
"b24YBiABKAkaQgoGVGVuc29yEhEKCWVsZW1fdHlwZRgBIAEoBRIlCgVzaGFw",
"ZRgCIAEoCzIWLm9ubnguVGVuc29yU2hhcGVQcm90bxouCghTZXF1ZW5jZRIi",
"CgllbGVtX3R5cGUYASABKAsyDy5vbm54LlR5cGVQcm90bxo8CgNNYXASEAoI",
"a2V5X3R5cGUYASABKAUSIwoKdmFsdWVfdHlwZRgCIAEoCzIPLm9ubnguVHlw",
"ZVByb3RvGi4KCE9wdGlvbmFsEiIKCWVsZW1fdHlwZRgBIAEoCzIPLm9ubngu",
"VHlwZVByb3RvGkgKDFNwYXJzZVRlbnNvchIRCgllbGVtX3R5cGUYASABKAUS",
"JQoFc2hhcGUYAiABKAsyFi5vbm54LlRlbnNvclNoYXBlUHJvdG8aJgoGT3Bh",
"cXVlEg4KBmRvbWFpbhgBIAEoCRIMCgRuYW1lGAIgASgJQgcKBXZhbHVlIjUK",
"Ek9wZXJhdG9yU2V0SWRQcm90bxIOCgZkb21haW4YASABKAkSDwoHdmVyc2lv",
"bhgCIAEoAyLlAQoNRnVuY3Rpb25Qcm90bxIMCgRuYW1lGAEgASgJEg0KBWlu",
"cHV0GAQgAygJEg4KBm91dHB1dBgFIAMoCRIRCglhdHRyaWJ1dGUYBiADKAkS",
"HQoEbm9kZRgHIAMoCzIPLm9ubnguTm9kZVByb3RvEhIKCmRvY19zdHJpbmcY",
"CCABKAkSLgoMb3BzZXRfaW1wb3J0GAkgAygLMhgub25ueC5PcGVyYXRvclNl",
"dElkUHJvdG8SDgoGZG9tYWluGAogASgJSgQIAhADSgQIAxAEUg1zaW5jZV92",
"ZXJzaW9uUgZzdGF0dXMq5AEKB1ZlcnNpb24SEgoOX1NUQVJUX1ZFUlNJT04Q",
"ABIZChVJUl9WRVJTSU9OXzIwMTdfMTBfMTAQARIZChVJUl9WRVJTSU9OXzIw",
"MTdfMTBfMzAQAhIYChRJUl9WRVJTSU9OXzIwMTdfMTFfMxADEhgKFElSX1ZF",
"UlNJT05fMjAxOV8xXzIyEAQSGAoUSVJfVkVSU0lPTl8yMDE5XzNfMTgQBRIY",
"ChRJUl9WRVJTSU9OXzIwMTlfOV8xORAGEhcKE0lSX1ZFUlNJT05fMjAyMF81",
"XzgQBxIOCgpJUl9WRVJTSU9OEAgqLgoOT3BlcmF0b3JTdGF0dXMSEAoMRVhQ",
"RVJJTUVOVEFMEAASCgoGU1RBQkxFEAFCAkgDYgZwcm90bzM="));
"ChNvbm54L29ubngtbWwucHJvdG8zEgRvbm54IswFCg5BdHRyaWJ1dGVQcm90",
"bxIMCgRuYW1lGAEgASgJEhUKDXJlZl9hdHRyX25hbWUYFSABKAkSEgoKZG9j",
"X3N0cmluZxgNIAEoCRIwCgR0eXBlGBQgASgOMiIub25ueC5BdHRyaWJ1dGVQ",
"cm90by5BdHRyaWJ1dGVUeXBlEgkKAWYYAiABKAISCQoBaRgDIAEoAxIJCgFz",
"GAQgASgMEhwKAXQYBSABKAsyES5vbm54LlRlbnNvclByb3RvEhsKAWcYBiAB",
"KAsyEC5vbm54LkdyYXBoUHJvdG8SLgoNc3BhcnNlX3RlbnNvchgWIAEoCzIX",
"Lm9ubnguU3BhcnNlVGVuc29yUHJvdG8SGwoCdHAYDiABKAsyDy5vbm54LlR5",
"cGVQcm90bxIOCgZmbG9hdHMYByADKAISDAoEaW50cxgIIAMoAxIPCgdzdHJp",
"bmdzGAkgAygMEiIKB3RlbnNvcnMYCiADKAsyES5vbm54LlRlbnNvclByb3Rv",
"EiAKBmdyYXBocxgLIAMoCzIQLm9ubnguR3JhcGhQcm90bxIvCg5zcGFyc2Vf",
"dGVuc29ycxgXIAMoCzIXLm9ubnguU3BhcnNlVGVuc29yUHJvdG8SJAoLdHlw",
"ZV9wcm90b3MYDyADKAsyDy5vbm54LlR5cGVQcm90byLZAQoNQXR0cmlidXRl",
"VHlwZRINCglVTkRFRklORUQQABIJCgVGTE9BVBABEgcKA0lOVBACEgoKBlNU",
"UklORxADEgoKBlRFTlNPUhAEEgkKBUdSQVBIEAUSEQoNU1BBUlNFX1RFTlNP",
"UhALEg4KClRZUEVfUFJPVE8QDRIKCgZGTE9BVFMQBhIICgRJTlRTEAcSCwoH",
"U1RSSU5HUxAIEgsKB1RFTlNPUlMQCRIKCgZHUkFQSFMQChISCg5TUEFSU0Vf",
"VEVOU09SUxAMEg8KC1RZUEVfUFJPVE9TEA4iUQoOVmFsdWVJbmZvUHJvdG8S",
"DAoEbmFtZRgBIAEoCRIdCgR0eXBlGAIgASgLMg8ub25ueC5UeXBlUHJvdG8S",
"EgoKZG9jX3N0cmluZxgDIAEoCSKWAQoJTm9kZVByb3RvEg0KBWlucHV0GAEg",
"AygJEg4KBm91dHB1dBgCIAMoCRIMCgRuYW1lGAMgASgJEg8KB29wX3R5cGUY",
"BCABKAkSDgoGZG9tYWluGAcgASgJEicKCWF0dHJpYnV0ZRgFIAMoCzIULm9u",
"bnguQXR0cmlidXRlUHJvdG8SEgoKZG9jX3N0cmluZxgGIAEoCSLWAQoRVHJh",
"aW5pbmdJbmZvUHJvdG8SKAoOaW5pdGlhbGl6YXRpb24YASABKAsyEC5vbm54",
"LkdyYXBoUHJvdG8SIwoJYWxnb3JpdGhtGAIgASgLMhAub25ueC5HcmFwaFBy",
"b3RvEjwKFmluaXRpYWxpemF0aW9uX2JpbmRpbmcYAyADKAsyHC5vbm54LlN0",
"cmluZ1N0cmluZ0VudHJ5UHJvdG8SNAoOdXBkYXRlX2JpbmRpbmcYBCADKAsy",
"HC5vbm54LlN0cmluZ1N0cmluZ0VudHJ5UHJvdG8i6wIKCk1vZGVsUHJvdG8S",
"EgoKaXJfdmVyc2lvbhgBIAEoAxIuCgxvcHNldF9pbXBvcnQYCCADKAsyGC5v",
"bm54Lk9wZXJhdG9yU2V0SWRQcm90bxIVCg1wcm9kdWNlcl9uYW1lGAIgASgJ",
"EhgKEHByb2R1Y2VyX3ZlcnNpb24YAyABKAkSDgoGZG9tYWluGAQgASgJEhUK",
"DW1vZGVsX3ZlcnNpb24YBSABKAMSEgoKZG9jX3N0cmluZxgGIAEoCRIfCgVn",
"cmFwaBgHIAEoCzIQLm9ubnguR3JhcGhQcm90bxI0Cg5tZXRhZGF0YV9wcm9w",
"cxgOIAMoCzIcLm9ubnguU3RyaW5nU3RyaW5nRW50cnlQcm90bxIuCg10cmFp",
"bmluZ19pbmZvGBQgAygLMhcub25ueC5UcmFpbmluZ0luZm9Qcm90bxImCglm",
"dW5jdGlvbnMYGSADKAsyEy5vbm54LkZ1bmN0aW9uUHJvdG8iNAoWU3RyaW5n",
"U3RyaW5nRW50cnlQcm90bxILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAki",
"awoQVGVuc29yQW5ub3RhdGlvbhITCgt0ZW5zb3JfbmFtZRgBIAEoCRJCChxx",
"dWFudF9wYXJhbWV0ZXJfdGVuc29yX25hbWVzGAIgAygLMhwub25ueC5TdHJp",
"bmdTdHJpbmdFbnRyeVByb3RvIp4DCgpHcmFwaFByb3RvEh0KBG5vZGUYASAD",
"KAsyDy5vbm54Lk5vZGVQcm90bxIMCgRuYW1lGAIgASgJEiYKC2luaXRpYWxp",
"emVyGAUgAygLMhEub25ueC5UZW5zb3JQcm90bxIzChJzcGFyc2VfaW5pdGlh",
"bGl6ZXIYDyADKAsyFy5vbm54LlNwYXJzZVRlbnNvclByb3RvEhIKCmRvY19z",
"dHJpbmcYCiABKAkSIwoFaW5wdXQYCyADKAsyFC5vbm54LlZhbHVlSW5mb1By",
"b3RvEiQKBm91dHB1dBgMIAMoCzIULm9ubnguVmFsdWVJbmZvUHJvdG8SKAoK",
"dmFsdWVfaW5mbxgNIAMoCzIULm9ubnguVmFsdWVJbmZvUHJvdG8SNwoXcXVh",
"bnRpemF0aW9uX2Fubm90YXRpb24YDiADKAsyFi5vbm54LlRlbnNvckFubm90",
"YXRpb25KBAgDEARKBAgEEAVKBAgGEApSCmlyX3ZlcnNpb25SEHByb2R1Y2Vy",
"X3ZlcnNpb25SDHByb2R1Y2VyX3RhZ1IGZG9tYWluIoIGCgtUZW5zb3JQcm90",
"bxIMCgRkaW1zGAEgAygDEhEKCWRhdGFfdHlwZRgCIAEoBRIqCgdzZWdtZW50",
"GAMgASgLMhkub25ueC5UZW5zb3JQcm90by5TZWdtZW50EhYKCmZsb2F0X2Rh",
"dGEYBCADKAJCAhABEhYKCmludDMyX2RhdGEYBSADKAVCAhABEhMKC3N0cmlu",
"Z19kYXRhGAYgAygMEhYKCmludDY0X2RhdGEYByADKANCAhABEgwKBG5hbWUY",
"CCABKAkSEgoKZG9jX3N0cmluZxgMIAEoCRIQCghyYXdfZGF0YRgJIAEoDBIz",
"Cg1leHRlcm5hbF9kYXRhGA0gAygLMhwub25ueC5TdHJpbmdTdHJpbmdFbnRy",
"eVByb3RvEjUKDWRhdGFfbG9jYXRpb24YDiABKA4yHi5vbm54LlRlbnNvclBy",
"b3RvLkRhdGFMb2NhdGlvbhIXCgtkb3VibGVfZGF0YRgKIAMoAUICEAESFwoL",
"dWludDY0X2RhdGEYCyADKARCAhABGiUKB1NlZ21lbnQSDQoFYmVnaW4YASAB",
"KAMSCwoDZW5kGAIgASgDIqQCCghEYXRhVHlwZRINCglVTkRFRklORUQQABIJ",
"CgVGTE9BVBABEgkKBVVJTlQ4EAISCAoESU5UOBADEgoKBlVJTlQxNhAEEgkK",
"BUlOVDE2EAUSCQoFSU5UMzIQBhIJCgVJTlQ2NBAHEgoKBlNUUklORxAIEggK",
"BEJPT0wQCRILCgdGTE9BVDE2EAoSCgoGRE9VQkxFEAsSCgoGVUlOVDMyEAwS",
"CgoGVUlOVDY0EA0SDQoJQ09NUExFWDY0EA4SDgoKQ09NUExFWDEyOBAPEgwK",
"CEJGTE9BVDE2EBASEAoMRkxPQVQ4RTRNM0ZOEBESEgoORkxPQVQ4RTRNM0ZO",
"VVoQEhIOCgpGTE9BVDhFNU0yEBMSEgoORkxPQVQ4RTVNMkZOVVoQFCIpCgxE",
"YXRhTG9jYXRpb24SCwoHREVGQVVMVBAAEgwKCEVYVEVSTkFMEAEiaAoRU3Bh",
"cnNlVGVuc29yUHJvdG8SIQoGdmFsdWVzGAEgASgLMhEub25ueC5UZW5zb3JQ",
"cm90bxIiCgdpbmRpY2VzGAIgASgLMhEub25ueC5UZW5zb3JQcm90bxIMCgRk",
"aW1zGAMgAygDIpUBChBUZW5zb3JTaGFwZVByb3RvEi0KA2RpbRgBIAMoCzIg",
"Lm9ubnguVGVuc29yU2hhcGVQcm90by5EaW1lbnNpb24aUgoJRGltZW5zaW9u",
"EhMKCWRpbV92YWx1ZRgBIAEoA0gAEhMKCWRpbV9wYXJhbRgCIAEoCUgAEhIK",
"CmRlbm90YXRpb24YAyABKAlCBwoFdmFsdWUipQUKCVR5cGVQcm90bxItCgt0",
"ZW5zb3JfdHlwZRgBIAEoCzIWLm9ubnguVHlwZVByb3RvLlRlbnNvckgAEjEK",
"DXNlcXVlbmNlX3R5cGUYBCABKAsyGC5vbm54LlR5cGVQcm90by5TZXF1ZW5j",
"ZUgAEicKCG1hcF90eXBlGAUgASgLMhMub25ueC5UeXBlUHJvdG8uTWFwSAAS",
"MQoNb3B0aW9uYWxfdHlwZRgJIAEoCzIYLm9ubnguVHlwZVByb3RvLk9wdGlv",
"bmFsSAASOgoSc3BhcnNlX3RlbnNvcl90eXBlGAggASgLMhwub25ueC5UeXBl",
"UHJvdG8uU3BhcnNlVGVuc29ySAASLQoLb3BhcXVlX3R5cGUYByABKAsyFi5v",
"bm54LlR5cGVQcm90by5PcGFxdWVIABISCgpkZW5vdGF0aW9uGAYgASgJGkIK",
"BlRlbnNvchIRCgllbGVtX3R5cGUYASABKAUSJQoFc2hhcGUYAiABKAsyFi5v",
"bm54LlRlbnNvclNoYXBlUHJvdG8aLgoIU2VxdWVuY2USIgoJZWxlbV90eXBl",
"GAEgASgLMg8ub25ueC5UeXBlUHJvdG8aPAoDTWFwEhAKCGtleV90eXBlGAEg",
"ASgFEiMKCnZhbHVlX3R5cGUYAiABKAsyDy5vbm54LlR5cGVQcm90bxouCghP",
"cHRpb25hbBIiCgllbGVtX3R5cGUYASABKAsyDy5vbm54LlR5cGVQcm90bxpI",
"CgxTcGFyc2VUZW5zb3ISEQoJZWxlbV90eXBlGAEgASgFEiUKBXNoYXBlGAIg",
"ASgLMhYub25ueC5UZW5zb3JTaGFwZVByb3RvGiYKBk9wYXF1ZRIOCgZkb21h",
"aW4YASABKAkSDAoEbmFtZRgCIAEoCUIHCgV2YWx1ZSI1ChJPcGVyYXRvclNl",
"dElkUHJvdG8SDgoGZG9tYWluGAEgASgJEg8KB3ZlcnNpb24YAiABKAMilAIK",
"DUZ1bmN0aW9uUHJvdG8SDAoEbmFtZRgBIAEoCRINCgVpbnB1dBgEIAMoCRIO",
"CgZvdXRwdXQYBSADKAkSEQoJYXR0cmlidXRlGAYgAygJEi0KD2F0dHJpYnV0",
"ZV9wcm90bxgLIAMoCzIULm9ubnguQXR0cmlidXRlUHJvdG8SHQoEbm9kZRgH",
"IAMoCzIPLm9ubnguTm9kZVByb3RvEhIKCmRvY19zdHJpbmcYCCABKAkSLgoM",
"b3BzZXRfaW1wb3J0GAkgAygLMhgub25ueC5PcGVyYXRvclNldElkUHJvdG8S",
"DgoGZG9tYWluGAogASgJSgQIAhADSgQIAxAEUg1zaW5jZV92ZXJzaW9uUgZz",
"dGF0dXMq/gEKB1ZlcnNpb24SEgoOX1NUQVJUX1ZFUlNJT04QABIZChVJUl9W",
"RVJTSU9OXzIwMTdfMTBfMTAQARIZChVJUl9WRVJTSU9OXzIwMTdfMTBfMzAQ",
"AhIYChRJUl9WRVJTSU9OXzIwMTdfMTFfMxADEhgKFElSX1ZFUlNJT05fMjAx",
"OV8xXzIyEAQSGAoUSVJfVkVSU0lPTl8yMDE5XzNfMTgQBRIYChRJUl9WRVJT",
"SU9OXzIwMTlfOV8xORAGEhcKE0lSX1ZFUlNJT05fMjAyMF81XzgQBxIYChRJ",
"Ul9WRVJTSU9OXzIwMjFfN18zMBAIEg4KCklSX1ZFUlNJT04QCSouCg5PcGVy",
"YXRvclN0YXR1cxIQCgxFWFBFUklNRU5UQUwQABIKCgZTVEFCTEUQAUICSANi",
"BnByb3RvMw=="));
descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
new pbr::FileDescriptor[] { },
new pbr::GeneratedClrTypeInfo(new[] {typeof(global::Onnx.Version), typeof(global::Onnx.OperatorStatus), }, null, new pbr::GeneratedClrTypeInfo[] {
@ -142,7 +146,7 @@ namespace Onnx {
new pbr::GeneratedClrTypeInfo(typeof(global::Onnx.TypeProto.Types.SparseTensor), global::Onnx.TypeProto.Types.SparseTensor.Parser, new[]{ "ElemType", "Shape" }, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::Onnx.TypeProto.Types.Opaque), global::Onnx.TypeProto.Types.Opaque.Parser, new[]{ "Domain", "Name" }, null, null, null, null)}),
new pbr::GeneratedClrTypeInfo(typeof(global::Onnx.OperatorSetIdProto), global::Onnx.OperatorSetIdProto.Parser, new[]{ "Domain", "Version" }, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::Onnx.FunctionProto), global::Onnx.FunctionProto.Parser, new[]{ "Name", "Input", "Output", "Attribute", "Node", "DocString", "OpsetImport", "Domain" }, null, null, null, null)
new pbr::GeneratedClrTypeInfo(typeof(global::Onnx.FunctionProto), global::Onnx.FunctionProto.Parser, new[]{ "Name", "Input", "Output", "Attribute", "AttributeProto", "Node", "DocString", "OpsetImport", "Domain" }, null, null, null, null)
}));
}
#endregion
@ -216,13 +220,19 @@ namespace Onnx {
/// </summary>
[pbr::OriginalName("IR_VERSION_2020_5_8")] IrVersion202058 = 7,
/// <summary>
/// IR VERSION 8 published on &lt;TBD>
/// IR VERSION 8 published on July 30, 2021
/// Introduce TypeProto.SparseTensor
/// Introduce TypeProto.Optional
/// Added a list of FunctionProtos local to the model
/// Deprecated since_version and operator status from FunctionProto
/// </summary>
[pbr::OriginalName("IR_VERSION")] IrVersion = 8,
[pbr::OriginalName("IR_VERSION_2021_7_30")] IrVersion2021730 = 8,
/// <summary>
/// IR VERSION 9 published on TBD
/// Added AttributeProto to FunctionProto so that default attribute values can be set.
/// Added FLOAT8E4M3FN, FLOAT8E4M3FNUZ, FLOAT8E5M2, FLOAT8E5M2FNUZ.
/// </summary>
[pbr::OriginalName("IR_VERSION")] IrVersion = 9,
}
/// <summary>
@ -3860,11 +3870,11 @@ namespace Onnx {
= pb::FieldCodec.ForInt32(42);
private readonly pbc::RepeatedField<int> int32Data_ = new pbc::RepeatedField<int>();
/// <summary>
/// For int32, uint8, int8, uint16, int16, bool, and float16 values
/// float16 values must be bit-wise converted to an uint16_t prior
/// For int32, uint8, int8, uint16, int16, bool, float8, and float16 values
/// float16 and float8 values must be bit-wise converted to an uint16_t prior
/// to writing to the buffer.
/// When this field is present, the data_type field MUST be
/// INT32, INT16, INT8, UINT16, UINT8, BOOL, or FLOAT16
/// INT32, INT16, INT8, UINT16, UINT8, BOOL, FLOAT16, BFLOAT16, FLOAT8E4M3FN, FLOAT8E4M3FNUZ, FLOAT8E5M2, FLOAT8E5M2FNUZ
/// </summary>
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
@ -4486,6 +4496,27 @@ namespace Onnx {
/// This format has 1 sign bit, 8 exponent bits, and 7 mantissa bits.
/// </summary>
[pbr::OriginalName("BFLOAT16")] Bfloat16 = 16,
/// <summary>
/// Non-IEEE floating-point format based on papers
/// FP8 Formats for Deep Learning, https://arxiv.org/abs/2209.05433,
/// 8-bit Numerical Formats For Deep Neural Networks, https://arxiv.org/pdf/2206.02915.pdf.
/// Operators supported FP8 are Cast, CastLike, QuantizeLinear, DequantizeLinear.
/// The computation usually happens inside a block quantize / dequantize
/// fused by the runtime.
/// </summary>
[pbr::OriginalName("FLOAT8E4M3FN")] Float8E4M3Fn = 17,
/// <summary>
/// float 8, mostly used for coefficients, supports nan, not inf, no negative zero
/// </summary>
[pbr::OriginalName("FLOAT8E4M3FNUZ")] Float8E4M3Fnuz = 18,
/// <summary>
/// follows IEEE 754, supports nan, inf, mostly used for gradients
/// </summary>
[pbr::OriginalName("FLOAT8E5M2")] Float8E5M2 = 19,
/// <summary>
/// follows IEEE 754, supports nan, inf, mostly used for gradients, no negative zero
/// </summary>
[pbr::OriginalName("FLOAT8E5M2FNUZ")] Float8E5M2Fnuz = 20,
}
/// <summary>
@ -7743,6 +7774,7 @@ namespace Onnx {
input_ = other.input_.Clone();
output_ = other.output_.Clone();
attribute_ = other.attribute_.Clone();
attributeProto_ = other.attributeProto_.Clone();
node_ = other.node_.Clone();
docString_ = other.docString_;
opsetImport_ = other.opsetImport_.Clone();
@ -7804,7 +7836,8 @@ namespace Onnx {
= pb::FieldCodec.ForString(50);
private readonly pbc::RepeatedField<string> attribute_ = new pbc::RepeatedField<string>();
/// <summary>
/// The attributes of the function.
/// The attribute parameters of the function.
/// It is for function parameters without default values.
/// </summary>
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
@ -7812,6 +7845,23 @@ namespace Onnx {
get { return attribute_; }
}
/// <summary>Field number for the "attribute_proto" field.</summary>
public const int AttributeProtoFieldNumber = 11;
private static readonly pb::FieldCodec<global::Onnx.AttributeProto> _repeated_attributeProto_codec
= pb::FieldCodec.ForMessage(90, global::Onnx.AttributeProto.Parser);
private readonly pbc::RepeatedField<global::Onnx.AttributeProto> attributeProto_ = new pbc::RepeatedField<global::Onnx.AttributeProto>();
/// <summary>
/// The attribute protos of the function.
/// It is for function attributes with default values.
/// A function attribute shall be represented either as
/// a string attribute or an AttributeProto, not both.
/// </summary>
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public pbc::RepeatedField<global::Onnx.AttributeProto> AttributeProto {
get { return attributeProto_; }
}
/// <summary>Field number for the "node" field.</summary>
public const int NodeFieldNumber = 7;
private static readonly pb::FieldCodec<global::Onnx.NodeProto> _repeated_node_codec
@ -7887,6 +7937,7 @@ namespace Onnx {
if(!input_.Equals(other.input_)) return false;
if(!output_.Equals(other.output_)) return false;
if(!attribute_.Equals(other.attribute_)) return false;
if(!attributeProto_.Equals(other.attributeProto_)) return false;
if(!node_.Equals(other.node_)) return false;
if (DocString != other.DocString) return false;
if(!opsetImport_.Equals(other.opsetImport_)) return false;
@ -7902,6 +7953,7 @@ namespace Onnx {
hash ^= input_.GetHashCode();
hash ^= output_.GetHashCode();
hash ^= attribute_.GetHashCode();
hash ^= attributeProto_.GetHashCode();
hash ^= node_.GetHashCode();
if (DocString.Length != 0) hash ^= DocString.GetHashCode();
hash ^= opsetImport_.GetHashCode();
@ -7941,6 +7993,7 @@ namespace Onnx {
output.WriteRawTag(82);
output.WriteString(Domain);
}
attributeProto_.WriteTo(output, _repeated_attributeProto_codec);
if (_unknownFields != null) {
_unknownFields.WriteTo(output);
}
@ -7968,6 +8021,7 @@ namespace Onnx {
output.WriteRawTag(82);
output.WriteString(Domain);
}
attributeProto_.WriteTo(ref output, _repeated_attributeProto_codec);
if (_unknownFields != null) {
_unknownFields.WriteTo(ref output);
}
@ -7984,6 +8038,7 @@ namespace Onnx {
size += input_.CalculateSize(_repeated_input_codec);
size += output_.CalculateSize(_repeated_output_codec);
size += attribute_.CalculateSize(_repeated_attribute_codec);
size += attributeProto_.CalculateSize(_repeated_attributeProto_codec);
size += node_.CalculateSize(_repeated_node_codec);
if (DocString.Length != 0) {
size += 1 + pb::CodedOutputStream.ComputeStringSize(DocString);
@ -8010,6 +8065,7 @@ namespace Onnx {
input_.Add(other.input_);
output_.Add(other.output_);
attribute_.Add(other.attribute_);
attributeProto_.Add(other.attributeProto_);
node_.Add(other.node_);
if (other.DocString.Length != 0) {
DocString = other.DocString;
@ -8065,6 +8121,10 @@ namespace Onnx {
Domain = input.ReadString();
break;
}
case 90: {
attributeProto_.AddEntriesFrom(input, _repeated_attributeProto_codec);
break;
}
}
}
#endif
@ -8112,6 +8172,10 @@ namespace Onnx {
Domain = input.ReadString();
break;
}
case 90: {
attributeProto_.AddEntriesFrom(ref input, _repeated_attributeProto_codec);
break;
}
}
}
}