1// Code generated by protoc-gen-go. DO NOT EDIT.
2// source: config.proto
3
4package android_bundle_proto
5
6import (
7	fmt "fmt"
8	proto "github.com/golang/protobuf/proto"
9	math "math"
10)
11
12// Reference imports to suppress errors if they are not otherwise used.
13var _ = proto.Marshal
14var _ = fmt.Errorf
15var _ = math.Inf
16
17// This is a compile-time assertion to ensure that this generated file
18// is compatible with the proto package it is being compiled against.
19// A compilation error at this line likely means your copy of the
20// proto package needs to be updated.
21const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package
22
23type BundleConfig_BundleType int32
24
25const (
26	BundleConfig_REGULAR    BundleConfig_BundleType = 0
27	BundleConfig_APEX       BundleConfig_BundleType = 1
28	BundleConfig_ASSET_ONLY BundleConfig_BundleType = 2
29)
30
31var BundleConfig_BundleType_name = map[int32]string{
32	0: "REGULAR",
33	1: "APEX",
34	2: "ASSET_ONLY",
35}
36
37var BundleConfig_BundleType_value = map[string]int32{
38	"REGULAR":    0,
39	"APEX":       1,
40	"ASSET_ONLY": 2,
41}
42
43func (x BundleConfig_BundleType) String() string {
44	return proto.EnumName(BundleConfig_BundleType_name, int32(x))
45}
46
47func (BundleConfig_BundleType) EnumDescriptor() ([]byte, []int) {
48	return fileDescriptor_3eaf2c85e69e9ea4, []int{0, 0}
49}
50
51type SplitDimension_Value int32
52
53const (
54	SplitDimension_UNSPECIFIED_VALUE          SplitDimension_Value = 0
55	SplitDimension_ABI                        SplitDimension_Value = 1
56	SplitDimension_SCREEN_DENSITY             SplitDimension_Value = 2
57	SplitDimension_LANGUAGE                   SplitDimension_Value = 3
58	SplitDimension_TEXTURE_COMPRESSION_FORMAT SplitDimension_Value = 4
59	// BEGIN-INTERNAL
60	SplitDimension_GRAPHICS_API SplitDimension_Value = 5
61)
62
63var SplitDimension_Value_name = map[int32]string{
64	0: "UNSPECIFIED_VALUE",
65	1: "ABI",
66	2: "SCREEN_DENSITY",
67	3: "LANGUAGE",
68	4: "TEXTURE_COMPRESSION_FORMAT",
69	5: "GRAPHICS_API",
70}
71
72var SplitDimension_Value_value = map[string]int32{
73	"UNSPECIFIED_VALUE":          0,
74	"ABI":                        1,
75	"SCREEN_DENSITY":             2,
76	"LANGUAGE":                   3,
77	"TEXTURE_COMPRESSION_FORMAT": 4,
78	"GRAPHICS_API":               5,
79}
80
81func (x SplitDimension_Value) String() string {
82	return proto.EnumName(SplitDimension_Value_name, int32(x))
83}
84
85func (SplitDimension_Value) EnumDescriptor() ([]byte, []int) {
86	return fileDescriptor_3eaf2c85e69e9ea4, []int{9, 0}
87}
88
89type BundleConfig struct {
90	Bundletool    *Bundletool    `protobuf:"bytes,1,opt,name=bundletool,proto3" json:"bundletool,omitempty"`
91	Optimizations *Optimizations `protobuf:"bytes,2,opt,name=optimizations,proto3" json:"optimizations,omitempty"`
92	Compression   *Compression   `protobuf:"bytes,3,opt,name=compression,proto3" json:"compression,omitempty"`
93	// Resources to be always kept in the master split.
94	MasterResources *MasterResources `protobuf:"bytes,4,opt,name=master_resources,json=masterResources,proto3" json:"master_resources,omitempty"`
95	ApexConfig      *ApexConfig      `protobuf:"bytes,5,opt,name=apex_config,json=apexConfig,proto3" json:"apex_config,omitempty"`
96	// APKs to be signed with the same key as generated APKs.
97	UnsignedEmbeddedApkConfig []*UnsignedEmbeddedApkConfig `protobuf:"bytes,6,rep,name=unsigned_embedded_apk_config,json=unsignedEmbeddedApkConfig,proto3" json:"unsigned_embedded_apk_config,omitempty"`
98	AssetModulesConfig        *AssetModulesConfig          `protobuf:"bytes,7,opt,name=asset_modules_config,json=assetModulesConfig,proto3" json:"asset_modules_config,omitempty"`
99	Type                      BundleConfig_BundleType      `protobuf:"varint,8,opt,name=type,proto3,enum=android.bundle.BundleConfig_BundleType" json:"type,omitempty"`
100	XXX_NoUnkeyedLiteral      struct{}                     `json:"-"`
101	XXX_unrecognized          []byte                       `json:"-"`
102	XXX_sizecache             int32                        `json:"-"`
103}
104
105func (m *BundleConfig) Reset()         { *m = BundleConfig{} }
106func (m *BundleConfig) String() string { return proto.CompactTextString(m) }
107func (*BundleConfig) ProtoMessage()    {}
108func (*BundleConfig) Descriptor() ([]byte, []int) {
109	return fileDescriptor_3eaf2c85e69e9ea4, []int{0}
110}
111
112func (m *BundleConfig) XXX_Unmarshal(b []byte) error {
113	return xxx_messageInfo_BundleConfig.Unmarshal(m, b)
114}
115func (m *BundleConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
116	return xxx_messageInfo_BundleConfig.Marshal(b, m, deterministic)
117}
118func (m *BundleConfig) XXX_Merge(src proto.Message) {
119	xxx_messageInfo_BundleConfig.Merge(m, src)
120}
121func (m *BundleConfig) XXX_Size() int {
122	return xxx_messageInfo_BundleConfig.Size(m)
123}
124func (m *BundleConfig) XXX_DiscardUnknown() {
125	xxx_messageInfo_BundleConfig.DiscardUnknown(m)
126}
127
128var xxx_messageInfo_BundleConfig proto.InternalMessageInfo
129
130func (m *BundleConfig) GetBundletool() *Bundletool {
131	if m != nil {
132		return m.Bundletool
133	}
134	return nil
135}
136
137func (m *BundleConfig) GetOptimizations() *Optimizations {
138	if m != nil {
139		return m.Optimizations
140	}
141	return nil
142}
143
144func (m *BundleConfig) GetCompression() *Compression {
145	if m != nil {
146		return m.Compression
147	}
148	return nil
149}
150
151func (m *BundleConfig) GetMasterResources() *MasterResources {
152	if m != nil {
153		return m.MasterResources
154	}
155	return nil
156}
157
158func (m *BundleConfig) GetApexConfig() *ApexConfig {
159	if m != nil {
160		return m.ApexConfig
161	}
162	return nil
163}
164
165func (m *BundleConfig) GetUnsignedEmbeddedApkConfig() []*UnsignedEmbeddedApkConfig {
166	if m != nil {
167		return m.UnsignedEmbeddedApkConfig
168	}
169	return nil
170}
171
172func (m *BundleConfig) GetAssetModulesConfig() *AssetModulesConfig {
173	if m != nil {
174		return m.AssetModulesConfig
175	}
176	return nil
177}
178
179func (m *BundleConfig) GetType() BundleConfig_BundleType {
180	if m != nil {
181		return m.Type
182	}
183	return BundleConfig_REGULAR
184}
185
186type Bundletool struct {
187	// Version of BundleTool used to build the Bundle.
188	Version              string   `protobuf:"bytes,2,opt,name=version,proto3" json:"version,omitempty"`
189	XXX_NoUnkeyedLiteral struct{} `json:"-"`
190	XXX_unrecognized     []byte   `json:"-"`
191	XXX_sizecache        int32    `json:"-"`
192}
193
194func (m *Bundletool) Reset()         { *m = Bundletool{} }
195func (m *Bundletool) String() string { return proto.CompactTextString(m) }
196func (*Bundletool) ProtoMessage()    {}
197func (*Bundletool) Descriptor() ([]byte, []int) {
198	return fileDescriptor_3eaf2c85e69e9ea4, []int{1}
199}
200
201func (m *Bundletool) XXX_Unmarshal(b []byte) error {
202	return xxx_messageInfo_Bundletool.Unmarshal(m, b)
203}
204func (m *Bundletool) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
205	return xxx_messageInfo_Bundletool.Marshal(b, m, deterministic)
206}
207func (m *Bundletool) XXX_Merge(src proto.Message) {
208	xxx_messageInfo_Bundletool.Merge(m, src)
209}
210func (m *Bundletool) XXX_Size() int {
211	return xxx_messageInfo_Bundletool.Size(m)
212}
213func (m *Bundletool) XXX_DiscardUnknown() {
214	xxx_messageInfo_Bundletool.DiscardUnknown(m)
215}
216
217var xxx_messageInfo_Bundletool proto.InternalMessageInfo
218
219func (m *Bundletool) GetVersion() string {
220	if m != nil {
221		return m.Version
222	}
223	return ""
224}
225
226type Compression struct {
227	// Glob matching the list of files to leave uncompressed in the APKs.
228	// The matching is done against the path of files in the APK, thus excluding
229	// the name of the modules, and using forward slash ("/") as a name separator.
230	// Examples: "res/raw/**", "assets/**/*.uncompressed", etc.
231	UncompressedGlob     []string `protobuf:"bytes,1,rep,name=uncompressed_glob,json=uncompressedGlob,proto3" json:"uncompressed_glob,omitempty"`
232	XXX_NoUnkeyedLiteral struct{} `json:"-"`
233	XXX_unrecognized     []byte   `json:"-"`
234	XXX_sizecache        int32    `json:"-"`
235}
236
237func (m *Compression) Reset()         { *m = Compression{} }
238func (m *Compression) String() string { return proto.CompactTextString(m) }
239func (*Compression) ProtoMessage()    {}
240func (*Compression) Descriptor() ([]byte, []int) {
241	return fileDescriptor_3eaf2c85e69e9ea4, []int{2}
242}
243
244func (m *Compression) XXX_Unmarshal(b []byte) error {
245	return xxx_messageInfo_Compression.Unmarshal(m, b)
246}
247func (m *Compression) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
248	return xxx_messageInfo_Compression.Marshal(b, m, deterministic)
249}
250func (m *Compression) XXX_Merge(src proto.Message) {
251	xxx_messageInfo_Compression.Merge(m, src)
252}
253func (m *Compression) XXX_Size() int {
254	return xxx_messageInfo_Compression.Size(m)
255}
256func (m *Compression) XXX_DiscardUnknown() {
257	xxx_messageInfo_Compression.DiscardUnknown(m)
258}
259
260var xxx_messageInfo_Compression proto.InternalMessageInfo
261
262func (m *Compression) GetUncompressedGlob() []string {
263	if m != nil {
264		return m.UncompressedGlob
265	}
266	return nil
267}
268
269// Resources to keep in the master split.
270type MasterResources struct {
271	// Resource IDs to be kept in master split.
272	ResourceIds []int32 `protobuf:"varint,1,rep,packed,name=resource_ids,json=resourceIds,proto3" json:"resource_ids,omitempty"`
273	// Resource names to be kept in master split.
274	ResourceNames        []string `protobuf:"bytes,2,rep,name=resource_names,json=resourceNames,proto3" json:"resource_names,omitempty"`
275	XXX_NoUnkeyedLiteral struct{} `json:"-"`
276	XXX_unrecognized     []byte   `json:"-"`
277	XXX_sizecache        int32    `json:"-"`
278}
279
280func (m *MasterResources) Reset()         { *m = MasterResources{} }
281func (m *MasterResources) String() string { return proto.CompactTextString(m) }
282func (*MasterResources) ProtoMessage()    {}
283func (*MasterResources) Descriptor() ([]byte, []int) {
284	return fileDescriptor_3eaf2c85e69e9ea4, []int{3}
285}
286
287func (m *MasterResources) XXX_Unmarshal(b []byte) error {
288	return xxx_messageInfo_MasterResources.Unmarshal(m, b)
289}
290func (m *MasterResources) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
291	return xxx_messageInfo_MasterResources.Marshal(b, m, deterministic)
292}
293func (m *MasterResources) XXX_Merge(src proto.Message) {
294	xxx_messageInfo_MasterResources.Merge(m, src)
295}
296func (m *MasterResources) XXX_Size() int {
297	return xxx_messageInfo_MasterResources.Size(m)
298}
299func (m *MasterResources) XXX_DiscardUnknown() {
300	xxx_messageInfo_MasterResources.DiscardUnknown(m)
301}
302
303var xxx_messageInfo_MasterResources proto.InternalMessageInfo
304
305func (m *MasterResources) GetResourceIds() []int32 {
306	if m != nil {
307		return m.ResourceIds
308	}
309	return nil
310}
311
312func (m *MasterResources) GetResourceNames() []string {
313	if m != nil {
314		return m.ResourceNames
315	}
316	return nil
317}
318
319type Optimizations struct {
320	SplitsConfig *SplitsConfig `protobuf:"bytes,1,opt,name=splits_config,json=splitsConfig,proto3" json:"splits_config,omitempty"`
321	// This is for uncompressing native libraries on M+ devices (L+ devices on
322	// instant apps).
323	UncompressNativeLibraries *UncompressNativeLibraries `protobuf:"bytes,2,opt,name=uncompress_native_libraries,json=uncompressNativeLibraries,proto3" json:"uncompress_native_libraries,omitempty"`
324	// This is for uncompressing dex files on P+ devices.
325	UncompressDexFiles *UncompressDexFiles `protobuf:"bytes,3,opt,name=uncompress_dex_files,json=uncompressDexFiles,proto3" json:"uncompress_dex_files,omitempty"`
326	// Configuration for the generation of standalone APKs.
327	// If no StandaloneConfig is set, the configuration is inherited from
328	// splits_config.
329	StandaloneConfig     *StandaloneConfig `protobuf:"bytes,4,opt,name=standalone_config,json=standaloneConfig,proto3" json:"standalone_config,omitempty"`
330	XXX_NoUnkeyedLiteral struct{}          `json:"-"`
331	XXX_unrecognized     []byte            `json:"-"`
332	XXX_sizecache        int32             `json:"-"`
333}
334
335func (m *Optimizations) Reset()         { *m = Optimizations{} }
336func (m *Optimizations) String() string { return proto.CompactTextString(m) }
337func (*Optimizations) ProtoMessage()    {}
338func (*Optimizations) Descriptor() ([]byte, []int) {
339	return fileDescriptor_3eaf2c85e69e9ea4, []int{4}
340}
341
342func (m *Optimizations) XXX_Unmarshal(b []byte) error {
343	return xxx_messageInfo_Optimizations.Unmarshal(m, b)
344}
345func (m *Optimizations) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
346	return xxx_messageInfo_Optimizations.Marshal(b, m, deterministic)
347}
348func (m *Optimizations) XXX_Merge(src proto.Message) {
349	xxx_messageInfo_Optimizations.Merge(m, src)
350}
351func (m *Optimizations) XXX_Size() int {
352	return xxx_messageInfo_Optimizations.Size(m)
353}
354func (m *Optimizations) XXX_DiscardUnknown() {
355	xxx_messageInfo_Optimizations.DiscardUnknown(m)
356}
357
358var xxx_messageInfo_Optimizations proto.InternalMessageInfo
359
360func (m *Optimizations) GetSplitsConfig() *SplitsConfig {
361	if m != nil {
362		return m.SplitsConfig
363	}
364	return nil
365}
366
367func (m *Optimizations) GetUncompressNativeLibraries() *UncompressNativeLibraries {
368	if m != nil {
369		return m.UncompressNativeLibraries
370	}
371	return nil
372}
373
374func (m *Optimizations) GetUncompressDexFiles() *UncompressDexFiles {
375	if m != nil {
376		return m.UncompressDexFiles
377	}
378	return nil
379}
380
381func (m *Optimizations) GetStandaloneConfig() *StandaloneConfig {
382	if m != nil {
383		return m.StandaloneConfig
384	}
385	return nil
386}
387
388type UncompressNativeLibraries struct {
389	Enabled              bool     `protobuf:"varint,1,opt,name=enabled,proto3" json:"enabled,omitempty"`
390	XXX_NoUnkeyedLiteral struct{} `json:"-"`
391	XXX_unrecognized     []byte   `json:"-"`
392	XXX_sizecache        int32    `json:"-"`
393}
394
395func (m *UncompressNativeLibraries) Reset()         { *m = UncompressNativeLibraries{} }
396func (m *UncompressNativeLibraries) String() string { return proto.CompactTextString(m) }
397func (*UncompressNativeLibraries) ProtoMessage()    {}
398func (*UncompressNativeLibraries) Descriptor() ([]byte, []int) {
399	return fileDescriptor_3eaf2c85e69e9ea4, []int{5}
400}
401
402func (m *UncompressNativeLibraries) XXX_Unmarshal(b []byte) error {
403	return xxx_messageInfo_UncompressNativeLibraries.Unmarshal(m, b)
404}
405func (m *UncompressNativeLibraries) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
406	return xxx_messageInfo_UncompressNativeLibraries.Marshal(b, m, deterministic)
407}
408func (m *UncompressNativeLibraries) XXX_Merge(src proto.Message) {
409	xxx_messageInfo_UncompressNativeLibraries.Merge(m, src)
410}
411func (m *UncompressNativeLibraries) XXX_Size() int {
412	return xxx_messageInfo_UncompressNativeLibraries.Size(m)
413}
414func (m *UncompressNativeLibraries) XXX_DiscardUnknown() {
415	xxx_messageInfo_UncompressNativeLibraries.DiscardUnknown(m)
416}
417
418var xxx_messageInfo_UncompressNativeLibraries proto.InternalMessageInfo
419
420func (m *UncompressNativeLibraries) GetEnabled() bool {
421	if m != nil {
422		return m.Enabled
423	}
424	return false
425}
426
427type UncompressDexFiles struct {
428	Enabled              bool     `protobuf:"varint,1,opt,name=enabled,proto3" json:"enabled,omitempty"`
429	XXX_NoUnkeyedLiteral struct{} `json:"-"`
430	XXX_unrecognized     []byte   `json:"-"`
431	XXX_sizecache        int32    `json:"-"`
432}
433
434func (m *UncompressDexFiles) Reset()         { *m = UncompressDexFiles{} }
435func (m *UncompressDexFiles) String() string { return proto.CompactTextString(m) }
436func (*UncompressDexFiles) ProtoMessage()    {}
437func (*UncompressDexFiles) Descriptor() ([]byte, []int) {
438	return fileDescriptor_3eaf2c85e69e9ea4, []int{6}
439}
440
441func (m *UncompressDexFiles) XXX_Unmarshal(b []byte) error {
442	return xxx_messageInfo_UncompressDexFiles.Unmarshal(m, b)
443}
444func (m *UncompressDexFiles) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
445	return xxx_messageInfo_UncompressDexFiles.Marshal(b, m, deterministic)
446}
447func (m *UncompressDexFiles) XXX_Merge(src proto.Message) {
448	xxx_messageInfo_UncompressDexFiles.Merge(m, src)
449}
450func (m *UncompressDexFiles) XXX_Size() int {
451	return xxx_messageInfo_UncompressDexFiles.Size(m)
452}
453func (m *UncompressDexFiles) XXX_DiscardUnknown() {
454	xxx_messageInfo_UncompressDexFiles.DiscardUnknown(m)
455}
456
457var xxx_messageInfo_UncompressDexFiles proto.InternalMessageInfo
458
459func (m *UncompressDexFiles) GetEnabled() bool {
460	if m != nil {
461		return m.Enabled
462	}
463	return false
464}
465
466// Optimization configuration used to generate Split APKs.
467type SplitsConfig struct {
468	SplitDimension       []*SplitDimension `protobuf:"bytes,1,rep,name=split_dimension,json=splitDimension,proto3" json:"split_dimension,omitempty"`
469	XXX_NoUnkeyedLiteral struct{}          `json:"-"`
470	XXX_unrecognized     []byte            `json:"-"`
471	XXX_sizecache        int32             `json:"-"`
472}
473
474func (m *SplitsConfig) Reset()         { *m = SplitsConfig{} }
475func (m *SplitsConfig) String() string { return proto.CompactTextString(m) }
476func (*SplitsConfig) ProtoMessage()    {}
477func (*SplitsConfig) Descriptor() ([]byte, []int) {
478	return fileDescriptor_3eaf2c85e69e9ea4, []int{7}
479}
480
481func (m *SplitsConfig) XXX_Unmarshal(b []byte) error {
482	return xxx_messageInfo_SplitsConfig.Unmarshal(m, b)
483}
484func (m *SplitsConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
485	return xxx_messageInfo_SplitsConfig.Marshal(b, m, deterministic)
486}
487func (m *SplitsConfig) XXX_Merge(src proto.Message) {
488	xxx_messageInfo_SplitsConfig.Merge(m, src)
489}
490func (m *SplitsConfig) XXX_Size() int {
491	return xxx_messageInfo_SplitsConfig.Size(m)
492}
493func (m *SplitsConfig) XXX_DiscardUnknown() {
494	xxx_messageInfo_SplitsConfig.DiscardUnknown(m)
495}
496
497var xxx_messageInfo_SplitsConfig proto.InternalMessageInfo
498
499func (m *SplitsConfig) GetSplitDimension() []*SplitDimension {
500	if m != nil {
501		return m.SplitDimension
502	}
503	return nil
504}
505
506// Optimization configuration used to generate Standalone APKs.
507type StandaloneConfig struct {
508	// Device targeting dimensions to shard.
509	SplitDimension []*SplitDimension `protobuf:"bytes,1,rep,name=split_dimension,json=splitDimension,proto3" json:"split_dimension,omitempty"`
510	// Whether 64 bit libraries should be stripped from Standalone APKs.
511	Strip_64BitLibraries bool     `protobuf:"varint,2,opt,name=strip_64_bit_libraries,json=strip64BitLibraries,proto3" json:"strip_64_bit_libraries,omitempty"`
512	XXX_NoUnkeyedLiteral struct{} `json:"-"`
513	XXX_unrecognized     []byte   `json:"-"`
514	XXX_sizecache        int32    `json:"-"`
515}
516
517func (m *StandaloneConfig) Reset()         { *m = StandaloneConfig{} }
518func (m *StandaloneConfig) String() string { return proto.CompactTextString(m) }
519func (*StandaloneConfig) ProtoMessage()    {}
520func (*StandaloneConfig) Descriptor() ([]byte, []int) {
521	return fileDescriptor_3eaf2c85e69e9ea4, []int{8}
522}
523
524func (m *StandaloneConfig) XXX_Unmarshal(b []byte) error {
525	return xxx_messageInfo_StandaloneConfig.Unmarshal(m, b)
526}
527func (m *StandaloneConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
528	return xxx_messageInfo_StandaloneConfig.Marshal(b, m, deterministic)
529}
530func (m *StandaloneConfig) XXX_Merge(src proto.Message) {
531	xxx_messageInfo_StandaloneConfig.Merge(m, src)
532}
533func (m *StandaloneConfig) XXX_Size() int {
534	return xxx_messageInfo_StandaloneConfig.Size(m)
535}
536func (m *StandaloneConfig) XXX_DiscardUnknown() {
537	xxx_messageInfo_StandaloneConfig.DiscardUnknown(m)
538}
539
540var xxx_messageInfo_StandaloneConfig proto.InternalMessageInfo
541
542func (m *StandaloneConfig) GetSplitDimension() []*SplitDimension {
543	if m != nil {
544		return m.SplitDimension
545	}
546	return nil
547}
548
549func (m *StandaloneConfig) GetStrip_64BitLibraries() bool {
550	if m != nil {
551		return m.Strip_64BitLibraries
552	}
553	return false
554}
555
556type SplitDimension struct {
557	Value SplitDimension_Value `protobuf:"varint,1,opt,name=value,proto3,enum=android.bundle.SplitDimension_Value" json:"value,omitempty"`
558	// If set to 'true', indicates that APKs should *not* be split by this
559	// dimension.
560	Negate bool `protobuf:"varint,2,opt,name=negate,proto3" json:"negate,omitempty"`
561	// Optional transformation to be applied to asset directories where
562	// the targeting is encoded in the directory name (e.g: assets/foo#tcf_etc1)
563	SuffixStripping      *SuffixStripping `protobuf:"bytes,3,opt,name=suffix_stripping,json=suffixStripping,proto3" json:"suffix_stripping,omitempty"`
564	XXX_NoUnkeyedLiteral struct{}         `json:"-"`
565	XXX_unrecognized     []byte           `json:"-"`
566	XXX_sizecache        int32            `json:"-"`
567}
568
569func (m *SplitDimension) Reset()         { *m = SplitDimension{} }
570func (m *SplitDimension) String() string { return proto.CompactTextString(m) }
571func (*SplitDimension) ProtoMessage()    {}
572func (*SplitDimension) Descriptor() ([]byte, []int) {
573	return fileDescriptor_3eaf2c85e69e9ea4, []int{9}
574}
575
576func (m *SplitDimension) XXX_Unmarshal(b []byte) error {
577	return xxx_messageInfo_SplitDimension.Unmarshal(m, b)
578}
579func (m *SplitDimension) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
580	return xxx_messageInfo_SplitDimension.Marshal(b, m, deterministic)
581}
582func (m *SplitDimension) XXX_Merge(src proto.Message) {
583	xxx_messageInfo_SplitDimension.Merge(m, src)
584}
585func (m *SplitDimension) XXX_Size() int {
586	return xxx_messageInfo_SplitDimension.Size(m)
587}
588func (m *SplitDimension) XXX_DiscardUnknown() {
589	xxx_messageInfo_SplitDimension.DiscardUnknown(m)
590}
591
592var xxx_messageInfo_SplitDimension proto.InternalMessageInfo
593
594func (m *SplitDimension) GetValue() SplitDimension_Value {
595	if m != nil {
596		return m.Value
597	}
598	return SplitDimension_UNSPECIFIED_VALUE
599}
600
601func (m *SplitDimension) GetNegate() bool {
602	if m != nil {
603		return m.Negate
604	}
605	return false
606}
607
608func (m *SplitDimension) GetSuffixStripping() *SuffixStripping {
609	if m != nil {
610		return m.SuffixStripping
611	}
612	return nil
613}
614
615type SuffixStripping struct {
616	// If set to 'true', indicates that the targeting suffix should be removed
617	// from assets paths for this dimension when splits (or asset slices) are
618	// generated.
619	// This only applies to assets.
620	// For example a folder with path "assets/level1_textures#tcf_etc1"
621	// would be outputted to "assets/level1_textures". File contents are
622	// unchanged.
623	Enabled bool `protobuf:"varint,1,opt,name=enabled,proto3" json:"enabled,omitempty"`
624	// The default suffix to be used for the cases where separate slices can't
625	// be generated for this dimension. In the case of standalone/universal APKs
626	// generation, stripping the suffix can lead to file name collisions. This
627	// default suffix defines the directories to retain. The others are
628	// discarded: standalone/universal APKs will contain only directories
629	// targeted at this value for the dimension.
630	//
631	// If not set or empty, the fallback directory in each directory group will be
632	// used (for example, if both "assets/level1_textures#tcf_etc1" and
633	// "assets/level1_textures" are present and the default suffix is empty,
634	// then only "assets/level1_textures" will be used).
635	DefaultSuffix        string   `protobuf:"bytes,2,opt,name=default_suffix,json=defaultSuffix,proto3" json:"default_suffix,omitempty"`
636	XXX_NoUnkeyedLiteral struct{} `json:"-"`
637	XXX_unrecognized     []byte   `json:"-"`
638	XXX_sizecache        int32    `json:"-"`
639}
640
641func (m *SuffixStripping) Reset()         { *m = SuffixStripping{} }
642func (m *SuffixStripping) String() string { return proto.CompactTextString(m) }
643func (*SuffixStripping) ProtoMessage()    {}
644func (*SuffixStripping) Descriptor() ([]byte, []int) {
645	return fileDescriptor_3eaf2c85e69e9ea4, []int{10}
646}
647
648func (m *SuffixStripping) XXX_Unmarshal(b []byte) error {
649	return xxx_messageInfo_SuffixStripping.Unmarshal(m, b)
650}
651func (m *SuffixStripping) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
652	return xxx_messageInfo_SuffixStripping.Marshal(b, m, deterministic)
653}
654func (m *SuffixStripping) XXX_Merge(src proto.Message) {
655	xxx_messageInfo_SuffixStripping.Merge(m, src)
656}
657func (m *SuffixStripping) XXX_Size() int {
658	return xxx_messageInfo_SuffixStripping.Size(m)
659}
660func (m *SuffixStripping) XXX_DiscardUnknown() {
661	xxx_messageInfo_SuffixStripping.DiscardUnknown(m)
662}
663
664var xxx_messageInfo_SuffixStripping proto.InternalMessageInfo
665
666func (m *SuffixStripping) GetEnabled() bool {
667	if m != nil {
668		return m.Enabled
669	}
670	return false
671}
672
673func (m *SuffixStripping) GetDefaultSuffix() string {
674	if m != nil {
675		return m.DefaultSuffix
676	}
677	return ""
678}
679
680// Configuration for processing APEX bundles.
681// https://source.android.com/devices/tech/ota/apex
682type ApexConfig struct {
683	// Configuration for processing of APKs embedded in an APEX image.
684	ApexEmbeddedApkConfig []*ApexEmbeddedApkConfig `protobuf:"bytes,1,rep,name=apex_embedded_apk_config,json=apexEmbeddedApkConfig,proto3" json:"apex_embedded_apk_config,omitempty"`
685	XXX_NoUnkeyedLiteral  struct{}                 `json:"-"`
686	XXX_unrecognized      []byte                   `json:"-"`
687	XXX_sizecache         int32                    `json:"-"`
688}
689
690func (m *ApexConfig) Reset()         { *m = ApexConfig{} }
691func (m *ApexConfig) String() string { return proto.CompactTextString(m) }
692func (*ApexConfig) ProtoMessage()    {}
693func (*ApexConfig) Descriptor() ([]byte, []int) {
694	return fileDescriptor_3eaf2c85e69e9ea4, []int{11}
695}
696
697func (m *ApexConfig) XXX_Unmarshal(b []byte) error {
698	return xxx_messageInfo_ApexConfig.Unmarshal(m, b)
699}
700func (m *ApexConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
701	return xxx_messageInfo_ApexConfig.Marshal(b, m, deterministic)
702}
703func (m *ApexConfig) XXX_Merge(src proto.Message) {
704	xxx_messageInfo_ApexConfig.Merge(m, src)
705}
706func (m *ApexConfig) XXX_Size() int {
707	return xxx_messageInfo_ApexConfig.Size(m)
708}
709func (m *ApexConfig) XXX_DiscardUnknown() {
710	xxx_messageInfo_ApexConfig.DiscardUnknown(m)
711}
712
713var xxx_messageInfo_ApexConfig proto.InternalMessageInfo
714
715func (m *ApexConfig) GetApexEmbeddedApkConfig() []*ApexEmbeddedApkConfig {
716	if m != nil {
717		return m.ApexEmbeddedApkConfig
718	}
719	return nil
720}
721
722type ApexEmbeddedApkConfig struct {
723	// Android package name of the APK.
724	PackageName string `protobuf:"bytes,1,opt,name=package_name,json=packageName,proto3" json:"package_name,omitempty"`
725	// Path to the APK within the APEX system image.
726	Path                 string   `protobuf:"bytes,2,opt,name=path,proto3" json:"path,omitempty"`
727	XXX_NoUnkeyedLiteral struct{} `json:"-"`
728	XXX_unrecognized     []byte   `json:"-"`
729	XXX_sizecache        int32    `json:"-"`
730}
731
732func (m *ApexEmbeddedApkConfig) Reset()         { *m = ApexEmbeddedApkConfig{} }
733func (m *ApexEmbeddedApkConfig) String() string { return proto.CompactTextString(m) }
734func (*ApexEmbeddedApkConfig) ProtoMessage()    {}
735func (*ApexEmbeddedApkConfig) Descriptor() ([]byte, []int) {
736	return fileDescriptor_3eaf2c85e69e9ea4, []int{12}
737}
738
739func (m *ApexEmbeddedApkConfig) XXX_Unmarshal(b []byte) error {
740	return xxx_messageInfo_ApexEmbeddedApkConfig.Unmarshal(m, b)
741}
742func (m *ApexEmbeddedApkConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
743	return xxx_messageInfo_ApexEmbeddedApkConfig.Marshal(b, m, deterministic)
744}
745func (m *ApexEmbeddedApkConfig) XXX_Merge(src proto.Message) {
746	xxx_messageInfo_ApexEmbeddedApkConfig.Merge(m, src)
747}
748func (m *ApexEmbeddedApkConfig) XXX_Size() int {
749	return xxx_messageInfo_ApexEmbeddedApkConfig.Size(m)
750}
751func (m *ApexEmbeddedApkConfig) XXX_DiscardUnknown() {
752	xxx_messageInfo_ApexEmbeddedApkConfig.DiscardUnknown(m)
753}
754
755var xxx_messageInfo_ApexEmbeddedApkConfig proto.InternalMessageInfo
756
757func (m *ApexEmbeddedApkConfig) GetPackageName() string {
758	if m != nil {
759		return m.PackageName
760	}
761	return ""
762}
763
764func (m *ApexEmbeddedApkConfig) GetPath() string {
765	if m != nil {
766		return m.Path
767	}
768	return ""
769}
770
771type UnsignedEmbeddedApkConfig struct {
772	// Path to the APK inside the module (e.g. if the path inside the bundle
773	// is split/assets/example.apk, this will be assets/example.apk).
774	Path                 string   `protobuf:"bytes,1,opt,name=path,proto3" json:"path,omitempty"`
775	XXX_NoUnkeyedLiteral struct{} `json:"-"`
776	XXX_unrecognized     []byte   `json:"-"`
777	XXX_sizecache        int32    `json:"-"`
778}
779
780func (m *UnsignedEmbeddedApkConfig) Reset()         { *m = UnsignedEmbeddedApkConfig{} }
781func (m *UnsignedEmbeddedApkConfig) String() string { return proto.CompactTextString(m) }
782func (*UnsignedEmbeddedApkConfig) ProtoMessage()    {}
783func (*UnsignedEmbeddedApkConfig) Descriptor() ([]byte, []int) {
784	return fileDescriptor_3eaf2c85e69e9ea4, []int{13}
785}
786
787func (m *UnsignedEmbeddedApkConfig) XXX_Unmarshal(b []byte) error {
788	return xxx_messageInfo_UnsignedEmbeddedApkConfig.Unmarshal(m, b)
789}
790func (m *UnsignedEmbeddedApkConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
791	return xxx_messageInfo_UnsignedEmbeddedApkConfig.Marshal(b, m, deterministic)
792}
793func (m *UnsignedEmbeddedApkConfig) XXX_Merge(src proto.Message) {
794	xxx_messageInfo_UnsignedEmbeddedApkConfig.Merge(m, src)
795}
796func (m *UnsignedEmbeddedApkConfig) XXX_Size() int {
797	return xxx_messageInfo_UnsignedEmbeddedApkConfig.Size(m)
798}
799func (m *UnsignedEmbeddedApkConfig) XXX_DiscardUnknown() {
800	xxx_messageInfo_UnsignedEmbeddedApkConfig.DiscardUnknown(m)
801}
802
803var xxx_messageInfo_UnsignedEmbeddedApkConfig proto.InternalMessageInfo
804
805func (m *UnsignedEmbeddedApkConfig) GetPath() string {
806	if m != nil {
807		return m.Path
808	}
809	return ""
810}
811
812type AssetModulesConfig struct {
813	// App versionCodes that will be updated with these asset modules.
814	// Only relevant for asset-only bundles.
815	AppVersion []int64 `protobuf:"varint,1,rep,packed,name=app_version,json=appVersion,proto3" json:"app_version,omitempty"`
816	// Version tag for the asset upload.
817	// Only relevant for asset-only bundles.
818	AssetVersionTag      string   `protobuf:"bytes,2,opt,name=asset_version_tag,json=assetVersionTag,proto3" json:"asset_version_tag,omitempty"`
819	XXX_NoUnkeyedLiteral struct{} `json:"-"`
820	XXX_unrecognized     []byte   `json:"-"`
821	XXX_sizecache        int32    `json:"-"`
822}
823
824func (m *AssetModulesConfig) Reset()         { *m = AssetModulesConfig{} }
825func (m *AssetModulesConfig) String() string { return proto.CompactTextString(m) }
826func (*AssetModulesConfig) ProtoMessage()    {}
827func (*AssetModulesConfig) Descriptor() ([]byte, []int) {
828	return fileDescriptor_3eaf2c85e69e9ea4, []int{14}
829}
830
831func (m *AssetModulesConfig) XXX_Unmarshal(b []byte) error {
832	return xxx_messageInfo_AssetModulesConfig.Unmarshal(m, b)
833}
834func (m *AssetModulesConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
835	return xxx_messageInfo_AssetModulesConfig.Marshal(b, m, deterministic)
836}
837func (m *AssetModulesConfig) XXX_Merge(src proto.Message) {
838	xxx_messageInfo_AssetModulesConfig.Merge(m, src)
839}
840func (m *AssetModulesConfig) XXX_Size() int {
841	return xxx_messageInfo_AssetModulesConfig.Size(m)
842}
843func (m *AssetModulesConfig) XXX_DiscardUnknown() {
844	xxx_messageInfo_AssetModulesConfig.DiscardUnknown(m)
845}
846
847var xxx_messageInfo_AssetModulesConfig proto.InternalMessageInfo
848
849func (m *AssetModulesConfig) GetAppVersion() []int64 {
850	if m != nil {
851		return m.AppVersion
852	}
853	return nil
854}
855
856func (m *AssetModulesConfig) GetAssetVersionTag() string {
857	if m != nil {
858		return m.AssetVersionTag
859	}
860	return ""
861}
862
863func init() {
864	proto.RegisterEnum("android.bundle.BundleConfig_BundleType", BundleConfig_BundleType_name, BundleConfig_BundleType_value)
865	proto.RegisterEnum("android.bundle.SplitDimension_Value", SplitDimension_Value_name, SplitDimension_Value_value)
866	proto.RegisterType((*BundleConfig)(nil), "android.bundle.BundleConfig")
867	proto.RegisterType((*Bundletool)(nil), "android.bundle.Bundletool")
868	proto.RegisterType((*Compression)(nil), "android.bundle.Compression")
869	proto.RegisterType((*MasterResources)(nil), "android.bundle.MasterResources")
870	proto.RegisterType((*Optimizations)(nil), "android.bundle.Optimizations")
871	proto.RegisterType((*UncompressNativeLibraries)(nil), "android.bundle.UncompressNativeLibraries")
872	proto.RegisterType((*UncompressDexFiles)(nil), "android.bundle.UncompressDexFiles")
873	proto.RegisterType((*SplitsConfig)(nil), "android.bundle.SplitsConfig")
874	proto.RegisterType((*StandaloneConfig)(nil), "android.bundle.StandaloneConfig")
875	proto.RegisterType((*SplitDimension)(nil), "android.bundle.SplitDimension")
876	proto.RegisterType((*SuffixStripping)(nil), "android.bundle.SuffixStripping")
877	proto.RegisterType((*ApexConfig)(nil), "android.bundle.ApexConfig")
878	proto.RegisterType((*ApexEmbeddedApkConfig)(nil), "android.bundle.ApexEmbeddedApkConfig")
879	proto.RegisterType((*UnsignedEmbeddedApkConfig)(nil), "android.bundle.UnsignedEmbeddedApkConfig")
880	proto.RegisterType((*AssetModulesConfig)(nil), "android.bundle.AssetModulesConfig")
881}
882
883func init() {
884	proto.RegisterFile("config.proto", fileDescriptor_3eaf2c85e69e9ea4)
885}
886
887var fileDescriptor_3eaf2c85e69e9ea4 = []byte{
888	// 1001 bytes of a gzipped FileDescriptorProto
889	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x56, 0xdb, 0x6e, 0xdb, 0x46,
890	0x10, 0x0d, 0x75, 0xb1, 0xe5, 0x91, 0x2c, 0xd1, 0xdb, 0x38, 0x50, 0x2e, 0x4d, 0x5c, 0xa2, 0x41,
891	0xdd, 0xb4, 0x50, 0x01, 0x3b, 0xcd, 0x83, 0x83, 0x3e, 0xd0, 0x32, 0xad, 0x2a, 0xd0, 0x0d, 0x4b,
892	0xc9, 0x4d, 0x5a, 0xa0, 0x8b, 0x95, 0xb8, 0x52, 0xb7, 0xa6, 0x48, 0x82, 0x4b, 0x1a, 0x4a, 0xfb,
893	0x09, 0x7d, 0xe9, 0x8f, 0xf4, 0xa7, 0xfa, 0x25, 0x05, 0x97, 0xa4, 0x2c, 0x51, 0x52, 0x9e, 0xfa,
894	0x24, 0xce, 0xec, 0x39, 0xb3, 0x3b, 0xb3, 0x67, 0x67, 0x04, 0x95, 0x89, 0xeb, 0x4c, 0xf9, 0xac,
895	0xe1, 0xf9, 0x6e, 0xe0, 0xa2, 0x2a, 0x75, 0x2c, 0xdf, 0xe5, 0x56, 0x63, 0x1c, 0x3a, 0x96, 0xcd,
896	0xb4, 0xbf, 0x8a, 0x50, 0xb9, 0x94, 0x9f, 0x4d, 0x09, 0x43, 0x17, 0x00, 0xf1, 0x52, 0xe0, 0xba,
897	0x76, 0x5d, 0x39, 0x51, 0x4e, 0xcb, 0x67, 0x4f, 0x1a, 0xeb, 0xac, 0xc6, 0xe5, 0x12, 0x81, 0x57,
898	0xd0, 0xa8, 0x09, 0x87, 0xae, 0x17, 0xf0, 0x39, 0xff, 0x83, 0x06, 0xdc, 0x75, 0x44, 0x3d, 0x27,
899	0xe9, 0x9f, 0x67, 0xe9, 0xfd, 0x55, 0x10, 0x5e, 0xe7, 0xa0, 0x1f, 0xa0, 0x3c, 0x71, 0xe7, 0x9e,
900	0xcf, 0x84, 0xe0, 0xae, 0x53, 0xcf, 0xcb, 0x10, 0x4f, 0xb3, 0x21, 0x9a, 0xf7, 0x10, 0xbc, 0x8a,
901	0x47, 0xef, 0x40, 0x9d, 0x53, 0x11, 0x30, 0x9f, 0xf8, 0x4c, 0xb8, 0xa1, 0x3f, 0x61, 0xa2, 0x5e,
902	0x90, 0x31, 0x5e, 0x64, 0x63, 0x74, 0x25, 0x0e, 0xa7, 0x30, 0x5c, 0x9b, 0xaf, 0x3b, 0xd0, 0x5b,
903	0x28, 0x53, 0x8f, 0x2d, 0x48, 0x5c, 0xc1, 0x7a, 0x71, 0x7b, 0x31, 0x74, 0x8f, 0x2d, 0xe2, 0xe2,
904	0x61, 0xa0, 0xcb, 0x6f, 0xf4, 0x3b, 0x3c, 0x0b, 0x1d, 0xc1, 0x67, 0x0e, 0xb3, 0x08, 0x9b, 0x8f,
905	0x99, 0x65, 0x31, 0x8b, 0x50, 0xef, 0x36, 0x8d, 0xb6, 0x77, 0x92, 0x3f, 0x2d, 0x9f, 0x7d, 0x9d,
906	0x8d, 0x36, 0x4a, 0x38, 0x46, 0x42, 0xd1, 0xbd, 0xdb, 0x24, 0xf8, 0xe3, 0x70, 0xd7, 0x12, 0x1a,
907	0xc2, 0x43, 0x2a, 0x04, 0x0b, 0xc8, 0xdc, 0xb5, 0x42, 0x9b, 0x89, 0x74, 0x8f, 0x7d, 0x79, 0x62,
908	0x6d, 0xe3, 0xc4, 0x11, 0xb6, 0x1b, 0x43, 0x93, 0xe0, 0x88, 0x6e, 0xf8, 0xd0, 0x5b, 0x28, 0x04,
909	0x1f, 0x3d, 0x56, 0x2f, 0x9d, 0x28, 0xa7, 0xd5, 0xb3, 0xaf, 0xb6, 0x8b, 0x20, 0xc6, 0x26, 0xc6,
910	0xf0, 0xa3, 0xc7, 0xb0, 0x24, 0x69, 0xe7, 0x00, 0xf7, 0x3e, 0x54, 0x86, 0x7d, 0x6c, 0xb4, 0x46,
911	0x1d, 0x1d, 0xab, 0x0f, 0x50, 0x09, 0x0a, 0xfa, 0xc0, 0x78, 0xaf, 0x2a, 0xa8, 0x0a, 0xa0, 0x9b,
912	0xa6, 0x31, 0x24, 0xfd, 0x5e, 0xe7, 0x83, 0x9a, 0xd3, 0xbe, 0x4d, 0x49, 0x52, 0x4e, 0x75, 0xd8,
913	0xbf, 0x63, 0xbe, 0x54, 0x41, 0x24, 0xa4, 0x03, 0x9c, 0x9a, 0xef, 0x0a, 0x25, 0x45, 0xcd, 0x69,
914	0x17, 0x50, 0x5e, 0x91, 0x01, 0xfa, 0x06, 0x8e, 0x42, 0x27, 0x95, 0x02, 0xb3, 0xc8, 0xcc, 0x76,
915	0xc7, 0x75, 0xe5, 0x24, 0x7f, 0x7a, 0x80, 0xd5, 0xd5, 0x85, 0x96, 0xed, 0x8e, 0xb5, 0x5f, 0xa0,
916	0x96, 0xb9, 0x7e, 0xf4, 0x05, 0x54, 0x52, 0xc9, 0x10, 0x6e, 0x09, 0x49, 0x2d, 0xe2, 0x72, 0xea,
917	0x6b, 0x5b, 0x02, 0xbd, 0x84, 0xea, 0x12, 0xe2, 0xd0, 0x39, 0x8b, 0x14, 0x1e, 0xc5, 0x3f, 0x4c,
918	0xbd, 0xbd, 0xc8, 0xa9, 0xfd, 0x9b, 0x83, 0xc3, 0x35, 0x8d, 0x23, 0x1d, 0x0e, 0x85, 0x67, 0xf3,
919	0x60, 0x79, 0x33, 0xf1, 0xc3, 0x7a, 0x96, 0xad, 0xa9, 0x29, 0x41, 0xc9, 0x9d, 0x54, 0xc4, 0x8a,
920	0x85, 0x38, 0x3c, 0xbd, 0xcf, 0x82, 0x38, 0x34, 0xe0, 0x77, 0x8c, 0xd8, 0x7c, 0xec, 0x53, 0x9f,
921	0xb3, 0xf4, 0xa9, 0x6d, 0x91, 0x53, 0x4a, 0xe9, 0x49, 0x46, 0x27, 0x25, 0x44, 0x72, 0xda, 0xb1,
922	0x14, 0xc9, 0x69, 0x65, 0x2b, 0x8b, 0x2d, 0xc8, 0x94, 0xdb, 0x4c, 0x24, 0x6f, 0x51, 0xdb, 0xbd,
923	0xc7, 0x15, 0x5b, 0x5c, 0x47, 0x48, 0x8c, 0xc2, 0x0d, 0x1f, 0xea, 0xc2, 0x91, 0x08, 0xa8, 0x63,
924	0x51, 0xdb, 0x75, 0x58, 0x5a, 0x87, 0xf8, 0x69, 0x9e, 0x6c, 0xd4, 0x61, 0x09, 0x4c, 0x6a, 0xa1,
925	0x8a, 0x8c, 0x47, 0xfb, 0x1e, 0x1e, 0xef, 0x4c, 0x2e, 0x92, 0x0e, 0x73, 0xe8, 0xd8, 0x66, 0x96,
926	0xac, 0x74, 0x09, 0xa7, 0xa6, 0xd6, 0x00, 0xb4, 0x79, 0xde, 0x4f, 0xe0, 0x7f, 0x82, 0xca, 0xea,
927	0xa5, 0xa0, 0x16, 0xd4, 0xe4, 0xb5, 0x10, 0x8b, 0xcf, 0x99, 0x23, 0xc5, 0xa9, 0xc8, 0x97, 0xfc,
928	0x7c, 0xeb, 0x5d, 0x5e, 0xa5, 0x28, 0x5c, 0x15, 0x6b, 0xb6, 0xf6, 0xb7, 0x02, 0x6a, 0x36, 0xcd,
929	0xff, 0x2d, 0x3a, 0x3a, 0x87, 0x47, 0x22, 0xf0, 0xb9, 0x47, 0xde, 0xbc, 0x26, 0x63, 0x1e, 0x64,
930	0x84, 0x52, 0xc2, 0x9f, 0xc9, 0xd5, 0x37, 0xaf, 0x2f, 0x79, 0xb0, 0xac, 0x9a, 0xf6, 0x4f, 0x0e,
931	0xaa, 0xeb, 0x71, 0xd1, 0x05, 0x14, 0xef, 0xa8, 0x1d, 0x32, 0x59, 0x96, 0xea, 0xd9, 0x97, 0x9f,
932	0x3e, 0x46, 0xe3, 0x26, 0xc2, 0xe2, 0x98, 0x82, 0x1e, 0xc1, 0x9e, 0xc3, 0x66, 0x34, 0x60, 0xc9,
933	0x9e, 0x89, 0x15, 0xb5, 0x68, 0x11, 0x4e, 0xa7, 0x7c, 0x41, 0xe4, 0x21, 0x3c, 0xee, 0xcc, 0x12,
934	0x69, 0x6d, 0xb4, 0x68, 0x53, 0xe2, 0xcc, 0x14, 0x86, 0x6b, 0x62, 0xdd, 0xa1, 0xfd, 0x09, 0x45,
935	0xb9, 0x27, 0x3a, 0x86, 0xa3, 0x51, 0xcf, 0x1c, 0x18, 0xcd, 0xf6, 0x75, 0xdb, 0xb8, 0x22, 0x37,
936	0x7a, 0x67, 0x64, 0xa8, 0x0f, 0xd0, 0x3e, 0xe4, 0xf5, 0xcb, 0xb6, 0xaa, 0x20, 0x04, 0x55, 0xb3,
937	0x89, 0x0d, 0xa3, 0x47, 0xae, 0x8c, 0x9e, 0xd9, 0x1e, 0x7e, 0x50, 0x73, 0xa8, 0x02, 0xa5, 0x8e,
938	0xde, 0x6b, 0x8d, 0xf4, 0x96, 0xa1, 0xe6, 0xd1, 0x73, 0x78, 0x32, 0x34, 0xde, 0x0f, 0x47, 0xd8,
939	0x20, 0xcd, 0x7e, 0x77, 0x80, 0x0d, 0xd3, 0x6c, 0xf7, 0x7b, 0xe4, 0xba, 0x8f, 0xbb, 0xfa, 0x50,
940	0x2d, 0x20, 0x15, 0x2a, 0x2d, 0xac, 0x0f, 0x7e, 0x6c, 0x37, 0x4d, 0xa2, 0x0f, 0xda, 0x6a, 0x51,
941	0xc3, 0x50, 0xcb, 0x1c, 0x70, 0xb7, 0x90, 0xa2, 0xde, 0x61, 0xb1, 0x29, 0x0d, 0xed, 0x80, 0xc4,
942	0x49, 0x24, 0x4d, 0xed, 0x30, 0xf1, 0xc6, 0x91, 0x34, 0x1b, 0xe0, 0x7e, 0xa0, 0xa0, 0x5f, 0xa1,
943	0x2e, 0x27, 0xd0, 0xb6, 0x01, 0x12, 0x0b, 0xe3, 0xe5, 0xb6, 0x71, 0xb4, 0x39, 0x3c, 0x8e, 0xe9,
944	0x36, 0xb7, 0xd6, 0x83, 0xe3, 0xad, 0xf8, 0xa8, 0x19, 0x7a, 0x74, 0x72, 0x4b, 0x67, 0x71, 0xa3,
945	0x93, 0xc9, 0x1c, 0xe0, 0x72, 0xe2, 0x8b, 0xda, 0x1c, 0x42, 0x50, 0xf0, 0x68, 0xf0, 0x5b, 0x92,
946	0x86, 0xfc, 0xd6, 0xbe, 0x8b, 0x1e, 0xe5, 0xae, 0x29, 0x95, 0x12, 0x94, 0x15, 0x02, 0x05, 0xb4,
947	0x39, 0x8d, 0xd0, 0x8b, 0x68, 0xf0, 0x7a, 0x24, 0xed, 0xfe, 0x51, 0xa6, 0xf9, 0x68, 0xb8, 0x7a,
948	0x37, 0xb1, 0x07, 0xbd, 0x82, 0xa3, 0x78, 0xe0, 0x25, 0x10, 0x12, 0xd0, 0x59, 0x72, 0x90, 0x9a,
949	0x5c, 0x48, 0x80, 0x43, 0x3a, 0xbb, 0x7c, 0x05, 0x68, 0xe2, 0xce, 0x33, 0x65, 0xfa, 0xf9, 0x61,
950	0x62, 0x93, 0xd8, 0x26, 0xf2, 0xef, 0xd1, 0x78, 0x4f, 0xfe, 0x9c, 0xff, 0x17, 0x00, 0x00, 0xff,
951	0xff, 0x6b, 0x05, 0xbf, 0x99, 0x35, 0x09, 0x00, 0x00,
952}
953