You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

576 lines
22 KiB

  1. // Code generated by protoc-gen-go. DO NOT EDIT.
  2. // source: google/cloud/scheduler/v1/job.proto
  3. package scheduler // import "google.golang.org/genproto/googleapis/cloud/scheduler/v1"
  4. import proto "github.com/golang/protobuf/proto"
  5. import fmt "fmt"
  6. import math "math"
  7. import duration "github.com/golang/protobuf/ptypes/duration"
  8. import timestamp "github.com/golang/protobuf/ptypes/timestamp"
  9. import _ "google.golang.org/genproto/googleapis/api/annotations"
  10. import status "google.golang.org/genproto/googleapis/rpc/status"
  11. // Reference imports to suppress errors if they are not otherwise used.
  12. var _ = proto.Marshal
  13. var _ = fmt.Errorf
  14. var _ = math.Inf
  15. // This is a compile-time assertion to ensure that this generated file
  16. // is compatible with the proto package it is being compiled against.
  17. // A compilation error at this line likely means your copy of the
  18. // proto package needs to be updated.
  19. const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package
  20. // State of the job.
  21. type Job_State int32
  22. const (
  23. // Unspecified state.
  24. Job_STATE_UNSPECIFIED Job_State = 0
  25. // The job is executing normally.
  26. Job_ENABLED Job_State = 1
  27. // The job is paused by the user. It will not execute. A user can
  28. // intentionally pause the job using
  29. // [PauseJobRequest][google.cloud.scheduler.v1.PauseJobRequest].
  30. Job_PAUSED Job_State = 2
  31. // The job is disabled by the system due to error. The user
  32. // cannot directly set a job to be disabled.
  33. Job_DISABLED Job_State = 3
  34. // The job state resulting from a failed [CloudScheduler.UpdateJob][google.cloud.scheduler.v1.CloudScheduler.UpdateJob]
  35. // operation. To recover a job from this state, retry
  36. // [CloudScheduler.UpdateJob][google.cloud.scheduler.v1.CloudScheduler.UpdateJob] until a successful response is received.
  37. Job_UPDATE_FAILED Job_State = 4
  38. )
  39. var Job_State_name = map[int32]string{
  40. 0: "STATE_UNSPECIFIED",
  41. 1: "ENABLED",
  42. 2: "PAUSED",
  43. 3: "DISABLED",
  44. 4: "UPDATE_FAILED",
  45. }
  46. var Job_State_value = map[string]int32{
  47. "STATE_UNSPECIFIED": 0,
  48. "ENABLED": 1,
  49. "PAUSED": 2,
  50. "DISABLED": 3,
  51. "UPDATE_FAILED": 4,
  52. }
  53. func (x Job_State) String() string {
  54. return proto.EnumName(Job_State_name, int32(x))
  55. }
  56. func (Job_State) EnumDescriptor() ([]byte, []int) {
  57. return fileDescriptor_job_2db48d5da5a77145, []int{0, 0}
  58. }
  59. // Configuration for a job.
  60. // The maximum allowed size for a job is 100KB.
  61. type Job struct {
  62. // Optionally caller-specified in [CreateJob][google.cloud.scheduler.v1.CloudScheduler.CreateJob], after
  63. // which it becomes output only.
  64. //
  65. // The job name. For example:
  66. // `projects/PROJECT_ID/locations/LOCATION_ID/jobs/JOB_ID`.
  67. //
  68. // * `PROJECT_ID` can contain letters ([A-Za-z]), numbers ([0-9]),
  69. // hyphens (-), colons (:), or periods (.).
  70. // For more information, see
  71. // [Identifying
  72. // projects](https://cloud.google.com/resource-manager/docs/creating-managing-projects#identifying_projects)
  73. // * `LOCATION_ID` is the canonical ID for the job's location.
  74. // The list of available locations can be obtained by calling
  75. // [ListLocations][google.cloud.location.Locations.ListLocations].
  76. // For more information, see https://cloud.google.com/about/locations/.
  77. // * `JOB_ID` can contain only letters ([A-Za-z]), numbers ([0-9]),
  78. // hyphens (-), or underscores (_). The maximum length is 500 characters.
  79. Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
  80. // Optionally caller-specified in [CreateJob][google.cloud.scheduler.v1.CloudScheduler.CreateJob] or
  81. // [UpdateJob][google.cloud.scheduler.v1.CloudScheduler.UpdateJob].
  82. //
  83. // A human-readable description for the job. This string must not contain
  84. // more than 500 characters.
  85. Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"`
  86. // Required.
  87. //
  88. // Delivery settings containing destination and parameters.
  89. //
  90. // Types that are valid to be assigned to Target:
  91. // *Job_PubsubTarget
  92. // *Job_AppEngineHttpTarget
  93. // *Job_HttpTarget
  94. Target isJob_Target `protobuf_oneof:"target"`
  95. // Required, except when used with [UpdateJob][google.cloud.scheduler.v1.CloudScheduler.UpdateJob].
  96. //
  97. // Describes the schedule on which the job will be executed.
  98. //
  99. // The schedule can be either of the following types:
  100. //
  101. // * [Crontab](http://en.wikipedia.org/wiki/Cron#Overview)
  102. // * English-like
  103. // [schedule](https://cloud.google.com/scheduler/docs/configuring/cron-job-schedules)
  104. //
  105. // As a general rule, execution `n + 1` of a job will not begin
  106. // until execution `n` has finished. Cloud Scheduler will never
  107. // allow two simultaneously outstanding executions. For example,
  108. // this implies that if the `n+1`th execution is scheduled to run at
  109. // 16:00 but the `n`th execution takes until 16:15, the `n+1`th
  110. // execution will not start until `16:15`.
  111. // A scheduled start time will be delayed if the previous
  112. // execution has not ended when its scheduled time occurs.
  113. //
  114. // If [retry_count][google.cloud.scheduler.v1.RetryConfig.retry_count] > 0 and a job attempt fails,
  115. // the job will be tried a total of [retry_count][google.cloud.scheduler.v1.RetryConfig.retry_count]
  116. // times, with exponential backoff, until the next scheduled start
  117. // time.
  118. Schedule string `protobuf:"bytes,20,opt,name=schedule,proto3" json:"schedule,omitempty"`
  119. // Specifies the time zone to be used in interpreting
  120. // [schedule][google.cloud.scheduler.v1.Job.schedule]. The value of this field must be a time
  121. // zone name from the [tz database](http://en.wikipedia.org/wiki/Tz_database).
  122. //
  123. // Note that some time zones include a provision for
  124. // daylight savings time. The rules for daylight saving time are
  125. // determined by the chosen tz. For UTC use the string "utc". If a
  126. // time zone is not specified, the default will be in UTC (also known
  127. // as GMT).
  128. TimeZone string `protobuf:"bytes,21,opt,name=time_zone,json=timeZone,proto3" json:"time_zone,omitempty"`
  129. // Output only. The creation time of the job.
  130. UserUpdateTime *timestamp.Timestamp `protobuf:"bytes,9,opt,name=user_update_time,json=userUpdateTime,proto3" json:"user_update_time,omitempty"`
  131. // Output only. State of the job.
  132. State Job_State `protobuf:"varint,10,opt,name=state,proto3,enum=google.cloud.scheduler.v1.Job_State" json:"state,omitempty"`
  133. // Output only. The response from the target for the last attempted execution.
  134. Status *status.Status `protobuf:"bytes,11,opt,name=status,proto3" json:"status,omitempty"`
  135. // Output only. The next time the job is scheduled. Note that this may be a
  136. // retry of a previously failed attempt or the next execution time
  137. // according to the schedule.
  138. ScheduleTime *timestamp.Timestamp `protobuf:"bytes,17,opt,name=schedule_time,json=scheduleTime,proto3" json:"schedule_time,omitempty"`
  139. // Output only. The time the last job attempt started.
  140. LastAttemptTime *timestamp.Timestamp `protobuf:"bytes,18,opt,name=last_attempt_time,json=lastAttemptTime,proto3" json:"last_attempt_time,omitempty"`
  141. // Settings that determine the retry behavior.
  142. RetryConfig *RetryConfig `protobuf:"bytes,19,opt,name=retry_config,json=retryConfig,proto3" json:"retry_config,omitempty"`
  143. XXX_NoUnkeyedLiteral struct{} `json:"-"`
  144. XXX_unrecognized []byte `json:"-"`
  145. XXX_sizecache int32 `json:"-"`
  146. }
  147. func (m *Job) Reset() { *m = Job{} }
  148. func (m *Job) String() string { return proto.CompactTextString(m) }
  149. func (*Job) ProtoMessage() {}
  150. func (*Job) Descriptor() ([]byte, []int) {
  151. return fileDescriptor_job_2db48d5da5a77145, []int{0}
  152. }
  153. func (m *Job) XXX_Unmarshal(b []byte) error {
  154. return xxx_messageInfo_Job.Unmarshal(m, b)
  155. }
  156. func (m *Job) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  157. return xxx_messageInfo_Job.Marshal(b, m, deterministic)
  158. }
  159. func (dst *Job) XXX_Merge(src proto.Message) {
  160. xxx_messageInfo_Job.Merge(dst, src)
  161. }
  162. func (m *Job) XXX_Size() int {
  163. return xxx_messageInfo_Job.Size(m)
  164. }
  165. func (m *Job) XXX_DiscardUnknown() {
  166. xxx_messageInfo_Job.DiscardUnknown(m)
  167. }
  168. var xxx_messageInfo_Job proto.InternalMessageInfo
  169. func (m *Job) GetName() string {
  170. if m != nil {
  171. return m.Name
  172. }
  173. return ""
  174. }
  175. func (m *Job) GetDescription() string {
  176. if m != nil {
  177. return m.Description
  178. }
  179. return ""
  180. }
  181. type isJob_Target interface {
  182. isJob_Target()
  183. }
  184. type Job_PubsubTarget struct {
  185. PubsubTarget *PubsubTarget `protobuf:"bytes,4,opt,name=pubsub_target,json=pubsubTarget,proto3,oneof"`
  186. }
  187. type Job_AppEngineHttpTarget struct {
  188. AppEngineHttpTarget *AppEngineHttpTarget `protobuf:"bytes,5,opt,name=app_engine_http_target,json=appEngineHttpTarget,proto3,oneof"`
  189. }
  190. type Job_HttpTarget struct {
  191. HttpTarget *HttpTarget `protobuf:"bytes,6,opt,name=http_target,json=httpTarget,proto3,oneof"`
  192. }
  193. func (*Job_PubsubTarget) isJob_Target() {}
  194. func (*Job_AppEngineHttpTarget) isJob_Target() {}
  195. func (*Job_HttpTarget) isJob_Target() {}
  196. func (m *Job) GetTarget() isJob_Target {
  197. if m != nil {
  198. return m.Target
  199. }
  200. return nil
  201. }
  202. func (m *Job) GetPubsubTarget() *PubsubTarget {
  203. if x, ok := m.GetTarget().(*Job_PubsubTarget); ok {
  204. return x.PubsubTarget
  205. }
  206. return nil
  207. }
  208. func (m *Job) GetAppEngineHttpTarget() *AppEngineHttpTarget {
  209. if x, ok := m.GetTarget().(*Job_AppEngineHttpTarget); ok {
  210. return x.AppEngineHttpTarget
  211. }
  212. return nil
  213. }
  214. func (m *Job) GetHttpTarget() *HttpTarget {
  215. if x, ok := m.GetTarget().(*Job_HttpTarget); ok {
  216. return x.HttpTarget
  217. }
  218. return nil
  219. }
  220. func (m *Job) GetSchedule() string {
  221. if m != nil {
  222. return m.Schedule
  223. }
  224. return ""
  225. }
  226. func (m *Job) GetTimeZone() string {
  227. if m != nil {
  228. return m.TimeZone
  229. }
  230. return ""
  231. }
  232. func (m *Job) GetUserUpdateTime() *timestamp.Timestamp {
  233. if m != nil {
  234. return m.UserUpdateTime
  235. }
  236. return nil
  237. }
  238. func (m *Job) GetState() Job_State {
  239. if m != nil {
  240. return m.State
  241. }
  242. return Job_STATE_UNSPECIFIED
  243. }
  244. func (m *Job) GetStatus() *status.Status {
  245. if m != nil {
  246. return m.Status
  247. }
  248. return nil
  249. }
  250. func (m *Job) GetScheduleTime() *timestamp.Timestamp {
  251. if m != nil {
  252. return m.ScheduleTime
  253. }
  254. return nil
  255. }
  256. func (m *Job) GetLastAttemptTime() *timestamp.Timestamp {
  257. if m != nil {
  258. return m.LastAttemptTime
  259. }
  260. return nil
  261. }
  262. func (m *Job) GetRetryConfig() *RetryConfig {
  263. if m != nil {
  264. return m.RetryConfig
  265. }
  266. return nil
  267. }
  268. // XXX_OneofFuncs is for the internal use of the proto package.
  269. func (*Job) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) {
  270. return _Job_OneofMarshaler, _Job_OneofUnmarshaler, _Job_OneofSizer, []interface{}{
  271. (*Job_PubsubTarget)(nil),
  272. (*Job_AppEngineHttpTarget)(nil),
  273. (*Job_HttpTarget)(nil),
  274. }
  275. }
  276. func _Job_OneofMarshaler(msg proto.Message, b *proto.Buffer) error {
  277. m := msg.(*Job)
  278. // target
  279. switch x := m.Target.(type) {
  280. case *Job_PubsubTarget:
  281. b.EncodeVarint(4<<3 | proto.WireBytes)
  282. if err := b.EncodeMessage(x.PubsubTarget); err != nil {
  283. return err
  284. }
  285. case *Job_AppEngineHttpTarget:
  286. b.EncodeVarint(5<<3 | proto.WireBytes)
  287. if err := b.EncodeMessage(x.AppEngineHttpTarget); err != nil {
  288. return err
  289. }
  290. case *Job_HttpTarget:
  291. b.EncodeVarint(6<<3 | proto.WireBytes)
  292. if err := b.EncodeMessage(x.HttpTarget); err != nil {
  293. return err
  294. }
  295. case nil:
  296. default:
  297. return fmt.Errorf("Job.Target has unexpected type %T", x)
  298. }
  299. return nil
  300. }
  301. func _Job_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) {
  302. m := msg.(*Job)
  303. switch tag {
  304. case 4: // target.pubsub_target
  305. if wire != proto.WireBytes {
  306. return true, proto.ErrInternalBadWireType
  307. }
  308. msg := new(PubsubTarget)
  309. err := b.DecodeMessage(msg)
  310. m.Target = &Job_PubsubTarget{msg}
  311. return true, err
  312. case 5: // target.app_engine_http_target
  313. if wire != proto.WireBytes {
  314. return true, proto.ErrInternalBadWireType
  315. }
  316. msg := new(AppEngineHttpTarget)
  317. err := b.DecodeMessage(msg)
  318. m.Target = &Job_AppEngineHttpTarget{msg}
  319. return true, err
  320. case 6: // target.http_target
  321. if wire != proto.WireBytes {
  322. return true, proto.ErrInternalBadWireType
  323. }
  324. msg := new(HttpTarget)
  325. err := b.DecodeMessage(msg)
  326. m.Target = &Job_HttpTarget{msg}
  327. return true, err
  328. default:
  329. return false, nil
  330. }
  331. }
  332. func _Job_OneofSizer(msg proto.Message) (n int) {
  333. m := msg.(*Job)
  334. // target
  335. switch x := m.Target.(type) {
  336. case *Job_PubsubTarget:
  337. s := proto.Size(x.PubsubTarget)
  338. n += 1 // tag and wire
  339. n += proto.SizeVarint(uint64(s))
  340. n += s
  341. case *Job_AppEngineHttpTarget:
  342. s := proto.Size(x.AppEngineHttpTarget)
  343. n += 1 // tag and wire
  344. n += proto.SizeVarint(uint64(s))
  345. n += s
  346. case *Job_HttpTarget:
  347. s := proto.Size(x.HttpTarget)
  348. n += 1 // tag and wire
  349. n += proto.SizeVarint(uint64(s))
  350. n += s
  351. case nil:
  352. default:
  353. panic(fmt.Sprintf("proto: unexpected type %T in oneof", x))
  354. }
  355. return n
  356. }
  357. // Settings that determine the retry behavior.
  358. //
  359. // By default, if a job does not complete successfully (meaning that
  360. // an acknowledgement is not received from the handler, then it will be retried
  361. // with exponential backoff according to the settings in [RetryConfig][google.cloud.scheduler.v1.RetryConfig].
  362. type RetryConfig struct {
  363. // The number of attempts that the system will make to run a job using the
  364. // exponential backoff procedure described by
  365. // [max_doublings][google.cloud.scheduler.v1.RetryConfig.max_doublings].
  366. //
  367. // The default value of retry_count is zero.
  368. //
  369. // If retry_count is zero, a job attempt will *not* be retried if
  370. // it fails. Instead the Cloud Scheduler system will wait for the
  371. // next scheduled execution time.
  372. //
  373. // If retry_count is set to a non-zero number then Cloud Scheduler
  374. // will retry failed attempts, using exponential backoff,
  375. // retry_count times, or until the next scheduled execution time,
  376. // whichever comes first.
  377. //
  378. // Values greater than 5 and negative values are not allowed.
  379. RetryCount int32 `protobuf:"varint,1,opt,name=retry_count,json=retryCount,proto3" json:"retry_count,omitempty"`
  380. // The time limit for retrying a failed job, measured from time when an
  381. // execution was first attempted. If specified with
  382. // [retry_count][google.cloud.scheduler.v1.RetryConfig.retry_count], the job will be retried until both
  383. // limits are reached.
  384. //
  385. // The default value for max_retry_duration is zero, which means retry
  386. // duration is unlimited.
  387. MaxRetryDuration *duration.Duration `protobuf:"bytes,2,opt,name=max_retry_duration,json=maxRetryDuration,proto3" json:"max_retry_duration,omitempty"`
  388. // The minimum amount of time to wait before retrying a job after
  389. // it fails.
  390. //
  391. // The default value of this field is 5 seconds.
  392. MinBackoffDuration *duration.Duration `protobuf:"bytes,3,opt,name=min_backoff_duration,json=minBackoffDuration,proto3" json:"min_backoff_duration,omitempty"`
  393. // The maximum amount of time to wait before retrying a job after
  394. // it fails.
  395. //
  396. // The default value of this field is 1 hour.
  397. MaxBackoffDuration *duration.Duration `protobuf:"bytes,4,opt,name=max_backoff_duration,json=maxBackoffDuration,proto3" json:"max_backoff_duration,omitempty"`
  398. // The time between retries will double `max_doublings` times.
  399. //
  400. // A job's retry interval starts at
  401. // [min_backoff_duration][google.cloud.scheduler.v1.RetryConfig.min_backoff_duration], then doubles
  402. // `max_doublings` times, then increases linearly, and finally
  403. // retries retries at intervals of
  404. // [max_backoff_duration][google.cloud.scheduler.v1.RetryConfig.max_backoff_duration] up to
  405. // [retry_count][google.cloud.scheduler.v1.RetryConfig.retry_count] times.
  406. //
  407. // For example, if [min_backoff_duration][google.cloud.scheduler.v1.RetryConfig.min_backoff_duration] is
  408. // 10s, [max_backoff_duration][google.cloud.scheduler.v1.RetryConfig.max_backoff_duration] is 300s, and
  409. // `max_doublings` is 3, then the a job will first be retried in 10s. The
  410. // retry interval will double three times, and then increase linearly by
  411. // 2^3 * 10s. Finally, the job will retry at intervals of
  412. // [max_backoff_duration][google.cloud.scheduler.v1.RetryConfig.max_backoff_duration] until the job has
  413. // been attempted [retry_count][google.cloud.scheduler.v1.RetryConfig.retry_count] times. Thus, the
  414. // requests will retry at 10s, 20s, 40s, 80s, 160s, 240s, 300s, 300s, ....
  415. //
  416. // The default value of this field is 5.
  417. MaxDoublings int32 `protobuf:"varint,5,opt,name=max_doublings,json=maxDoublings,proto3" json:"max_doublings,omitempty"`
  418. XXX_NoUnkeyedLiteral struct{} `json:"-"`
  419. XXX_unrecognized []byte `json:"-"`
  420. XXX_sizecache int32 `json:"-"`
  421. }
  422. func (m *RetryConfig) Reset() { *m = RetryConfig{} }
  423. func (m *RetryConfig) String() string { return proto.CompactTextString(m) }
  424. func (*RetryConfig) ProtoMessage() {}
  425. func (*RetryConfig) Descriptor() ([]byte, []int) {
  426. return fileDescriptor_job_2db48d5da5a77145, []int{1}
  427. }
  428. func (m *RetryConfig) XXX_Unmarshal(b []byte) error {
  429. return xxx_messageInfo_RetryConfig.Unmarshal(m, b)
  430. }
  431. func (m *RetryConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  432. return xxx_messageInfo_RetryConfig.Marshal(b, m, deterministic)
  433. }
  434. func (dst *RetryConfig) XXX_Merge(src proto.Message) {
  435. xxx_messageInfo_RetryConfig.Merge(dst, src)
  436. }
  437. func (m *RetryConfig) XXX_Size() int {
  438. return xxx_messageInfo_RetryConfig.Size(m)
  439. }
  440. func (m *RetryConfig) XXX_DiscardUnknown() {
  441. xxx_messageInfo_RetryConfig.DiscardUnknown(m)
  442. }
  443. var xxx_messageInfo_RetryConfig proto.InternalMessageInfo
  444. func (m *RetryConfig) GetRetryCount() int32 {
  445. if m != nil {
  446. return m.RetryCount
  447. }
  448. return 0
  449. }
  450. func (m *RetryConfig) GetMaxRetryDuration() *duration.Duration {
  451. if m != nil {
  452. return m.MaxRetryDuration
  453. }
  454. return nil
  455. }
  456. func (m *RetryConfig) GetMinBackoffDuration() *duration.Duration {
  457. if m != nil {
  458. return m.MinBackoffDuration
  459. }
  460. return nil
  461. }
  462. func (m *RetryConfig) GetMaxBackoffDuration() *duration.Duration {
  463. if m != nil {
  464. return m.MaxBackoffDuration
  465. }
  466. return nil
  467. }
  468. func (m *RetryConfig) GetMaxDoublings() int32 {
  469. if m != nil {
  470. return m.MaxDoublings
  471. }
  472. return 0
  473. }
  474. func init() {
  475. proto.RegisterType((*Job)(nil), "google.cloud.scheduler.v1.Job")
  476. proto.RegisterType((*RetryConfig)(nil), "google.cloud.scheduler.v1.RetryConfig")
  477. proto.RegisterEnum("google.cloud.scheduler.v1.Job_State", Job_State_name, Job_State_value)
  478. }
  479. func init() {
  480. proto.RegisterFile("google/cloud/scheduler/v1/job.proto", fileDescriptor_job_2db48d5da5a77145)
  481. }
  482. var fileDescriptor_job_2db48d5da5a77145 = []byte{
  483. // 693 bytes of a gzipped FileDescriptorProto
  484. 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x84, 0x94, 0x5f, 0x53, 0xda, 0x4a,
  485. 0x18, 0xc6, 0x45, 0x81, 0x83, 0x6f, 0xc0, 0x03, 0xab, 0x9e, 0x13, 0xe9, 0x1f, 0x19, 0x6d, 0xad,
  486. 0xd3, 0x8b, 0x64, 0xb4, 0x77, 0xed, 0x45, 0x07, 0x0c, 0x56, 0x6c, 0xc7, 0x61, 0x02, 0xcc, 0x74,
  487. 0xbc, 0xc9, 0x6c, 0xc2, 0x12, 0xd3, 0x92, 0xdd, 0x9d, 0x64, 0xe3, 0xd0, 0x7e, 0xb0, 0x7e, 0x99,
  488. 0x7e, 0x99, 0x4e, 0x76, 0x13, 0x44, 0xad, 0x70, 0xc7, 0xbe, 0xef, 0xf3, 0xfc, 0xf6, 0xc9, 0xbe,
  489. 0xbb, 0xc0, 0xa1, 0xcf, 0x98, 0x3f, 0x25, 0xa6, 0x37, 0x65, 0xc9, 0xd8, 0x8c, 0xbd, 0x1b, 0x32,
  490. 0x4e, 0xa6, 0x24, 0x32, 0x6f, 0x4f, 0xcc, 0x6f, 0xcc, 0x35, 0x78, 0xc4, 0x04, 0x43, 0x7b, 0x4a,
  491. 0x64, 0x48, 0x91, 0x31, 0x17, 0x19, 0xb7, 0x27, 0xcd, 0xe7, 0x99, 0x1f, 0xf3, 0xc0, 0xc4, 0x94,
  492. 0x32, 0x81, 0x45, 0xc0, 0x68, 0xac, 0x8c, 0xcd, 0xa3, 0xa7, 0xe9, 0x02, 0x47, 0x3e, 0x11, 0x99,
  493. 0xee, 0x65, 0xa6, 0x93, 0x2b, 0x37, 0x99, 0x98, 0xe3, 0x24, 0x92, 0xa0, 0xac, 0xbf, 0xff, 0xb0,
  494. 0x2f, 0x82, 0x90, 0xc4, 0x02, 0x87, 0x3c, 0x13, 0xfc, 0x9f, 0x09, 0x22, 0xee, 0x99, 0xb1, 0xc0,
  495. 0x22, 0xc9, 0x12, 0x1c, 0xfc, 0x2e, 0xc3, 0xc6, 0x25, 0x73, 0x11, 0x82, 0x22, 0xc5, 0x21, 0xd1,
  496. 0x0b, 0xad, 0xc2, 0xf1, 0xa6, 0x2d, 0x7f, 0xa3, 0x16, 0x68, 0x63, 0x12, 0x7b, 0x51, 0xc0, 0xd3,
  497. 0xad, 0xf4, 0x75, 0xd9, 0x5a, 0x2c, 0xa1, 0x2b, 0xa8, 0xf1, 0xc4, 0x8d, 0x13, 0xd7, 0x51, 0x71,
  498. 0xf5, 0x62, 0xab, 0x70, 0xac, 0x9d, 0xbe, 0x31, 0x9e, 0x3c, 0x10, 0xa3, 0x2f, 0xf5, 0x43, 0x29,
  499. 0xbf, 0x58, 0xb3, 0xab, 0x7c, 0x61, 0x8d, 0x08, 0xfc, 0x87, 0x39, 0x77, 0x08, 0xf5, 0x03, 0x4a,
  500. 0x9c, 0x1b, 0x21, 0x78, 0x0e, 0x2e, 0x49, 0xb0, 0xb1, 0x04, 0xdc, 0xe6, 0xbc, 0x2b, 0x7d, 0x17,
  501. 0x42, 0xf0, 0x39, 0x7f, 0x1b, 0x3f, 0x2e, 0xa3, 0x0b, 0xd0, 0x16, 0xd9, 0x65, 0xc9, 0x7e, 0xbd,
  502. 0x84, 0x7d, 0x0f, 0x09, 0x37, 0x77, 0xa4, 0x26, 0x54, 0x72, 0xa1, 0xbe, 0x23, 0xcf, 0x67, 0xbe,
  503. 0x46, 0xcf, 0x60, 0x33, 0x1d, 0x83, 0xf3, 0x93, 0x51, 0xa2, 0xef, 0xaa, 0x66, 0x5a, 0xb8, 0x66,
  504. 0x94, 0x20, 0x0b, 0xea, 0x49, 0x4c, 0x22, 0x27, 0xe1, 0x63, 0x2c, 0x88, 0x93, 0xd6, 0xf5, 0x4d,
  505. 0x99, 0xa3, 0x99, 0xe7, 0xc8, 0x87, 0x69, 0x0c, 0xf3, 0x61, 0xda, 0x5b, 0xa9, 0x67, 0x24, 0x2d,
  506. 0x69, 0x11, 0xbd, 0x87, 0x52, 0x3a, 0x4d, 0xa2, 0x43, 0xab, 0x70, 0xbc, 0x75, 0xfa, 0x6a, 0xc9,
  507. 0x27, 0x5c, 0x32, 0xd7, 0x18, 0xa4, 0x5a, 0x5b, 0x59, 0xd0, 0x5b, 0x28, 0xab, 0x9b, 0xa0, 0x6b,
  508. 0x72, 0x5f, 0x94, 0x9b, 0x23, 0xee, 0x49, 0x65, 0x12, 0xdb, 0x99, 0x02, 0x7d, 0x84, 0x5a, 0x0e,
  509. 0x53, 0x51, 0x1b, 0x2b, 0xa3, 0x56, 0x73, 0x83, 0x0c, 0x7a, 0x0e, 0x8d, 0x29, 0x8e, 0x85, 0x83,
  510. 0x85, 0x20, 0x21, 0x17, 0x0a, 0x82, 0x56, 0x42, 0xfe, 0x4d, 0x4d, 0x6d, 0xe5, 0x91, 0x9c, 0x1e,
  511. 0x54, 0x23, 0x22, 0xa2, 0x1f, 0x8e, 0xc7, 0xe8, 0x24, 0xf0, 0xf5, 0x6d, 0x89, 0x38, 0x5a, 0xf2,
  512. 0xdd, 0x76, 0x2a, 0x3f, 0x93, 0x6a, 0x5b, 0x8b, 0xee, 0x16, 0x07, 0x5f, 0xa1, 0x24, 0xcf, 0x03,
  513. 0xed, 0x42, 0x63, 0x30, 0x6c, 0x0f, 0xbb, 0xce, 0xe8, 0x6a, 0xd0, 0xef, 0x9e, 0xf5, 0xce, 0x7b,
  514. 0x5d, 0xab, 0xbe, 0x86, 0x34, 0xf8, 0xa7, 0x7b, 0xd5, 0xee, 0x7c, 0xe9, 0x5a, 0xf5, 0x02, 0x02,
  515. 0x28, 0xf7, 0xdb, 0xa3, 0x41, 0xd7, 0xaa, 0xaf, 0xa3, 0x2a, 0x54, 0xac, 0xde, 0x40, 0x75, 0x36,
  516. 0x50, 0x03, 0x6a, 0xa3, 0xbe, 0x95, 0xda, 0xcf, 0xdb, 0xbd, 0xb4, 0x54, 0xec, 0x54, 0xa0, 0xac,
  517. 0x6e, 0xd6, 0xc1, 0xaf, 0x75, 0xd0, 0x16, 0x02, 0xa0, 0x7d, 0xd0, 0xf2, 0xf8, 0x09, 0x15, 0xf2,
  518. 0xb1, 0x95, 0x6c, 0xc8, 0x52, 0x25, 0x54, 0xa0, 0x4f, 0x80, 0x42, 0x3c, 0x73, 0x94, 0x28, 0x7f,
  519. 0xe4, 0xf2, 0xe5, 0x69, 0xa7, 0x7b, 0x8f, 0x0e, 0xca, 0xca, 0x04, 0x76, 0x3d, 0xc4, 0x33, 0xb9,
  520. 0x4f, 0x5e, 0x41, 0x9f, 0x61, 0x27, 0x0c, 0xa8, 0xe3, 0x62, 0xef, 0x3b, 0x9b, 0x4c, 0xee, 0x50,
  521. 0x1b, 0xab, 0x50, 0x28, 0x0c, 0x68, 0x47, 0xb9, 0xee, 0xc1, 0xf0, 0xec, 0x31, 0xac, 0xb8, 0x1a,
  522. 0x86, 0x67, 0x0f, 0x61, 0x87, 0x50, 0x4b, 0x61, 0x63, 0x96, 0xb8, 0xd3, 0x80, 0xfa, 0xb1, 0x7c,
  523. 0xda, 0x25, 0xbb, 0x1a, 0xe2, 0x99, 0x95, 0xd7, 0x3a, 0x0c, 0x5e, 0x78, 0x2c, 0x7c, 0x7a, 0xac,
  524. 0x9d, 0xca, 0x25, 0x73, 0xfb, 0xe9, 0x7e, 0xfd, 0xc2, 0x75, 0x27, 0x93, 0xf9, 0x6c, 0x8a, 0xa9,
  525. 0x6f, 0xb0, 0xc8, 0x37, 0x7d, 0x42, 0x65, 0x1a, 0x53, 0xb5, 0x30, 0x0f, 0xe2, 0xbf, 0xfc, 0xc9,
  526. 0x7e, 0x98, 0x2f, 0xdc, 0xb2, 0x94, 0xbf, 0xfb, 0x13, 0x00, 0x00, 0xff, 0xff, 0xdb, 0x56, 0x25,
  527. 0x9f, 0xf0, 0x05, 0x00, 0x00,
  528. }