1// Code generated by protoc-gen-go. DO NOT EDIT.
2// source: google/api/auth.proto
3
4package serviceconfig
5
6import (
7	fmt "fmt"
8	math "math"
9
10	proto "github.com/golang/protobuf/proto"
11)
12
13// Reference imports to suppress errors if they are not otherwise used.
14var _ = proto.Marshal
15var _ = fmt.Errorf
16var _ = math.Inf
17
18// This is a compile-time assertion to ensure that this generated file
19// is compatible with the proto package it is being compiled against.
20// A compilation error at this line likely means your copy of the
21// proto package needs to be updated.
22const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package
23
24// `Authentication` defines the authentication configuration for an API.
25//
26// Example for an API targeted for external use:
27//
28//     name: calendar.googleapis.com
29//     authentication:
30//       providers:
31//       - id: google_calendar_auth
32//         jwks_uri: https://www.googleapis.com/oauth2/v1/certs
33//         issuer: https://securetoken.google.com
34//       rules:
35//       - selector: "*"
36//         requirements:
37//           provider_id: google_calendar_auth
38type Authentication struct {
39	// A list of authentication rules that apply to individual API methods.
40	//
41	// **NOTE:** All service configuration rules follow "last one wins" order.
42	Rules []*AuthenticationRule `protobuf:"bytes,3,rep,name=rules,proto3" json:"rules,omitempty"`
43	// Defines a set of authentication providers that a service supports.
44	Providers            []*AuthProvider `protobuf:"bytes,4,rep,name=providers,proto3" json:"providers,omitempty"`
45	XXX_NoUnkeyedLiteral struct{}        `json:"-"`
46	XXX_unrecognized     []byte          `json:"-"`
47	XXX_sizecache        int32           `json:"-"`
48}
49
50func (m *Authentication) Reset()         { *m = Authentication{} }
51func (m *Authentication) String() string { return proto.CompactTextString(m) }
52func (*Authentication) ProtoMessage()    {}
53func (*Authentication) Descriptor() ([]byte, []int) {
54	return fileDescriptor_d6570d3c90e2b8ac, []int{0}
55}
56
57func (m *Authentication) XXX_Unmarshal(b []byte) error {
58	return xxx_messageInfo_Authentication.Unmarshal(m, b)
59}
60func (m *Authentication) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
61	return xxx_messageInfo_Authentication.Marshal(b, m, deterministic)
62}
63func (m *Authentication) XXX_Merge(src proto.Message) {
64	xxx_messageInfo_Authentication.Merge(m, src)
65}
66func (m *Authentication) XXX_Size() int {
67	return xxx_messageInfo_Authentication.Size(m)
68}
69func (m *Authentication) XXX_DiscardUnknown() {
70	xxx_messageInfo_Authentication.DiscardUnknown(m)
71}
72
73var xxx_messageInfo_Authentication proto.InternalMessageInfo
74
75func (m *Authentication) GetRules() []*AuthenticationRule {
76	if m != nil {
77		return m.Rules
78	}
79	return nil
80}
81
82func (m *Authentication) GetProviders() []*AuthProvider {
83	if m != nil {
84		return m.Providers
85	}
86	return nil
87}
88
89// Authentication rules for the service.
90//
91// By default, if a method has any authentication requirements, every request
92// must include a valid credential matching one of the requirements.
93// It's an error to include more than one kind of credential in a single
94// request.
95//
96// If a method doesn't have any auth requirements, request credentials will be
97// ignored.
98type AuthenticationRule struct {
99	// Selects the methods to which this rule applies.
100	//
101	// Refer to [selector][google.api.DocumentationRule.selector] for syntax details.
102	Selector string `protobuf:"bytes,1,opt,name=selector,proto3" json:"selector,omitempty"`
103	// The requirements for OAuth credentials.
104	Oauth *OAuthRequirements `protobuf:"bytes,2,opt,name=oauth,proto3" json:"oauth,omitempty"`
105	// If true, the service accepts API keys without any other credential.
106	AllowWithoutCredential bool `protobuf:"varint,5,opt,name=allow_without_credential,json=allowWithoutCredential,proto3" json:"allow_without_credential,omitempty"`
107	// Requirements for additional authentication providers.
108	Requirements         []*AuthRequirement `protobuf:"bytes,7,rep,name=requirements,proto3" json:"requirements,omitempty"`
109	XXX_NoUnkeyedLiteral struct{}           `json:"-"`
110	XXX_unrecognized     []byte             `json:"-"`
111	XXX_sizecache        int32              `json:"-"`
112}
113
114func (m *AuthenticationRule) Reset()         { *m = AuthenticationRule{} }
115func (m *AuthenticationRule) String() string { return proto.CompactTextString(m) }
116func (*AuthenticationRule) ProtoMessage()    {}
117func (*AuthenticationRule) Descriptor() ([]byte, []int) {
118	return fileDescriptor_d6570d3c90e2b8ac, []int{1}
119}
120
121func (m *AuthenticationRule) XXX_Unmarshal(b []byte) error {
122	return xxx_messageInfo_AuthenticationRule.Unmarshal(m, b)
123}
124func (m *AuthenticationRule) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
125	return xxx_messageInfo_AuthenticationRule.Marshal(b, m, deterministic)
126}
127func (m *AuthenticationRule) XXX_Merge(src proto.Message) {
128	xxx_messageInfo_AuthenticationRule.Merge(m, src)
129}
130func (m *AuthenticationRule) XXX_Size() int {
131	return xxx_messageInfo_AuthenticationRule.Size(m)
132}
133func (m *AuthenticationRule) XXX_DiscardUnknown() {
134	xxx_messageInfo_AuthenticationRule.DiscardUnknown(m)
135}
136
137var xxx_messageInfo_AuthenticationRule proto.InternalMessageInfo
138
139func (m *AuthenticationRule) GetSelector() string {
140	if m != nil {
141		return m.Selector
142	}
143	return ""
144}
145
146func (m *AuthenticationRule) GetOauth() *OAuthRequirements {
147	if m != nil {
148		return m.Oauth
149	}
150	return nil
151}
152
153func (m *AuthenticationRule) GetAllowWithoutCredential() bool {
154	if m != nil {
155		return m.AllowWithoutCredential
156	}
157	return false
158}
159
160func (m *AuthenticationRule) GetRequirements() []*AuthRequirement {
161	if m != nil {
162		return m.Requirements
163	}
164	return nil
165}
166
167// Specifies a location to extract JWT from an API request.
168type JwtLocation struct {
169	// Types that are valid to be assigned to In:
170	//	*JwtLocation_Header
171	//	*JwtLocation_Query
172	In isJwtLocation_In `protobuf_oneof:"in"`
173	// The value prefix. The value format is "value_prefix{token}"
174	// Only applies to "in" header type. Must be empty for "in" query type.
175	// If not empty, the header value has to match (case sensitive) this prefix.
176	// If not matched, JWT will not be extracted. If matched, JWT will be
177	// extracted after the prefix is removed.
178	//
179	// For example, for "Authorization: Bearer {JWT}",
180	// value_prefix="Bearer " with a space at the end.
181	ValuePrefix          string   `protobuf:"bytes,3,opt,name=value_prefix,json=valuePrefix,proto3" json:"value_prefix,omitempty"`
182	XXX_NoUnkeyedLiteral struct{} `json:"-"`
183	XXX_unrecognized     []byte   `json:"-"`
184	XXX_sizecache        int32    `json:"-"`
185}
186
187func (m *JwtLocation) Reset()         { *m = JwtLocation{} }
188func (m *JwtLocation) String() string { return proto.CompactTextString(m) }
189func (*JwtLocation) ProtoMessage()    {}
190func (*JwtLocation) Descriptor() ([]byte, []int) {
191	return fileDescriptor_d6570d3c90e2b8ac, []int{2}
192}
193
194func (m *JwtLocation) XXX_Unmarshal(b []byte) error {
195	return xxx_messageInfo_JwtLocation.Unmarshal(m, b)
196}
197func (m *JwtLocation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
198	return xxx_messageInfo_JwtLocation.Marshal(b, m, deterministic)
199}
200func (m *JwtLocation) XXX_Merge(src proto.Message) {
201	xxx_messageInfo_JwtLocation.Merge(m, src)
202}
203func (m *JwtLocation) XXX_Size() int {
204	return xxx_messageInfo_JwtLocation.Size(m)
205}
206func (m *JwtLocation) XXX_DiscardUnknown() {
207	xxx_messageInfo_JwtLocation.DiscardUnknown(m)
208}
209
210var xxx_messageInfo_JwtLocation proto.InternalMessageInfo
211
212type isJwtLocation_In interface {
213	isJwtLocation_In()
214}
215
216type JwtLocation_Header struct {
217	Header string `protobuf:"bytes,1,opt,name=header,proto3,oneof"`
218}
219
220type JwtLocation_Query struct {
221	Query string `protobuf:"bytes,2,opt,name=query,proto3,oneof"`
222}
223
224func (*JwtLocation_Header) isJwtLocation_In() {}
225
226func (*JwtLocation_Query) isJwtLocation_In() {}
227
228func (m *JwtLocation) GetIn() isJwtLocation_In {
229	if m != nil {
230		return m.In
231	}
232	return nil
233}
234
235func (m *JwtLocation) GetHeader() string {
236	if x, ok := m.GetIn().(*JwtLocation_Header); ok {
237		return x.Header
238	}
239	return ""
240}
241
242func (m *JwtLocation) GetQuery() string {
243	if x, ok := m.GetIn().(*JwtLocation_Query); ok {
244		return x.Query
245	}
246	return ""
247}
248
249func (m *JwtLocation) GetValuePrefix() string {
250	if m != nil {
251		return m.ValuePrefix
252	}
253	return ""
254}
255
256// XXX_OneofWrappers is for the internal use of the proto package.
257func (*JwtLocation) XXX_OneofWrappers() []interface{} {
258	return []interface{}{
259		(*JwtLocation_Header)(nil),
260		(*JwtLocation_Query)(nil),
261	}
262}
263
264// Configuration for an authentication provider, including support for
265// [JSON Web Token
266// (JWT)](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32).
267type AuthProvider struct {
268	// The unique identifier of the auth provider. It will be referred to by
269	// `AuthRequirement.provider_id`.
270	//
271	// Example: "bookstore_auth".
272	Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
273	// Identifies the principal that issued the JWT. See
274	// https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32#section-4.1.1
275	// Usually a URL or an email address.
276	//
277	// Example: https://securetoken.google.com
278	// Example: 1234567-compute@developer.gserviceaccount.com
279	Issuer string `protobuf:"bytes,2,opt,name=issuer,proto3" json:"issuer,omitempty"`
280	// URL of the provider's public key set to validate signature of the JWT. See
281	// [OpenID
282	// Discovery](https://openid.net/specs/openid-connect-discovery-1_0.html#ProviderMetadata).
283	// Optional if the key set document:
284	//  - can be retrieved from
285	//    [OpenID
286	//    Discovery](https://openid.net/specs/openid-connect-discovery-1_0.html of
287	//    the issuer.
288	//  - can be inferred from the email domain of the issuer (e.g. a Google
289	//  service account).
290	//
291	// Example: https://www.googleapis.com/oauth2/v1/certs
292	JwksUri string `protobuf:"bytes,3,opt,name=jwks_uri,json=jwksUri,proto3" json:"jwks_uri,omitempty"`
293	// The list of JWT
294	// [audiences](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32#section-4.1.3).
295	// that are allowed to access. A JWT containing any of these audiences will
296	// be accepted. When this setting is absent, only JWTs with audience
297	// "https://[Service_name][google.api.Service.name]/[API_name][google.protobuf.Api.name]"
298	// will be accepted. For example, if no audiences are in the setting,
299	// LibraryService API will only accept JWTs with the following audience
300	// "https://library-example.googleapis.com/google.example.library.v1.LibraryService".
301	//
302	// Example:
303	//
304	//     audiences: bookstore_android.apps.googleusercontent.com,
305	//                bookstore_web.apps.googleusercontent.com
306	Audiences string `protobuf:"bytes,4,opt,name=audiences,proto3" json:"audiences,omitempty"`
307	// Redirect URL if JWT token is required but not present or is expired.
308	// Implement authorizationUrl of securityDefinitions in OpenAPI spec.
309	AuthorizationUrl string `protobuf:"bytes,5,opt,name=authorization_url,json=authorizationUrl,proto3" json:"authorization_url,omitempty"`
310	// Defines the locations to extract the JWT.
311	//
312	// JWT locations can be either from HTTP headers or URL query parameters.
313	// The rule is that the first match wins. The checking order is: checking
314	// all headers first, then URL query parameters.
315	//
316	// If not specified,  default to use following 3 locations:
317	//    1) Authorization: Bearer
318	//    2) x-goog-iap-jwt-assertion
319	//    3) access_token query parameter
320	//
321	// Default locations can be specified as followings:
322	//    jwt_locations:
323	//    - header: Authorization
324	//      value_prefix: "Bearer "
325	//    - header: x-goog-iap-jwt-assertion
326	//    - query: access_token
327	JwtLocations         []*JwtLocation `protobuf:"bytes,6,rep,name=jwt_locations,json=jwtLocations,proto3" json:"jwt_locations,omitempty"`
328	XXX_NoUnkeyedLiteral struct{}       `json:"-"`
329	XXX_unrecognized     []byte         `json:"-"`
330	XXX_sizecache        int32          `json:"-"`
331}
332
333func (m *AuthProvider) Reset()         { *m = AuthProvider{} }
334func (m *AuthProvider) String() string { return proto.CompactTextString(m) }
335func (*AuthProvider) ProtoMessage()    {}
336func (*AuthProvider) Descriptor() ([]byte, []int) {
337	return fileDescriptor_d6570d3c90e2b8ac, []int{3}
338}
339
340func (m *AuthProvider) XXX_Unmarshal(b []byte) error {
341	return xxx_messageInfo_AuthProvider.Unmarshal(m, b)
342}
343func (m *AuthProvider) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
344	return xxx_messageInfo_AuthProvider.Marshal(b, m, deterministic)
345}
346func (m *AuthProvider) XXX_Merge(src proto.Message) {
347	xxx_messageInfo_AuthProvider.Merge(m, src)
348}
349func (m *AuthProvider) XXX_Size() int {
350	return xxx_messageInfo_AuthProvider.Size(m)
351}
352func (m *AuthProvider) XXX_DiscardUnknown() {
353	xxx_messageInfo_AuthProvider.DiscardUnknown(m)
354}
355
356var xxx_messageInfo_AuthProvider proto.InternalMessageInfo
357
358func (m *AuthProvider) GetId() string {
359	if m != nil {
360		return m.Id
361	}
362	return ""
363}
364
365func (m *AuthProvider) GetIssuer() string {
366	if m != nil {
367		return m.Issuer
368	}
369	return ""
370}
371
372func (m *AuthProvider) GetJwksUri() string {
373	if m != nil {
374		return m.JwksUri
375	}
376	return ""
377}
378
379func (m *AuthProvider) GetAudiences() string {
380	if m != nil {
381		return m.Audiences
382	}
383	return ""
384}
385
386func (m *AuthProvider) GetAuthorizationUrl() string {
387	if m != nil {
388		return m.AuthorizationUrl
389	}
390	return ""
391}
392
393func (m *AuthProvider) GetJwtLocations() []*JwtLocation {
394	if m != nil {
395		return m.JwtLocations
396	}
397	return nil
398}
399
400// OAuth scopes are a way to define data and permissions on data. For example,
401// there are scopes defined for "Read-only access to Google Calendar" and
402// "Access to Cloud Platform". Users can consent to a scope for an application,
403// giving it permission to access that data on their behalf.
404//
405// OAuth scope specifications should be fairly coarse grained; a user will need
406// to see and understand the text description of what your scope means.
407//
408// In most cases: use one or at most two OAuth scopes for an entire family of
409// products. If your product has multiple APIs, you should probably be sharing
410// the OAuth scope across all of those APIs.
411//
412// When you need finer grained OAuth consent screens: talk with your product
413// management about how developers will use them in practice.
414//
415// Please note that even though each of the canonical scopes is enough for a
416// request to be accepted and passed to the backend, a request can still fail
417// due to the backend requiring additional scopes or permissions.
418type OAuthRequirements struct {
419	// The list of publicly documented OAuth scopes that are allowed access. An
420	// OAuth token containing any of these scopes will be accepted.
421	//
422	// Example:
423	//
424	//      canonical_scopes: https://www.googleapis.com/auth/calendar,
425	//                        https://www.googleapis.com/auth/calendar.read
426	CanonicalScopes      string   `protobuf:"bytes,1,opt,name=canonical_scopes,json=canonicalScopes,proto3" json:"canonical_scopes,omitempty"`
427	XXX_NoUnkeyedLiteral struct{} `json:"-"`
428	XXX_unrecognized     []byte   `json:"-"`
429	XXX_sizecache        int32    `json:"-"`
430}
431
432func (m *OAuthRequirements) Reset()         { *m = OAuthRequirements{} }
433func (m *OAuthRequirements) String() string { return proto.CompactTextString(m) }
434func (*OAuthRequirements) ProtoMessage()    {}
435func (*OAuthRequirements) Descriptor() ([]byte, []int) {
436	return fileDescriptor_d6570d3c90e2b8ac, []int{4}
437}
438
439func (m *OAuthRequirements) XXX_Unmarshal(b []byte) error {
440	return xxx_messageInfo_OAuthRequirements.Unmarshal(m, b)
441}
442func (m *OAuthRequirements) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
443	return xxx_messageInfo_OAuthRequirements.Marshal(b, m, deterministic)
444}
445func (m *OAuthRequirements) XXX_Merge(src proto.Message) {
446	xxx_messageInfo_OAuthRequirements.Merge(m, src)
447}
448func (m *OAuthRequirements) XXX_Size() int {
449	return xxx_messageInfo_OAuthRequirements.Size(m)
450}
451func (m *OAuthRequirements) XXX_DiscardUnknown() {
452	xxx_messageInfo_OAuthRequirements.DiscardUnknown(m)
453}
454
455var xxx_messageInfo_OAuthRequirements proto.InternalMessageInfo
456
457func (m *OAuthRequirements) GetCanonicalScopes() string {
458	if m != nil {
459		return m.CanonicalScopes
460	}
461	return ""
462}
463
464// User-defined authentication requirements, including support for
465// [JSON Web Token
466// (JWT)](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32).
467type AuthRequirement struct {
468	// [id][google.api.AuthProvider.id] from authentication provider.
469	//
470	// Example:
471	//
472	//     provider_id: bookstore_auth
473	ProviderId string `protobuf:"bytes,1,opt,name=provider_id,json=providerId,proto3" json:"provider_id,omitempty"`
474	// NOTE: This will be deprecated soon, once AuthProvider.audiences is
475	// implemented and accepted in all the runtime components.
476	//
477	// The list of JWT
478	// [audiences](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32#section-4.1.3).
479	// that are allowed to access. A JWT containing any of these audiences will
480	// be accepted. When this setting is absent, only JWTs with audience
481	// "https://[Service_name][google.api.Service.name]/[API_name][google.protobuf.Api.name]"
482	// will be accepted. For example, if no audiences are in the setting,
483	// LibraryService API will only accept JWTs with the following audience
484	// "https://library-example.googleapis.com/google.example.library.v1.LibraryService".
485	//
486	// Example:
487	//
488	//     audiences: bookstore_android.apps.googleusercontent.com,
489	//                bookstore_web.apps.googleusercontent.com
490	Audiences            string   `protobuf:"bytes,2,opt,name=audiences,proto3" json:"audiences,omitempty"`
491	XXX_NoUnkeyedLiteral struct{} `json:"-"`
492	XXX_unrecognized     []byte   `json:"-"`
493	XXX_sizecache        int32    `json:"-"`
494}
495
496func (m *AuthRequirement) Reset()         { *m = AuthRequirement{} }
497func (m *AuthRequirement) String() string { return proto.CompactTextString(m) }
498func (*AuthRequirement) ProtoMessage()    {}
499func (*AuthRequirement) Descriptor() ([]byte, []int) {
500	return fileDescriptor_d6570d3c90e2b8ac, []int{5}
501}
502
503func (m *AuthRequirement) XXX_Unmarshal(b []byte) error {
504	return xxx_messageInfo_AuthRequirement.Unmarshal(m, b)
505}
506func (m *AuthRequirement) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
507	return xxx_messageInfo_AuthRequirement.Marshal(b, m, deterministic)
508}
509func (m *AuthRequirement) XXX_Merge(src proto.Message) {
510	xxx_messageInfo_AuthRequirement.Merge(m, src)
511}
512func (m *AuthRequirement) XXX_Size() int {
513	return xxx_messageInfo_AuthRequirement.Size(m)
514}
515func (m *AuthRequirement) XXX_DiscardUnknown() {
516	xxx_messageInfo_AuthRequirement.DiscardUnknown(m)
517}
518
519var xxx_messageInfo_AuthRequirement proto.InternalMessageInfo
520
521func (m *AuthRequirement) GetProviderId() string {
522	if m != nil {
523		return m.ProviderId
524	}
525	return ""
526}
527
528func (m *AuthRequirement) GetAudiences() string {
529	if m != nil {
530		return m.Audiences
531	}
532	return ""
533}
534
535func init() {
536	proto.RegisterType((*Authentication)(nil), "google.api.Authentication")
537	proto.RegisterType((*AuthenticationRule)(nil), "google.api.AuthenticationRule")
538	proto.RegisterType((*JwtLocation)(nil), "google.api.JwtLocation")
539	proto.RegisterType((*AuthProvider)(nil), "google.api.AuthProvider")
540	proto.RegisterType((*OAuthRequirements)(nil), "google.api.OAuthRequirements")
541	proto.RegisterType((*AuthRequirement)(nil), "google.api.AuthRequirement")
542}
543
544func init() {
545	proto.RegisterFile("google/api/auth.proto", fileDescriptor_d6570d3c90e2b8ac)
546}
547
548var fileDescriptor_d6570d3c90e2b8ac = []byte{
549	// 533 bytes of a gzipped FileDescriptorProto
550	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x64, 0x53, 0xcb, 0x6e, 0xd3, 0x40,
551	0x14, 0xc5, 0x6e, 0x93, 0x36, 0x37, 0x21, 0x6d, 0x47, 0x22, 0x98, 0x77, 0xf0, 0x2a, 0x08, 0x29,
552	0x91, 0x5a, 0x84, 0x90, 0x40, 0xa0, 0x06, 0x21, 0x28, 0x42, 0x22, 0x1a, 0x54, 0x21, 0xb1, 0xb1,
553	0x06, 0xfb, 0xd6, 0x99, 0x74, 0xea, 0x71, 0xe7, 0x91, 0x00, 0x0b, 0x3e, 0x86, 0xcf, 0x62, 0xc5,
554	0xa7, 0x20, 0x8f, 0xdd, 0xc4, 0x49, 0x97, 0xe7, 0x71, 0xef, 0xcd, 0x39, 0xce, 0xc0, 0xad, 0x54,
555	0xca, 0x54, 0xe0, 0x88, 0xe5, 0x7c, 0xc4, 0xac, 0x99, 0x0e, 0x73, 0x25, 0x8d, 0x24, 0x50, 0xd2,
556	0x43, 0x96, 0xf3, 0xf0, 0x37, 0x74, 0x8f, 0xad, 0x99, 0x62, 0x66, 0x78, 0xcc, 0x0c, 0x97, 0x19,
557	0x79, 0x06, 0x0d, 0x65, 0x05, 0xea, 0x60, 0xab, 0xbf, 0x35, 0x68, 0x1f, 0x3e, 0x1c, 0xae, 0xdc,
558	0xc3, 0x75, 0x2b, 0xb5, 0x02, 0x69, 0x69, 0x26, 0xcf, 0xa1, 0x95, 0x2b, 0x39, 0xe7, 0x09, 0x2a,
559	0x1d, 0x6c, 0xbb, 0xc9, 0x60, 0x73, 0x72, 0x52, 0x19, 0xe8, 0xca, 0x1a, 0xfe, 0xf3, 0x80, 0x5c,
560	0xdf, 0x4a, 0xee, 0xc2, 0xae, 0x46, 0x81, 0xb1, 0x91, 0x2a, 0xf0, 0xfa, 0xde, 0xa0, 0x45, 0x97,
561	0x98, 0x1c, 0x41, 0x43, 0x16, 0x69, 0x02, 0xbf, 0xef, 0x0d, 0xda, 0x87, 0x0f, 0xea, 0x67, 0x3e,
562	0x17, 0xbb, 0x28, 0x5e, 0x5a, 0xae, 0xf0, 0x02, 0x33, 0xa3, 0x69, 0xe9, 0x25, 0x2f, 0x20, 0x60,
563	0x42, 0xc8, 0x45, 0xb4, 0xe0, 0x66, 0x2a, 0xad, 0x89, 0x62, 0x85, 0x49, 0x71, 0x94, 0x89, 0xa0,
564	0xd1, 0xf7, 0x06, 0xbb, 0xb4, 0xe7, 0xf4, 0xaf, 0xa5, 0xfc, 0x76, 0xa9, 0x92, 0x37, 0xd0, 0x51,
565	0xb5, 0x85, 0xc1, 0x8e, 0x0b, 0x77, 0x6f, 0x33, 0x5c, 0xed, 0x28, 0x5d, 0x1b, 0x08, 0xa7, 0xd0,
566	0xfe, 0xb8, 0x30, 0x9f, 0x64, 0xd5, 0x6f, 0x00, 0xcd, 0x29, 0xb2, 0x04, 0xab, 0x60, 0x1f, 0x6e,
567	0xd0, 0x0a, 0x93, 0x1e, 0x34, 0x2e, 0x2d, 0xaa, 0x9f, 0x2e, 0x58, 0x21, 0x94, 0x90, 0x3c, 0x86,
568	0xce, 0x9c, 0x09, 0x8b, 0x51, 0xae, 0xf0, 0x8c, 0xff, 0x08, 0xb6, 0x5c, 0x21, 0x6d, 0xc7, 0x4d,
569	0x1c, 0x35, 0xde, 0x06, 0x9f, 0x67, 0xe1, 0x5f, 0x0f, 0x3a, 0xf5, 0xa2, 0x49, 0x17, 0x7c, 0x9e,
570	0x54, 0x05, 0xfa, 0x3c, 0x21, 0x3d, 0x68, 0x72, 0xad, 0x2d, 0xaa, 0xf2, 0x04, 0xad, 0x10, 0xb9,
571	0x03, 0xbb, 0xb3, 0xc5, 0xb9, 0x8e, 0xac, 0xe2, 0xd5, 0xf6, 0x9d, 0x02, 0x9f, 0x2a, 0x4e, 0xee,
572	0x43, 0x8b, 0xd9, 0x84, 0x63, 0x16, 0x63, 0xf1, 0x61, 0x0b, 0x6d, 0x45, 0x90, 0xa7, 0x70, 0x50,
573	0xd4, 0x2b, 0x15, 0xff, 0xe5, 0xd2, 0x45, 0x56, 0x95, 0x7d, 0xb6, 0xe8, 0xfe, 0x9a, 0x70, 0xaa,
574	0x04, 0x79, 0x05, 0x37, 0x67, 0x0b, 0x13, 0x89, 0xaa, 0x09, 0x1d, 0x34, 0x5d, 0x95, 0xb7, 0xeb,
575	0x55, 0xd6, 0x9a, 0xa2, 0x9d, 0xd9, 0x0a, 0xe8, 0xf0, 0x35, 0x1c, 0x5c, 0xfb, 0xba, 0xe4, 0x09,
576	0xec, 0xc7, 0x2c, 0x93, 0x19, 0x8f, 0x99, 0x88, 0x74, 0x2c, 0x73, 0xd4, 0x55, 0xdc, 0xbd, 0x25,
577	0xff, 0xc5, 0xd1, 0xe1, 0x04, 0xf6, 0x36, 0xc6, 0xc9, 0x23, 0x68, 0x5f, 0xfd, 0x13, 0xa3, 0x65,
578	0x4f, 0x70, 0x45, 0x9d, 0x24, 0xeb, 0xe1, 0xfd, 0x8d, 0xf0, 0xe3, 0x73, 0xe8, 0xc6, 0xf2, 0xa2,
579	0xf6, 0xeb, 0xc7, 0xad, 0xaa, 0x7d, 0x23, 0x27, 0xde, 0xb7, 0x77, 0x95, 0x90, 0x4a, 0xc1, 0xb2,
580	0x74, 0x28, 0x55, 0x3a, 0x4a, 0x31, 0x73, 0x4f, 0x70, 0x54, 0x4a, 0x2c, 0xe7, 0xda, 0x3d, 0x4e,
581	0x8d, 0x6a, 0xce, 0x63, 0x8c, 0x65, 0x76, 0xc6, 0xd3, 0x97, 0x6b, 0xe8, 0x8f, 0xbf, 0xfd, 0xfe,
582	0x78, 0x72, 0xf2, 0xbd, 0xe9, 0x06, 0x8f, 0xfe, 0x07, 0x00, 0x00, 0xff, 0xff, 0xf3, 0x4f, 0x04,
583	0x6e, 0xd4, 0x03, 0x00, 0x00,
584}
585