From e97f0ffd695fd72849f897c60dbf08144417ea4c Mon Sep 17 00:00:00 2001 From: Michael Crenshaw <350466+crenshaw-dev@users.noreply.github.com> Date: Mon, 12 Aug 2024 17:08:02 -0400 Subject: [PATCH] feat(hydrator): add sourceHydrator types Co-authored-by: Alexandre Gaudreault Co-authored-by: Omer Azmon Co-authored-by: daengdaengLee Co-authored-by: Juwon Hwang (Kevin) Co-authored-by: thisishwan2 Co-authored-by: mirageoasis Co-authored-by: Robin Lieb Co-authored-by: miiiinju1 Signed-off-by: Michael Crenshaw <350466+crenshaw-dev@users.noreply.github.com> --- assets/swagger.json | 123 + manifests/core-install.yaml | 1127 ++++- manifests/crds/application-crd.yaml | 229 + manifests/crds/applicationset-crd.yaml | 864 ++++ manifests/ha/install.yaml | 1127 ++++- manifests/install.yaml | 1127 ++++- pkg/apis/application/v1alpha1/generated.pb.go | 4065 ++++++++++++----- pkg/apis/application/v1alpha1/generated.proto | 95 + .../application/v1alpha1/openapi_generated.go | 278 +- pkg/apis/application/v1alpha1/types.go | 92 +- 10 files changed, 7981 insertions(+), 1146 deletions(-) diff --git a/assets/swagger.json b/assets/swagger.json index edbc533ab92ed..7417f7229e9ce 100644 --- a/assets/swagger.json +++ b/assets/swagger.json @@ -6840,6 +6840,9 @@ "source": { "$ref": "#/definitions/v1alpha1ApplicationSource" }, + "sourceHydrator": { + "$ref": "#/definitions/v1alpha1SourceHydrator" + }, "sources": { "type": "array", "title": "Sources is a reference to the location of the application's manifests or chart", @@ -6897,6 +6900,9 @@ "$ref": "#/definitions/applicationv1alpha1ResourceStatus" } }, + "sourceHydrator": { + "$ref": "#/definitions/v1alpha1SourceHydratorStatus" + }, "sourceType": { "type": "string", "title": "SourceType specifies the type of this application" @@ -7324,6 +7330,24 @@ } } }, + "v1alpha1DrySource": { + "description": "DrySource specifies a location for dry \"don't repeat yourself\" manifest source information.", + "type": "object", + "properties": { + "path": { + "type": "string", + "title": "Path is a directory path within the Git repository where the manifests are located" + }, + "repoURL": { + "type": "string", + "title": "RepoURL is the URL to the git repository that contains the application manifests" + }, + "targetRevision": { + "type": "string", + "title": "TargetRevision defines the revision of the source to hydrate" + } + } + }, "v1alpha1DuckTypeGenerator": { "description": "DuckType defines a generator to match against clusters registered with ArgoCD.", "type": "object", @@ -7575,6 +7599,47 @@ } } }, + "v1alpha1HydrateOperation": { + "type": "object", + "title": "HydrateOperation contains information about the most recent hydrate operation", + "properties": { + "drySHA": { + "type": "string", + "title": "DrySHA holds the resolved revision (sha) of the dry source as of the most recent reconciliation" + }, + "finishedAt": { + "$ref": "#/definitions/v1Time" + }, + "hydratedSHA": { + "type": "string", + "title": "HydratedSHA holds the resolved revision (sha) of the hydrated source as of the most recent reconciliation" + }, + "message": { + "type": "string", + "title": "Message contains a message describing the current status of the hydrate operation" + }, + "phase": { + "type": "string", + "title": "Phase indicates the status of the hydrate operation" + }, + "sourceHydrator": { + "$ref": "#/definitions/v1alpha1SourceHydrator" + }, + "startedAt": { + "$ref": "#/definitions/v1Time" + } + } + }, + "v1alpha1HydrateTo": { + "description": "HydrateTo specifies a location to which hydrated manifests should be pushed as a \"staging area\" before being moved to\nthe SyncSource. The RepoURL and Path are assumed based on the associated SyncSource config in the SourceHydrator.", + "type": "object", + "properties": { + "targetBranch": { + "type": "string", + "title": "TargetBranch is the branch to which hydrated manifests should be committed" + } + } + }, "v1alpha1Info": { "type": "object", "properties": { @@ -9182,6 +9247,50 @@ } } }, + "v1alpha1SourceHydrator": { + "description": "SourceHydrator specifies a dry \"don't repeat yourself\" source for manifests, a sync source from which to sync\nhydrated manifests, and an optional hydrateTo location to act as a \"staging\" aread for hydrated manifests.", + "type": "object", + "properties": { + "drySource": { + "$ref": "#/definitions/v1alpha1DrySource" + }, + "hydrateTo": { + "$ref": "#/definitions/v1alpha1HydrateTo" + }, + "syncSource": { + "$ref": "#/definitions/v1alpha1SyncSource" + } + } + }, + "v1alpha1SourceHydratorStatus": { + "type": "object", + "title": "SourceHydratorStatus contains information about the current state of source hydration", + "properties": { + "currentOperation": { + "$ref": "#/definitions/v1alpha1HydrateOperation" + }, + "lastSuccessfulOperation": { + "$ref": "#/definitions/v1alpha1SuccessfulHydrateOperation" + } + } + }, + "v1alpha1SuccessfulHydrateOperation": { + "type": "object", + "title": "SuccessfulHydrateOperation contains information about the most recent successful hydrate operation", + "properties": { + "drySHA": { + "type": "string", + "title": "DrySHA holds the resolved revision (sha) of the dry source as of the most recent reconciliation" + }, + "hydratedSHA": { + "type": "string", + "title": "HydratedSHA holds the resolved revision (sha) of the hydrated source as of the most recent reconciliation" + }, + "sourceHydrator": { + "$ref": "#/definitions/v1alpha1SourceHydrator" + } + } + }, "v1alpha1SyncOperation": { "description": "SyncOperation contains details about a sync operation.", "type": "object", @@ -9341,6 +9450,20 @@ } } }, + "v1alpha1SyncSource": { + "description": "SyncSource specifies a location from which hydrated manifests may be synced. RepoURL is assumed based on the\nassociated DrySource config in the SourceHydrator.", + "type": "object", + "properties": { + "path": { + "description": "Path is a directory path within the git repository where hydrated manifests should be committed to and synced\nfrom. If hydrateTo is set, this is just the path from which hydrated manifests will be synced.", + "type": "string" + }, + "targetBranch": { + "type": "string", + "title": "TargetBranch is the branch to which hydrated manifests should be committed" + } + } + }, "v1alpha1SyncStatus": { "type": "object", "title": "SyncStatus contains information about the currently observed live and desired states of an application", diff --git a/manifests/core-install.yaml b/manifests/core-install.yaml index ea6566129bae8..6a270cc8b7408 100644 --- a/manifests/core-install.yaml +++ b/manifests/core-install.yaml @@ -1380,6 +1380,64 @@ spec: required: - repoURL type: object + sourceHydrator: + description: SourceHydrator provides a way to push hydrated manifests + back to git before syncing them to the cluster. + properties: + drySource: + description: DrySource specifies where the dry "don't repeat yourself" + manifest source lives. + properties: + path: + description: Path is a directory path within the Git repository + where the manifests are located + type: string + repoURL: + description: RepoURL is the URL to the git repository that + contains the application manifests + type: string + targetRevision: + description: TargetRevision defines the revision of the source + to hydrate + type: string + required: + - path + - repoURL + - targetRevision + type: object + hydrateTo: + description: |- + HydrateTo specifies an optional "staging" location to push hydrated manifests to. An external system would then + have to move manifests to the SyncSource, e.g. by pull request. + properties: + targetBranch: + description: TargetBranch is the branch to which hydrated + manifests should be committed + type: string + required: + - targetBranch + type: object + syncSource: + description: SyncSource specifies where to sync hydrated manifests + from. + properties: + path: + description: |- + Path is a directory path within the git repository where hydrated manifests should be committed to and synced + from. If hydrateTo is set, this is just the path from which hydrated manifests will be synced. + type: string + targetBranch: + description: TargetBranch is the branch to which hydrated + manifests should be committed + type: string + required: + - path + - targetBranch + type: object + required: + - drySource + - syncSource + type: object sources: description: Sources is a reference to the location of the application's manifests or chart @@ -4523,6 +4581,177 @@ spec: type: string type: object type: array + sourceHydrator: + description: SourceHydrator stores information about the current state + of source hydration + properties: + currentOperation: + description: CurrentOperation holds the status of the hydrate + operation + properties: + drySHA: + description: DrySHA holds the resolved revision (sha) of the + dry source as of the most recent reconciliation + type: string + finishedAt: + description: FinishedAt indicates when the hydrate operation + finished + format: date-time + type: string + hydratedSHA: + description: HydratedSHA holds the resolved revision (sha) + of the hydrated source as of the most recent reconciliation + type: string + message: + description: Message contains a message describing the current + status of the hydrate operation + type: string + phase: + description: Phase indicates the status of the hydrate operation + enum: + - Hydrating + - Failed + - Hydrated + type: string + sourceHydrator: + description: SourceHydrator holds the hydrator config used + for the hydrate operation + properties: + drySource: + description: DrySource specifies where the dry "don't + repeat yourself" manifest source lives. + properties: + path: + description: Path is a directory path within the Git + repository where the manifests are located + type: string + repoURL: + description: RepoURL is the URL to the git repository + that contains the application manifests + type: string + targetRevision: + description: TargetRevision defines the revision of + the source to hydrate + type: string + required: + - path + - repoURL + - targetRevision + type: object + hydrateTo: + description: |- + HydrateTo specifies an optional "staging" location to push hydrated manifests to. An external system would then + have to move manifests to the SyncSource, e.g. by pull request. + properties: + targetBranch: + description: TargetBranch is the branch to which hydrated + manifests should be committed + type: string + required: + - targetBranch + type: object + syncSource: + description: SyncSource specifies where to sync hydrated + manifests from. + properties: + path: + description: |- + Path is a directory path within the git repository where hydrated manifests should be committed to and synced + from. If hydrateTo is set, this is just the path from which hydrated manifests will be synced. + type: string + targetBranch: + description: TargetBranch is the branch to which hydrated + manifests should be committed + type: string + required: + - path + - targetBranch + type: object + required: + - drySource + - syncSource + type: object + startedAt: + description: StartedAt indicates when the hydrate operation + started + format: date-time + type: string + required: + - message + - phase + type: object + lastSuccessfulOperation: + description: LastSuccessfulOperation holds info about the most + recent successful hydration + properties: + drySHA: + description: DrySHA holds the resolved revision (sha) of the + dry source as of the most recent reconciliation + type: string + hydratedSHA: + description: HydratedSHA holds the resolved revision (sha) + of the hydrated source as of the most recent reconciliation + type: string + sourceHydrator: + description: SourceHydrator holds the hydrator config used + for the hydrate operation + properties: + drySource: + description: DrySource specifies where the dry "don't + repeat yourself" manifest source lives. + properties: + path: + description: Path is a directory path within the Git + repository where the manifests are located + type: string + repoURL: + description: RepoURL is the URL to the git repository + that contains the application manifests + type: string + targetRevision: + description: TargetRevision defines the revision of + the source to hydrate + type: string + required: + - path + - repoURL + - targetRevision + type: object + hydrateTo: + description: |- + HydrateTo specifies an optional "staging" location to push hydrated manifests to. An external system would then + have to move manifests to the SyncSource, e.g. by pull request. + properties: + targetBranch: + description: TargetBranch is the branch to which hydrated + manifests should be committed + type: string + required: + - targetBranch + type: object + syncSource: + description: SyncSource specifies where to sync hydrated + manifests from. + properties: + path: + description: |- + Path is a directory path within the git repository where hydrated manifests should be committed to and synced + from. If hydrateTo is set, this is just the path from which hydrated manifests will be synced. + type: string + targetBranch: + description: TargetBranch is the branch to which hydrated + manifests should be committed + type: string + required: + - path + - targetBranch + type: object + required: + - drySource + - syncSource + type: object + type: object + type: object sourceType: description: SourceType specifies the type of this application type: string @@ -5782,6 +6011,42 @@ spec: required: - repoURL type: object + sourceHydrator: + properties: + drySource: + properties: + path: + type: string + repoURL: + type: string + targetRevision: + type: string + required: + - path + - repoURL + - targetRevision + type: object + hydrateTo: + properties: + targetBranch: + type: string + required: + - targetBranch + type: object + syncSource: + properties: + path: + type: string + targetBranch: + type: string + required: + - path + - targetBranch + type: object + required: + - drySource + - syncSource + type: object sources: items: properties: @@ -6410,6 +6675,42 @@ spec: required: - repoURL type: object + sourceHydrator: + properties: + drySource: + properties: + path: + type: string + repoURL: + type: string + targetRevision: + type: string + required: + - path + - repoURL + - targetRevision + type: object + hydrateTo: + properties: + targetBranch: + type: string + required: + - targetBranch + type: object + syncSource: + properties: + path: + type: string + targetBranch: + type: string + required: + - path + - targetBranch + type: object + required: + - drySource + - syncSource + type: object sources: items: properties: @@ -7037,6 +7338,42 @@ spec: required: - repoURL type: object + sourceHydrator: + properties: + drySource: + properties: + path: + type: string + repoURL: + type: string + targetRevision: + type: string + required: + - path + - repoURL + - targetRevision + type: object + hydrateTo: + properties: + targetBranch: + type: string + required: + - targetBranch + type: object + syncSource: + properties: + path: + type: string + targetBranch: + type: string + required: + - path + - targetBranch + type: object + required: + - drySource + - syncSource + type: object sources: items: properties: @@ -7644,6 +7981,42 @@ spec: required: - repoURL type: object + sourceHydrator: + properties: + drySource: + properties: + path: + type: string + repoURL: + type: string + targetRevision: + type: string + required: + - path + - repoURL + - targetRevision + type: object + hydrateTo: + properties: + targetBranch: + type: string + required: + - targetBranch + type: object + syncSource: + properties: + path: + type: string + targetBranch: + type: string + required: + - path + - targetBranch + type: object + required: + - drySource + - syncSource + type: object sources: items: properties: @@ -8276,6 +8649,42 @@ spec: required: - repoURL type: object + sourceHydrator: + properties: + drySource: + properties: + path: + type: string + repoURL: + type: string + targetRevision: + type: string + required: + - path + - repoURL + - targetRevision + type: object + hydrateTo: + properties: + targetBranch: + type: string + required: + - targetBranch + type: object + syncSource: + properties: + path: + type: string + targetBranch: + type: string + required: + - path + - targetBranch + type: object + required: + - drySource + - syncSource + type: object sources: items: properties: @@ -8904,6 +9313,42 @@ spec: required: - repoURL type: object + sourceHydrator: + properties: + drySource: + properties: + path: + type: string + repoURL: + type: string + targetRevision: + type: string + required: + - path + - repoURL + - targetRevision + type: object + hydrateTo: + properties: + targetBranch: + type: string + required: + - targetBranch + type: object + syncSource: + properties: + path: + type: string + targetBranch: + type: string + required: + - path + - targetBranch + type: object + required: + - drySource + - syncSource + type: object sources: items: properties: @@ -9531,6 +9976,42 @@ spec: required: - repoURL type: object + sourceHydrator: + properties: + drySource: + properties: + path: + type: string + repoURL: + type: string + targetRevision: + type: string + required: + - path + - repoURL + - targetRevision + type: object + hydrateTo: + properties: + targetBranch: + type: string + required: + - targetBranch + type: object + syncSource: + properties: + path: + type: string + targetBranch: + type: string + required: + - path + - targetBranch + type: object + required: + - drySource + - syncSource + type: object sources: items: properties: @@ -10138,23 +10619,59 @@ spec: required: - repoURL type: object - sources: - items: - properties: - chart: - type: string - directory: - properties: - exclude: - type: string - include: - type: string - jsonnet: - properties: - extVars: - items: - properties: - code: + sourceHydrator: + properties: + drySource: + properties: + path: + type: string + repoURL: + type: string + targetRevision: + type: string + required: + - path + - repoURL + - targetRevision + type: object + hydrateTo: + properties: + targetBranch: + type: string + required: + - targetBranch + type: object + syncSource: + properties: + path: + type: string + targetBranch: + type: string + required: + - path + - targetBranch + type: object + required: + - drySource + - syncSource + type: object + sources: + items: + properties: + chart: + type: string + directory: + properties: + exclude: + type: string + include: + type: string + jsonnet: + properties: + extVars: + items: + properties: + code: type: boolean name: type: string @@ -10753,6 +11270,42 @@ spec: required: - repoURL type: object + sourceHydrator: + properties: + drySource: + properties: + path: + type: string + repoURL: + type: string + targetRevision: + type: string + required: + - path + - repoURL + - targetRevision + type: object + hydrateTo: + properties: + targetBranch: + type: string + required: + - targetBranch + type: object + syncSource: + properties: + path: + type: string + targetBranch: + type: string + required: + - path + - targetBranch + type: object + required: + - drySource + - syncSource + type: object sources: items: properties: @@ -11587,6 +12140,42 @@ spec: required: - repoURL type: object + sourceHydrator: + properties: + drySource: + properties: + path: + type: string + repoURL: + type: string + targetRevision: + type: string + required: + - path + - repoURL + - targetRevision + type: object + hydrateTo: + properties: + targetBranch: + type: string + required: + - targetBranch + type: object + syncSource: + properties: + path: + type: string + targetBranch: + type: string + required: + - path + - targetBranch + type: object + required: + - drySource + - syncSource + type: object sources: items: properties: @@ -12416,6 +13005,42 @@ spec: required: - repoURL type: object + sourceHydrator: + properties: + drySource: + properties: + path: + type: string + repoURL: + type: string + targetRevision: + type: string + required: + - path + - repoURL + - targetRevision + type: object + hydrateTo: + properties: + targetBranch: + type: string + required: + - targetBranch + type: object + syncSource: + properties: + path: + type: string + targetBranch: + type: string + required: + - path + - targetBranch + type: object + required: + - drySource + - syncSource + type: object sources: items: properties: @@ -13040,6 +13665,42 @@ spec: required: - repoURL type: object + sourceHydrator: + properties: + drySource: + properties: + path: + type: string + repoURL: + type: string + targetRevision: + type: string + required: + - path + - repoURL + - targetRevision + type: object + hydrateTo: + properties: + targetBranch: + type: string + required: + - targetBranch + type: object + syncSource: + properties: + path: + type: string + targetBranch: + type: string + required: + - path + - targetBranch + type: object + required: + - drySource + - syncSource + type: object sources: items: properties: @@ -13674,6 +14335,42 @@ spec: required: - repoURL type: object + sourceHydrator: + properties: + drySource: + properties: + path: + type: string + repoURL: + type: string + targetRevision: + type: string + required: + - path + - repoURL + - targetRevision + type: object + hydrateTo: + properties: + targetBranch: + type: string + required: + - targetBranch + type: object + syncSource: + properties: + path: + type: string + targetBranch: + type: string + required: + - path + - targetBranch + type: object + required: + - drySource + - syncSource + type: object sources: items: properties: @@ -14302,6 +14999,42 @@ spec: required: - repoURL type: object + sourceHydrator: + properties: + drySource: + properties: + path: + type: string + repoURL: + type: string + targetRevision: + type: string + required: + - path + - repoURL + - targetRevision + type: object + hydrateTo: + properties: + targetBranch: + type: string + required: + - targetBranch + type: object + syncSource: + properties: + path: + type: string + targetBranch: + type: string + required: + - path + - targetBranch + type: object + required: + - drySource + - syncSource + type: object sources: items: properties: @@ -14929,6 +15662,42 @@ spec: required: - repoURL type: object + sourceHydrator: + properties: + drySource: + properties: + path: + type: string + repoURL: + type: string + targetRevision: + type: string + required: + - path + - repoURL + - targetRevision + type: object + hydrateTo: + properties: + targetBranch: + type: string + required: + - targetBranch + type: object + syncSource: + properties: + path: + type: string + targetBranch: + type: string + required: + - path + - targetBranch + type: object + required: + - drySource + - syncSource + type: object sources: items: properties: @@ -15536,6 +16305,42 @@ spec: required: - repoURL type: object + sourceHydrator: + properties: + drySource: + properties: + path: + type: string + repoURL: + type: string + targetRevision: + type: string + required: + - path + - repoURL + - targetRevision + type: object + hydrateTo: + properties: + targetBranch: + type: string + required: + - targetBranch + type: object + syncSource: + properties: + path: + type: string + targetBranch: + type: string + required: + - path + - targetBranch + type: object + required: + - drySource + - syncSource + type: object sources: items: properties: @@ -16151,6 +16956,42 @@ spec: required: - repoURL type: object + sourceHydrator: + properties: + drySource: + properties: + path: + type: string + repoURL: + type: string + targetRevision: + type: string + required: + - path + - repoURL + - targetRevision + type: object + hydrateTo: + properties: + targetBranch: + type: string + required: + - targetBranch + type: object + syncSource: + properties: + path: + type: string + targetBranch: + type: string + required: + - path + - targetBranch + type: object + required: + - drySource + - syncSource + type: object sources: items: properties: @@ -16985,6 +17826,42 @@ spec: required: - repoURL type: object + sourceHydrator: + properties: + drySource: + properties: + path: + type: string + repoURL: + type: string + targetRevision: + type: string + required: + - path + - repoURL + - targetRevision + type: object + hydrateTo: + properties: + targetBranch: + type: string + required: + - targetBranch + type: object + syncSource: + properties: + path: + type: string + targetBranch: + type: string + required: + - path + - targetBranch + type: object + required: + - drySource + - syncSource + type: object sources: items: properties: @@ -17814,6 +18691,42 @@ spec: required: - repoURL type: object + sourceHydrator: + properties: + drySource: + properties: + path: + type: string + repoURL: + type: string + targetRevision: + type: string + required: + - path + - repoURL + - targetRevision + type: object + hydrateTo: + properties: + targetBranch: + type: string + required: + - targetBranch + type: object + syncSource: + properties: + path: + type: string + targetBranch: + type: string + required: + - path + - targetBranch + type: object + required: + - drySource + - syncSource + type: object sources: items: properties: @@ -18442,6 +19355,42 @@ spec: required: - repoURL type: object + sourceHydrator: + properties: + drySource: + properties: + path: + type: string + repoURL: + type: string + targetRevision: + type: string + required: + - path + - repoURL + - targetRevision + type: object + hydrateTo: + properties: + targetBranch: + type: string + required: + - targetBranch + type: object + syncSource: + properties: + path: + type: string + targetBranch: + type: string + required: + - path + - targetBranch + type: object + required: + - drySource + - syncSource + type: object sources: items: properties: @@ -19056,6 +20005,42 @@ spec: required: - repoURL type: object + sourceHydrator: + properties: + drySource: + properties: + path: + type: string + repoURL: + type: string + targetRevision: + type: string + required: + - path + - repoURL + - targetRevision + type: object + hydrateTo: + properties: + targetBranch: + type: string + required: + - targetBranch + type: object + syncSource: + properties: + path: + type: string + targetBranch: + type: string + required: + - path + - targetBranch + type: object + required: + - drySource + - syncSource + type: object sources: items: properties: @@ -19890,6 +20875,42 @@ spec: required: - repoURL type: object + sourceHydrator: + properties: + drySource: + properties: + path: + type: string + repoURL: + type: string + targetRevision: + type: string + required: + - path + - repoURL + - targetRevision + type: object + hydrateTo: + properties: + targetBranch: + type: string + required: + - targetBranch + type: object + syncSource: + properties: + path: + type: string + targetBranch: + type: string + required: + - path + - targetBranch + type: object + required: + - drySource + - syncSource + type: object sources: items: properties: @@ -20719,6 +21740,42 @@ spec: required: - repoURL type: object + sourceHydrator: + properties: + drySource: + properties: + path: + type: string + repoURL: + type: string + targetRevision: + type: string + required: + - path + - repoURL + - targetRevision + type: object + hydrateTo: + properties: + targetBranch: + type: string + required: + - targetBranch + type: object + syncSource: + properties: + path: + type: string + targetBranch: + type: string + required: + - path + - targetBranch + type: object + required: + - drySource + - syncSource + type: object sources: items: properties: @@ -21418,6 +22475,42 @@ spec: required: - repoURL type: object + sourceHydrator: + properties: + drySource: + properties: + path: + type: string + repoURL: + type: string + targetRevision: + type: string + required: + - path + - repoURL + - targetRevision + type: object + hydrateTo: + properties: + targetBranch: + type: string + required: + - targetBranch + type: object + syncSource: + properties: + path: + type: string + targetBranch: + type: string + required: + - path + - targetBranch + type: object + required: + - drySource + - syncSource + type: object sources: items: properties: diff --git a/manifests/crds/application-crd.yaml b/manifests/crds/application-crd.yaml index 18d06c49db40b..bd12f300fbbe1 100644 --- a/manifests/crds/application-crd.yaml +++ b/manifests/crds/application-crd.yaml @@ -1379,6 +1379,64 @@ spec: required: - repoURL type: object + sourceHydrator: + description: SourceHydrator provides a way to push hydrated manifests + back to git before syncing them to the cluster. + properties: + drySource: + description: DrySource specifies where the dry "don't repeat yourself" + manifest source lives. + properties: + path: + description: Path is a directory path within the Git repository + where the manifests are located + type: string + repoURL: + description: RepoURL is the URL to the git repository that + contains the application manifests + type: string + targetRevision: + description: TargetRevision defines the revision of the source + to hydrate + type: string + required: + - path + - repoURL + - targetRevision + type: object + hydrateTo: + description: |- + HydrateTo specifies an optional "staging" location to push hydrated manifests to. An external system would then + have to move manifests to the SyncSource, e.g. by pull request. + properties: + targetBranch: + description: TargetBranch is the branch to which hydrated + manifests should be committed + type: string + required: + - targetBranch + type: object + syncSource: + description: SyncSource specifies where to sync hydrated manifests + from. + properties: + path: + description: |- + Path is a directory path within the git repository where hydrated manifests should be committed to and synced + from. If hydrateTo is set, this is just the path from which hydrated manifests will be synced. + type: string + targetBranch: + description: TargetBranch is the branch to which hydrated + manifests should be committed + type: string + required: + - path + - targetBranch + type: object + required: + - drySource + - syncSource + type: object sources: description: Sources is a reference to the location of the application's manifests or chart @@ -4522,6 +4580,177 @@ spec: type: string type: object type: array + sourceHydrator: + description: SourceHydrator stores information about the current state + of source hydration + properties: + currentOperation: + description: CurrentOperation holds the status of the hydrate + operation + properties: + drySHA: + description: DrySHA holds the resolved revision (sha) of the + dry source as of the most recent reconciliation + type: string + finishedAt: + description: FinishedAt indicates when the hydrate operation + finished + format: date-time + type: string + hydratedSHA: + description: HydratedSHA holds the resolved revision (sha) + of the hydrated source as of the most recent reconciliation + type: string + message: + description: Message contains a message describing the current + status of the hydrate operation + type: string + phase: + description: Phase indicates the status of the hydrate operation + enum: + - Hydrating + - Failed + - Hydrated + type: string + sourceHydrator: + description: SourceHydrator holds the hydrator config used + for the hydrate operation + properties: + drySource: + description: DrySource specifies where the dry "don't + repeat yourself" manifest source lives. + properties: + path: + description: Path is a directory path within the Git + repository where the manifests are located + type: string + repoURL: + description: RepoURL is the URL to the git repository + that contains the application manifests + type: string + targetRevision: + description: TargetRevision defines the revision of + the source to hydrate + type: string + required: + - path + - repoURL + - targetRevision + type: object + hydrateTo: + description: |- + HydrateTo specifies an optional "staging" location to push hydrated manifests to. An external system would then + have to move manifests to the SyncSource, e.g. by pull request. + properties: + targetBranch: + description: TargetBranch is the branch to which hydrated + manifests should be committed + type: string + required: + - targetBranch + type: object + syncSource: + description: SyncSource specifies where to sync hydrated + manifests from. + properties: + path: + description: |- + Path is a directory path within the git repository where hydrated manifests should be committed to and synced + from. If hydrateTo is set, this is just the path from which hydrated manifests will be synced. + type: string + targetBranch: + description: TargetBranch is the branch to which hydrated + manifests should be committed + type: string + required: + - path + - targetBranch + type: object + required: + - drySource + - syncSource + type: object + startedAt: + description: StartedAt indicates when the hydrate operation + started + format: date-time + type: string + required: + - message + - phase + type: object + lastSuccessfulOperation: + description: LastSuccessfulOperation holds info about the most + recent successful hydration + properties: + drySHA: + description: DrySHA holds the resolved revision (sha) of the + dry source as of the most recent reconciliation + type: string + hydratedSHA: + description: HydratedSHA holds the resolved revision (sha) + of the hydrated source as of the most recent reconciliation + type: string + sourceHydrator: + description: SourceHydrator holds the hydrator config used + for the hydrate operation + properties: + drySource: + description: DrySource specifies where the dry "don't + repeat yourself" manifest source lives. + properties: + path: + description: Path is a directory path within the Git + repository where the manifests are located + type: string + repoURL: + description: RepoURL is the URL to the git repository + that contains the application manifests + type: string + targetRevision: + description: TargetRevision defines the revision of + the source to hydrate + type: string + required: + - path + - repoURL + - targetRevision + type: object + hydrateTo: + description: |- + HydrateTo specifies an optional "staging" location to push hydrated manifests to. An external system would then + have to move manifests to the SyncSource, e.g. by pull request. + properties: + targetBranch: + description: TargetBranch is the branch to which hydrated + manifests should be committed + type: string + required: + - targetBranch + type: object + syncSource: + description: SyncSource specifies where to sync hydrated + manifests from. + properties: + path: + description: |- + Path is a directory path within the git repository where hydrated manifests should be committed to and synced + from. If hydrateTo is set, this is just the path from which hydrated manifests will be synced. + type: string + targetBranch: + description: TargetBranch is the branch to which hydrated + manifests should be committed + type: string + required: + - path + - targetBranch + type: object + required: + - drySource + - syncSource + type: object + type: object + type: object sourceType: description: SourceType specifies the type of this application type: string diff --git a/manifests/crds/applicationset-crd.yaml b/manifests/crds/applicationset-crd.yaml index 1b6a00b6d23a0..20fc0ef2ed21c 100644 --- a/manifests/crds/applicationset-crd.yaml +++ b/manifests/crds/applicationset-crd.yaml @@ -376,6 +376,42 @@ spec: required: - repoURL type: object + sourceHydrator: + properties: + drySource: + properties: + path: + type: string + repoURL: + type: string + targetRevision: + type: string + required: + - path + - repoURL + - targetRevision + type: object + hydrateTo: + properties: + targetBranch: + type: string + required: + - targetBranch + type: object + syncSource: + properties: + path: + type: string + targetBranch: + type: string + required: + - path + - targetBranch + type: object + required: + - drySource + - syncSource + type: object sources: items: properties: @@ -1004,6 +1040,42 @@ spec: required: - repoURL type: object + sourceHydrator: + properties: + drySource: + properties: + path: + type: string + repoURL: + type: string + targetRevision: + type: string + required: + - path + - repoURL + - targetRevision + type: object + hydrateTo: + properties: + targetBranch: + type: string + required: + - targetBranch + type: object + syncSource: + properties: + path: + type: string + targetBranch: + type: string + required: + - path + - targetBranch + type: object + required: + - drySource + - syncSource + type: object sources: items: properties: @@ -1631,6 +1703,42 @@ spec: required: - repoURL type: object + sourceHydrator: + properties: + drySource: + properties: + path: + type: string + repoURL: + type: string + targetRevision: + type: string + required: + - path + - repoURL + - targetRevision + type: object + hydrateTo: + properties: + targetBranch: + type: string + required: + - targetBranch + type: object + syncSource: + properties: + path: + type: string + targetBranch: + type: string + required: + - path + - targetBranch + type: object + required: + - drySource + - syncSource + type: object sources: items: properties: @@ -2238,6 +2346,42 @@ spec: required: - repoURL type: object + sourceHydrator: + properties: + drySource: + properties: + path: + type: string + repoURL: + type: string + targetRevision: + type: string + required: + - path + - repoURL + - targetRevision + type: object + hydrateTo: + properties: + targetBranch: + type: string + required: + - targetBranch + type: object + syncSource: + properties: + path: + type: string + targetBranch: + type: string + required: + - path + - targetBranch + type: object + required: + - drySource + - syncSource + type: object sources: items: properties: @@ -2870,6 +3014,42 @@ spec: required: - repoURL type: object + sourceHydrator: + properties: + drySource: + properties: + path: + type: string + repoURL: + type: string + targetRevision: + type: string + required: + - path + - repoURL + - targetRevision + type: object + hydrateTo: + properties: + targetBranch: + type: string + required: + - targetBranch + type: object + syncSource: + properties: + path: + type: string + targetBranch: + type: string + required: + - path + - targetBranch + type: object + required: + - drySource + - syncSource + type: object sources: items: properties: @@ -3498,6 +3678,42 @@ spec: required: - repoURL type: object + sourceHydrator: + properties: + drySource: + properties: + path: + type: string + repoURL: + type: string + targetRevision: + type: string + required: + - path + - repoURL + - targetRevision + type: object + hydrateTo: + properties: + targetBranch: + type: string + required: + - targetBranch + type: object + syncSource: + properties: + path: + type: string + targetBranch: + type: string + required: + - path + - targetBranch + type: object + required: + - drySource + - syncSource + type: object sources: items: properties: @@ -4125,6 +4341,42 @@ spec: required: - repoURL type: object + sourceHydrator: + properties: + drySource: + properties: + path: + type: string + repoURL: + type: string + targetRevision: + type: string + required: + - path + - repoURL + - targetRevision + type: object + hydrateTo: + properties: + targetBranch: + type: string + required: + - targetBranch + type: object + syncSource: + properties: + path: + type: string + targetBranch: + type: string + required: + - path + - targetBranch + type: object + required: + - drySource + - syncSource + type: object sources: items: properties: @@ -4732,6 +4984,42 @@ spec: required: - repoURL type: object + sourceHydrator: + properties: + drySource: + properties: + path: + type: string + repoURL: + type: string + targetRevision: + type: string + required: + - path + - repoURL + - targetRevision + type: object + hydrateTo: + properties: + targetBranch: + type: string + required: + - targetBranch + type: object + syncSource: + properties: + path: + type: string + targetBranch: + type: string + required: + - path + - targetBranch + type: object + required: + - drySource + - syncSource + type: object sources: items: properties: @@ -5347,6 +5635,42 @@ spec: required: - repoURL type: object + sourceHydrator: + properties: + drySource: + properties: + path: + type: string + repoURL: + type: string + targetRevision: + type: string + required: + - path + - repoURL + - targetRevision + type: object + hydrateTo: + properties: + targetBranch: + type: string + required: + - targetBranch + type: object + syncSource: + properties: + path: + type: string + targetBranch: + type: string + required: + - path + - targetBranch + type: object + required: + - drySource + - syncSource + type: object sources: items: properties: @@ -6181,6 +6505,42 @@ spec: required: - repoURL type: object + sourceHydrator: + properties: + drySource: + properties: + path: + type: string + repoURL: + type: string + targetRevision: + type: string + required: + - path + - repoURL + - targetRevision + type: object + hydrateTo: + properties: + targetBranch: + type: string + required: + - targetBranch + type: object + syncSource: + properties: + path: + type: string + targetBranch: + type: string + required: + - path + - targetBranch + type: object + required: + - drySource + - syncSource + type: object sources: items: properties: @@ -7010,6 +7370,42 @@ spec: required: - repoURL type: object + sourceHydrator: + properties: + drySource: + properties: + path: + type: string + repoURL: + type: string + targetRevision: + type: string + required: + - path + - repoURL + - targetRevision + type: object + hydrateTo: + properties: + targetBranch: + type: string + required: + - targetBranch + type: object + syncSource: + properties: + path: + type: string + targetBranch: + type: string + required: + - path + - targetBranch + type: object + required: + - drySource + - syncSource + type: object sources: items: properties: @@ -7634,6 +8030,42 @@ spec: required: - repoURL type: object + sourceHydrator: + properties: + drySource: + properties: + path: + type: string + repoURL: + type: string + targetRevision: + type: string + required: + - path + - repoURL + - targetRevision + type: object + hydrateTo: + properties: + targetBranch: + type: string + required: + - targetBranch + type: object + syncSource: + properties: + path: + type: string + targetBranch: + type: string + required: + - path + - targetBranch + type: object + required: + - drySource + - syncSource + type: object sources: items: properties: @@ -8268,6 +8700,42 @@ spec: required: - repoURL type: object + sourceHydrator: + properties: + drySource: + properties: + path: + type: string + repoURL: + type: string + targetRevision: + type: string + required: + - path + - repoURL + - targetRevision + type: object + hydrateTo: + properties: + targetBranch: + type: string + required: + - targetBranch + type: object + syncSource: + properties: + path: + type: string + targetBranch: + type: string + required: + - path + - targetBranch + type: object + required: + - drySource + - syncSource + type: object sources: items: properties: @@ -8896,6 +9364,42 @@ spec: required: - repoURL type: object + sourceHydrator: + properties: + drySource: + properties: + path: + type: string + repoURL: + type: string + targetRevision: + type: string + required: + - path + - repoURL + - targetRevision + type: object + hydrateTo: + properties: + targetBranch: + type: string + required: + - targetBranch + type: object + syncSource: + properties: + path: + type: string + targetBranch: + type: string + required: + - path + - targetBranch + type: object + required: + - drySource + - syncSource + type: object sources: items: properties: @@ -9523,6 +10027,42 @@ spec: required: - repoURL type: object + sourceHydrator: + properties: + drySource: + properties: + path: + type: string + repoURL: + type: string + targetRevision: + type: string + required: + - path + - repoURL + - targetRevision + type: object + hydrateTo: + properties: + targetBranch: + type: string + required: + - targetBranch + type: object + syncSource: + properties: + path: + type: string + targetBranch: + type: string + required: + - path + - targetBranch + type: object + required: + - drySource + - syncSource + type: object sources: items: properties: @@ -10130,6 +10670,42 @@ spec: required: - repoURL type: object + sourceHydrator: + properties: + drySource: + properties: + path: + type: string + repoURL: + type: string + targetRevision: + type: string + required: + - path + - repoURL + - targetRevision + type: object + hydrateTo: + properties: + targetBranch: + type: string + required: + - targetBranch + type: object + syncSource: + properties: + path: + type: string + targetBranch: + type: string + required: + - path + - targetBranch + type: object + required: + - drySource + - syncSource + type: object sources: items: properties: @@ -10745,6 +11321,42 @@ spec: required: - repoURL type: object + sourceHydrator: + properties: + drySource: + properties: + path: + type: string + repoURL: + type: string + targetRevision: + type: string + required: + - path + - repoURL + - targetRevision + type: object + hydrateTo: + properties: + targetBranch: + type: string + required: + - targetBranch + type: object + syncSource: + properties: + path: + type: string + targetBranch: + type: string + required: + - path + - targetBranch + type: object + required: + - drySource + - syncSource + type: object sources: items: properties: @@ -11579,6 +12191,42 @@ spec: required: - repoURL type: object + sourceHydrator: + properties: + drySource: + properties: + path: + type: string + repoURL: + type: string + targetRevision: + type: string + required: + - path + - repoURL + - targetRevision + type: object + hydrateTo: + properties: + targetBranch: + type: string + required: + - targetBranch + type: object + syncSource: + properties: + path: + type: string + targetBranch: + type: string + required: + - path + - targetBranch + type: object + required: + - drySource + - syncSource + type: object sources: items: properties: @@ -12408,6 +13056,42 @@ spec: required: - repoURL type: object + sourceHydrator: + properties: + drySource: + properties: + path: + type: string + repoURL: + type: string + targetRevision: + type: string + required: + - path + - repoURL + - targetRevision + type: object + hydrateTo: + properties: + targetBranch: + type: string + required: + - targetBranch + type: object + syncSource: + properties: + path: + type: string + targetBranch: + type: string + required: + - path + - targetBranch + type: object + required: + - drySource + - syncSource + type: object sources: items: properties: @@ -13036,6 +13720,42 @@ spec: required: - repoURL type: object + sourceHydrator: + properties: + drySource: + properties: + path: + type: string + repoURL: + type: string + targetRevision: + type: string + required: + - path + - repoURL + - targetRevision + type: object + hydrateTo: + properties: + targetBranch: + type: string + required: + - targetBranch + type: object + syncSource: + properties: + path: + type: string + targetBranch: + type: string + required: + - path + - targetBranch + type: object + required: + - drySource + - syncSource + type: object sources: items: properties: @@ -13650,6 +14370,42 @@ spec: required: - repoURL type: object + sourceHydrator: + properties: + drySource: + properties: + path: + type: string + repoURL: + type: string + targetRevision: + type: string + required: + - path + - repoURL + - targetRevision + type: object + hydrateTo: + properties: + targetBranch: + type: string + required: + - targetBranch + type: object + syncSource: + properties: + path: + type: string + targetBranch: + type: string + required: + - path + - targetBranch + type: object + required: + - drySource + - syncSource + type: object sources: items: properties: @@ -14484,6 +15240,42 @@ spec: required: - repoURL type: object + sourceHydrator: + properties: + drySource: + properties: + path: + type: string + repoURL: + type: string + targetRevision: + type: string + required: + - path + - repoURL + - targetRevision + type: object + hydrateTo: + properties: + targetBranch: + type: string + required: + - targetBranch + type: object + syncSource: + properties: + path: + type: string + targetBranch: + type: string + required: + - path + - targetBranch + type: object + required: + - drySource + - syncSource + type: object sources: items: properties: @@ -15313,6 +16105,42 @@ spec: required: - repoURL type: object + sourceHydrator: + properties: + drySource: + properties: + path: + type: string + repoURL: + type: string + targetRevision: + type: string + required: + - path + - repoURL + - targetRevision + type: object + hydrateTo: + properties: + targetBranch: + type: string + required: + - targetBranch + type: object + syncSource: + properties: + path: + type: string + targetBranch: + type: string + required: + - path + - targetBranch + type: object + required: + - drySource + - syncSource + type: object sources: items: properties: @@ -16012,6 +16840,42 @@ spec: required: - repoURL type: object + sourceHydrator: + properties: + drySource: + properties: + path: + type: string + repoURL: + type: string + targetRevision: + type: string + required: + - path + - repoURL + - targetRevision + type: object + hydrateTo: + properties: + targetBranch: + type: string + required: + - targetBranch + type: object + syncSource: + properties: + path: + type: string + targetBranch: + type: string + required: + - path + - targetBranch + type: object + required: + - drySource + - syncSource + type: object sources: items: properties: diff --git a/manifests/ha/install.yaml b/manifests/ha/install.yaml index 6a33b0d28b65b..060dbd0f72c37 100644 --- a/manifests/ha/install.yaml +++ b/manifests/ha/install.yaml @@ -1380,6 +1380,64 @@ spec: required: - repoURL type: object + sourceHydrator: + description: SourceHydrator provides a way to push hydrated manifests + back to git before syncing them to the cluster. + properties: + drySource: + description: DrySource specifies where the dry "don't repeat yourself" + manifest source lives. + properties: + path: + description: Path is a directory path within the Git repository + where the manifests are located + type: string + repoURL: + description: RepoURL is the URL to the git repository that + contains the application manifests + type: string + targetRevision: + description: TargetRevision defines the revision of the source + to hydrate + type: string + required: + - path + - repoURL + - targetRevision + type: object + hydrateTo: + description: |- + HydrateTo specifies an optional "staging" location to push hydrated manifests to. An external system would then + have to move manifests to the SyncSource, e.g. by pull request. + properties: + targetBranch: + description: TargetBranch is the branch to which hydrated + manifests should be committed + type: string + required: + - targetBranch + type: object + syncSource: + description: SyncSource specifies where to sync hydrated manifests + from. + properties: + path: + description: |- + Path is a directory path within the git repository where hydrated manifests should be committed to and synced + from. If hydrateTo is set, this is just the path from which hydrated manifests will be synced. + type: string + targetBranch: + description: TargetBranch is the branch to which hydrated + manifests should be committed + type: string + required: + - path + - targetBranch + type: object + required: + - drySource + - syncSource + type: object sources: description: Sources is a reference to the location of the application's manifests or chart @@ -4523,6 +4581,177 @@ spec: type: string type: object type: array + sourceHydrator: + description: SourceHydrator stores information about the current state + of source hydration + properties: + currentOperation: + description: CurrentOperation holds the status of the hydrate + operation + properties: + drySHA: + description: DrySHA holds the resolved revision (sha) of the + dry source as of the most recent reconciliation + type: string + finishedAt: + description: FinishedAt indicates when the hydrate operation + finished + format: date-time + type: string + hydratedSHA: + description: HydratedSHA holds the resolved revision (sha) + of the hydrated source as of the most recent reconciliation + type: string + message: + description: Message contains a message describing the current + status of the hydrate operation + type: string + phase: + description: Phase indicates the status of the hydrate operation + enum: + - Hydrating + - Failed + - Hydrated + type: string + sourceHydrator: + description: SourceHydrator holds the hydrator config used + for the hydrate operation + properties: + drySource: + description: DrySource specifies where the dry "don't + repeat yourself" manifest source lives. + properties: + path: + description: Path is a directory path within the Git + repository where the manifests are located + type: string + repoURL: + description: RepoURL is the URL to the git repository + that contains the application manifests + type: string + targetRevision: + description: TargetRevision defines the revision of + the source to hydrate + type: string + required: + - path + - repoURL + - targetRevision + type: object + hydrateTo: + description: |- + HydrateTo specifies an optional "staging" location to push hydrated manifests to. An external system would then + have to move manifests to the SyncSource, e.g. by pull request. + properties: + targetBranch: + description: TargetBranch is the branch to which hydrated + manifests should be committed + type: string + required: + - targetBranch + type: object + syncSource: + description: SyncSource specifies where to sync hydrated + manifests from. + properties: + path: + description: |- + Path is a directory path within the git repository where hydrated manifests should be committed to and synced + from. If hydrateTo is set, this is just the path from which hydrated manifests will be synced. + type: string + targetBranch: + description: TargetBranch is the branch to which hydrated + manifests should be committed + type: string + required: + - path + - targetBranch + type: object + required: + - drySource + - syncSource + type: object + startedAt: + description: StartedAt indicates when the hydrate operation + started + format: date-time + type: string + required: + - message + - phase + type: object + lastSuccessfulOperation: + description: LastSuccessfulOperation holds info about the most + recent successful hydration + properties: + drySHA: + description: DrySHA holds the resolved revision (sha) of the + dry source as of the most recent reconciliation + type: string + hydratedSHA: + description: HydratedSHA holds the resolved revision (sha) + of the hydrated source as of the most recent reconciliation + type: string + sourceHydrator: + description: SourceHydrator holds the hydrator config used + for the hydrate operation + properties: + drySource: + description: DrySource specifies where the dry "don't + repeat yourself" manifest source lives. + properties: + path: + description: Path is a directory path within the Git + repository where the manifests are located + type: string + repoURL: + description: RepoURL is the URL to the git repository + that contains the application manifests + type: string + targetRevision: + description: TargetRevision defines the revision of + the source to hydrate + type: string + required: + - path + - repoURL + - targetRevision + type: object + hydrateTo: + description: |- + HydrateTo specifies an optional "staging" location to push hydrated manifests to. An external system would then + have to move manifests to the SyncSource, e.g. by pull request. + properties: + targetBranch: + description: TargetBranch is the branch to which hydrated + manifests should be committed + type: string + required: + - targetBranch + type: object + syncSource: + description: SyncSource specifies where to sync hydrated + manifests from. + properties: + path: + description: |- + Path is a directory path within the git repository where hydrated manifests should be committed to and synced + from. If hydrateTo is set, this is just the path from which hydrated manifests will be synced. + type: string + targetBranch: + description: TargetBranch is the branch to which hydrated + manifests should be committed + type: string + required: + - path + - targetBranch + type: object + required: + - drySource + - syncSource + type: object + type: object + type: object sourceType: description: SourceType specifies the type of this application type: string @@ -5782,6 +6011,42 @@ spec: required: - repoURL type: object + sourceHydrator: + properties: + drySource: + properties: + path: + type: string + repoURL: + type: string + targetRevision: + type: string + required: + - path + - repoURL + - targetRevision + type: object + hydrateTo: + properties: + targetBranch: + type: string + required: + - targetBranch + type: object + syncSource: + properties: + path: + type: string + targetBranch: + type: string + required: + - path + - targetBranch + type: object + required: + - drySource + - syncSource + type: object sources: items: properties: @@ -6410,6 +6675,42 @@ spec: required: - repoURL type: object + sourceHydrator: + properties: + drySource: + properties: + path: + type: string + repoURL: + type: string + targetRevision: + type: string + required: + - path + - repoURL + - targetRevision + type: object + hydrateTo: + properties: + targetBranch: + type: string + required: + - targetBranch + type: object + syncSource: + properties: + path: + type: string + targetBranch: + type: string + required: + - path + - targetBranch + type: object + required: + - drySource + - syncSource + type: object sources: items: properties: @@ -7037,6 +7338,42 @@ spec: required: - repoURL type: object + sourceHydrator: + properties: + drySource: + properties: + path: + type: string + repoURL: + type: string + targetRevision: + type: string + required: + - path + - repoURL + - targetRevision + type: object + hydrateTo: + properties: + targetBranch: + type: string + required: + - targetBranch + type: object + syncSource: + properties: + path: + type: string + targetBranch: + type: string + required: + - path + - targetBranch + type: object + required: + - drySource + - syncSource + type: object sources: items: properties: @@ -7644,6 +7981,42 @@ spec: required: - repoURL type: object + sourceHydrator: + properties: + drySource: + properties: + path: + type: string + repoURL: + type: string + targetRevision: + type: string + required: + - path + - repoURL + - targetRevision + type: object + hydrateTo: + properties: + targetBranch: + type: string + required: + - targetBranch + type: object + syncSource: + properties: + path: + type: string + targetBranch: + type: string + required: + - path + - targetBranch + type: object + required: + - drySource + - syncSource + type: object sources: items: properties: @@ -8276,6 +8649,42 @@ spec: required: - repoURL type: object + sourceHydrator: + properties: + drySource: + properties: + path: + type: string + repoURL: + type: string + targetRevision: + type: string + required: + - path + - repoURL + - targetRevision + type: object + hydrateTo: + properties: + targetBranch: + type: string + required: + - targetBranch + type: object + syncSource: + properties: + path: + type: string + targetBranch: + type: string + required: + - path + - targetBranch + type: object + required: + - drySource + - syncSource + type: object sources: items: properties: @@ -8904,6 +9313,42 @@ spec: required: - repoURL type: object + sourceHydrator: + properties: + drySource: + properties: + path: + type: string + repoURL: + type: string + targetRevision: + type: string + required: + - path + - repoURL + - targetRevision + type: object + hydrateTo: + properties: + targetBranch: + type: string + required: + - targetBranch + type: object + syncSource: + properties: + path: + type: string + targetBranch: + type: string + required: + - path + - targetBranch + type: object + required: + - drySource + - syncSource + type: object sources: items: properties: @@ -9531,6 +9976,42 @@ spec: required: - repoURL type: object + sourceHydrator: + properties: + drySource: + properties: + path: + type: string + repoURL: + type: string + targetRevision: + type: string + required: + - path + - repoURL + - targetRevision + type: object + hydrateTo: + properties: + targetBranch: + type: string + required: + - targetBranch + type: object + syncSource: + properties: + path: + type: string + targetBranch: + type: string + required: + - path + - targetBranch + type: object + required: + - drySource + - syncSource + type: object sources: items: properties: @@ -10138,23 +10619,59 @@ spec: required: - repoURL type: object - sources: - items: - properties: - chart: - type: string - directory: - properties: - exclude: - type: string - include: - type: string - jsonnet: - properties: - extVars: - items: - properties: - code: + sourceHydrator: + properties: + drySource: + properties: + path: + type: string + repoURL: + type: string + targetRevision: + type: string + required: + - path + - repoURL + - targetRevision + type: object + hydrateTo: + properties: + targetBranch: + type: string + required: + - targetBranch + type: object + syncSource: + properties: + path: + type: string + targetBranch: + type: string + required: + - path + - targetBranch + type: object + required: + - drySource + - syncSource + type: object + sources: + items: + properties: + chart: + type: string + directory: + properties: + exclude: + type: string + include: + type: string + jsonnet: + properties: + extVars: + items: + properties: + code: type: boolean name: type: string @@ -10753,6 +11270,42 @@ spec: required: - repoURL type: object + sourceHydrator: + properties: + drySource: + properties: + path: + type: string + repoURL: + type: string + targetRevision: + type: string + required: + - path + - repoURL + - targetRevision + type: object + hydrateTo: + properties: + targetBranch: + type: string + required: + - targetBranch + type: object + syncSource: + properties: + path: + type: string + targetBranch: + type: string + required: + - path + - targetBranch + type: object + required: + - drySource + - syncSource + type: object sources: items: properties: @@ -11587,6 +12140,42 @@ spec: required: - repoURL type: object + sourceHydrator: + properties: + drySource: + properties: + path: + type: string + repoURL: + type: string + targetRevision: + type: string + required: + - path + - repoURL + - targetRevision + type: object + hydrateTo: + properties: + targetBranch: + type: string + required: + - targetBranch + type: object + syncSource: + properties: + path: + type: string + targetBranch: + type: string + required: + - path + - targetBranch + type: object + required: + - drySource + - syncSource + type: object sources: items: properties: @@ -12416,6 +13005,42 @@ spec: required: - repoURL type: object + sourceHydrator: + properties: + drySource: + properties: + path: + type: string + repoURL: + type: string + targetRevision: + type: string + required: + - path + - repoURL + - targetRevision + type: object + hydrateTo: + properties: + targetBranch: + type: string + required: + - targetBranch + type: object + syncSource: + properties: + path: + type: string + targetBranch: + type: string + required: + - path + - targetBranch + type: object + required: + - drySource + - syncSource + type: object sources: items: properties: @@ -13040,6 +13665,42 @@ spec: required: - repoURL type: object + sourceHydrator: + properties: + drySource: + properties: + path: + type: string + repoURL: + type: string + targetRevision: + type: string + required: + - path + - repoURL + - targetRevision + type: object + hydrateTo: + properties: + targetBranch: + type: string + required: + - targetBranch + type: object + syncSource: + properties: + path: + type: string + targetBranch: + type: string + required: + - path + - targetBranch + type: object + required: + - drySource + - syncSource + type: object sources: items: properties: @@ -13674,6 +14335,42 @@ spec: required: - repoURL type: object + sourceHydrator: + properties: + drySource: + properties: + path: + type: string + repoURL: + type: string + targetRevision: + type: string + required: + - path + - repoURL + - targetRevision + type: object + hydrateTo: + properties: + targetBranch: + type: string + required: + - targetBranch + type: object + syncSource: + properties: + path: + type: string + targetBranch: + type: string + required: + - path + - targetBranch + type: object + required: + - drySource + - syncSource + type: object sources: items: properties: @@ -14302,6 +14999,42 @@ spec: required: - repoURL type: object + sourceHydrator: + properties: + drySource: + properties: + path: + type: string + repoURL: + type: string + targetRevision: + type: string + required: + - path + - repoURL + - targetRevision + type: object + hydrateTo: + properties: + targetBranch: + type: string + required: + - targetBranch + type: object + syncSource: + properties: + path: + type: string + targetBranch: + type: string + required: + - path + - targetBranch + type: object + required: + - drySource + - syncSource + type: object sources: items: properties: @@ -14929,6 +15662,42 @@ spec: required: - repoURL type: object + sourceHydrator: + properties: + drySource: + properties: + path: + type: string + repoURL: + type: string + targetRevision: + type: string + required: + - path + - repoURL + - targetRevision + type: object + hydrateTo: + properties: + targetBranch: + type: string + required: + - targetBranch + type: object + syncSource: + properties: + path: + type: string + targetBranch: + type: string + required: + - path + - targetBranch + type: object + required: + - drySource + - syncSource + type: object sources: items: properties: @@ -15536,6 +16305,42 @@ spec: required: - repoURL type: object + sourceHydrator: + properties: + drySource: + properties: + path: + type: string + repoURL: + type: string + targetRevision: + type: string + required: + - path + - repoURL + - targetRevision + type: object + hydrateTo: + properties: + targetBranch: + type: string + required: + - targetBranch + type: object + syncSource: + properties: + path: + type: string + targetBranch: + type: string + required: + - path + - targetBranch + type: object + required: + - drySource + - syncSource + type: object sources: items: properties: @@ -16151,6 +16956,42 @@ spec: required: - repoURL type: object + sourceHydrator: + properties: + drySource: + properties: + path: + type: string + repoURL: + type: string + targetRevision: + type: string + required: + - path + - repoURL + - targetRevision + type: object + hydrateTo: + properties: + targetBranch: + type: string + required: + - targetBranch + type: object + syncSource: + properties: + path: + type: string + targetBranch: + type: string + required: + - path + - targetBranch + type: object + required: + - drySource + - syncSource + type: object sources: items: properties: @@ -16985,6 +17826,42 @@ spec: required: - repoURL type: object + sourceHydrator: + properties: + drySource: + properties: + path: + type: string + repoURL: + type: string + targetRevision: + type: string + required: + - path + - repoURL + - targetRevision + type: object + hydrateTo: + properties: + targetBranch: + type: string + required: + - targetBranch + type: object + syncSource: + properties: + path: + type: string + targetBranch: + type: string + required: + - path + - targetBranch + type: object + required: + - drySource + - syncSource + type: object sources: items: properties: @@ -17814,6 +18691,42 @@ spec: required: - repoURL type: object + sourceHydrator: + properties: + drySource: + properties: + path: + type: string + repoURL: + type: string + targetRevision: + type: string + required: + - path + - repoURL + - targetRevision + type: object + hydrateTo: + properties: + targetBranch: + type: string + required: + - targetBranch + type: object + syncSource: + properties: + path: + type: string + targetBranch: + type: string + required: + - path + - targetBranch + type: object + required: + - drySource + - syncSource + type: object sources: items: properties: @@ -18442,6 +19355,42 @@ spec: required: - repoURL type: object + sourceHydrator: + properties: + drySource: + properties: + path: + type: string + repoURL: + type: string + targetRevision: + type: string + required: + - path + - repoURL + - targetRevision + type: object + hydrateTo: + properties: + targetBranch: + type: string + required: + - targetBranch + type: object + syncSource: + properties: + path: + type: string + targetBranch: + type: string + required: + - path + - targetBranch + type: object + required: + - drySource + - syncSource + type: object sources: items: properties: @@ -19056,6 +20005,42 @@ spec: required: - repoURL type: object + sourceHydrator: + properties: + drySource: + properties: + path: + type: string + repoURL: + type: string + targetRevision: + type: string + required: + - path + - repoURL + - targetRevision + type: object + hydrateTo: + properties: + targetBranch: + type: string + required: + - targetBranch + type: object + syncSource: + properties: + path: + type: string + targetBranch: + type: string + required: + - path + - targetBranch + type: object + required: + - drySource + - syncSource + type: object sources: items: properties: @@ -19890,6 +20875,42 @@ spec: required: - repoURL type: object + sourceHydrator: + properties: + drySource: + properties: + path: + type: string + repoURL: + type: string + targetRevision: + type: string + required: + - path + - repoURL + - targetRevision + type: object + hydrateTo: + properties: + targetBranch: + type: string + required: + - targetBranch + type: object + syncSource: + properties: + path: + type: string + targetBranch: + type: string + required: + - path + - targetBranch + type: object + required: + - drySource + - syncSource + type: object sources: items: properties: @@ -20719,6 +21740,42 @@ spec: required: - repoURL type: object + sourceHydrator: + properties: + drySource: + properties: + path: + type: string + repoURL: + type: string + targetRevision: + type: string + required: + - path + - repoURL + - targetRevision + type: object + hydrateTo: + properties: + targetBranch: + type: string + required: + - targetBranch + type: object + syncSource: + properties: + path: + type: string + targetBranch: + type: string + required: + - path + - targetBranch + type: object + required: + - drySource + - syncSource + type: object sources: items: properties: @@ -21418,6 +22475,42 @@ spec: required: - repoURL type: object + sourceHydrator: + properties: + drySource: + properties: + path: + type: string + repoURL: + type: string + targetRevision: + type: string + required: + - path + - repoURL + - targetRevision + type: object + hydrateTo: + properties: + targetBranch: + type: string + required: + - targetBranch + type: object + syncSource: + properties: + path: + type: string + targetBranch: + type: string + required: + - path + - targetBranch + type: object + required: + - drySource + - syncSource + type: object sources: items: properties: diff --git a/manifests/install.yaml b/manifests/install.yaml index 312f81fb65258..9f036aab9b8e2 100644 --- a/manifests/install.yaml +++ b/manifests/install.yaml @@ -1380,6 +1380,64 @@ spec: required: - repoURL type: object + sourceHydrator: + description: SourceHydrator provides a way to push hydrated manifests + back to git before syncing them to the cluster. + properties: + drySource: + description: DrySource specifies where the dry "don't repeat yourself" + manifest source lives. + properties: + path: + description: Path is a directory path within the Git repository + where the manifests are located + type: string + repoURL: + description: RepoURL is the URL to the git repository that + contains the application manifests + type: string + targetRevision: + description: TargetRevision defines the revision of the source + to hydrate + type: string + required: + - path + - repoURL + - targetRevision + type: object + hydrateTo: + description: |- + HydrateTo specifies an optional "staging" location to push hydrated manifests to. An external system would then + have to move manifests to the SyncSource, e.g. by pull request. + properties: + targetBranch: + description: TargetBranch is the branch to which hydrated + manifests should be committed + type: string + required: + - targetBranch + type: object + syncSource: + description: SyncSource specifies where to sync hydrated manifests + from. + properties: + path: + description: |- + Path is a directory path within the git repository where hydrated manifests should be committed to and synced + from. If hydrateTo is set, this is just the path from which hydrated manifests will be synced. + type: string + targetBranch: + description: TargetBranch is the branch to which hydrated + manifests should be committed + type: string + required: + - path + - targetBranch + type: object + required: + - drySource + - syncSource + type: object sources: description: Sources is a reference to the location of the application's manifests or chart @@ -4523,6 +4581,177 @@ spec: type: string type: object type: array + sourceHydrator: + description: SourceHydrator stores information about the current state + of source hydration + properties: + currentOperation: + description: CurrentOperation holds the status of the hydrate + operation + properties: + drySHA: + description: DrySHA holds the resolved revision (sha) of the + dry source as of the most recent reconciliation + type: string + finishedAt: + description: FinishedAt indicates when the hydrate operation + finished + format: date-time + type: string + hydratedSHA: + description: HydratedSHA holds the resolved revision (sha) + of the hydrated source as of the most recent reconciliation + type: string + message: + description: Message contains a message describing the current + status of the hydrate operation + type: string + phase: + description: Phase indicates the status of the hydrate operation + enum: + - Hydrating + - Failed + - Hydrated + type: string + sourceHydrator: + description: SourceHydrator holds the hydrator config used + for the hydrate operation + properties: + drySource: + description: DrySource specifies where the dry "don't + repeat yourself" manifest source lives. + properties: + path: + description: Path is a directory path within the Git + repository where the manifests are located + type: string + repoURL: + description: RepoURL is the URL to the git repository + that contains the application manifests + type: string + targetRevision: + description: TargetRevision defines the revision of + the source to hydrate + type: string + required: + - path + - repoURL + - targetRevision + type: object + hydrateTo: + description: |- + HydrateTo specifies an optional "staging" location to push hydrated manifests to. An external system would then + have to move manifests to the SyncSource, e.g. by pull request. + properties: + targetBranch: + description: TargetBranch is the branch to which hydrated + manifests should be committed + type: string + required: + - targetBranch + type: object + syncSource: + description: SyncSource specifies where to sync hydrated + manifests from. + properties: + path: + description: |- + Path is a directory path within the git repository where hydrated manifests should be committed to and synced + from. If hydrateTo is set, this is just the path from which hydrated manifests will be synced. + type: string + targetBranch: + description: TargetBranch is the branch to which hydrated + manifests should be committed + type: string + required: + - path + - targetBranch + type: object + required: + - drySource + - syncSource + type: object + startedAt: + description: StartedAt indicates when the hydrate operation + started + format: date-time + type: string + required: + - message + - phase + type: object + lastSuccessfulOperation: + description: LastSuccessfulOperation holds info about the most + recent successful hydration + properties: + drySHA: + description: DrySHA holds the resolved revision (sha) of the + dry source as of the most recent reconciliation + type: string + hydratedSHA: + description: HydratedSHA holds the resolved revision (sha) + of the hydrated source as of the most recent reconciliation + type: string + sourceHydrator: + description: SourceHydrator holds the hydrator config used + for the hydrate operation + properties: + drySource: + description: DrySource specifies where the dry "don't + repeat yourself" manifest source lives. + properties: + path: + description: Path is a directory path within the Git + repository where the manifests are located + type: string + repoURL: + description: RepoURL is the URL to the git repository + that contains the application manifests + type: string + targetRevision: + description: TargetRevision defines the revision of + the source to hydrate + type: string + required: + - path + - repoURL + - targetRevision + type: object + hydrateTo: + description: |- + HydrateTo specifies an optional "staging" location to push hydrated manifests to. An external system would then + have to move manifests to the SyncSource, e.g. by pull request. + properties: + targetBranch: + description: TargetBranch is the branch to which hydrated + manifests should be committed + type: string + required: + - targetBranch + type: object + syncSource: + description: SyncSource specifies where to sync hydrated + manifests from. + properties: + path: + description: |- + Path is a directory path within the git repository where hydrated manifests should be committed to and synced + from. If hydrateTo is set, this is just the path from which hydrated manifests will be synced. + type: string + targetBranch: + description: TargetBranch is the branch to which hydrated + manifests should be committed + type: string + required: + - path + - targetBranch + type: object + required: + - drySource + - syncSource + type: object + type: object + type: object sourceType: description: SourceType specifies the type of this application type: string @@ -5782,6 +6011,42 @@ spec: required: - repoURL type: object + sourceHydrator: + properties: + drySource: + properties: + path: + type: string + repoURL: + type: string + targetRevision: + type: string + required: + - path + - repoURL + - targetRevision + type: object + hydrateTo: + properties: + targetBranch: + type: string + required: + - targetBranch + type: object + syncSource: + properties: + path: + type: string + targetBranch: + type: string + required: + - path + - targetBranch + type: object + required: + - drySource + - syncSource + type: object sources: items: properties: @@ -6410,6 +6675,42 @@ spec: required: - repoURL type: object + sourceHydrator: + properties: + drySource: + properties: + path: + type: string + repoURL: + type: string + targetRevision: + type: string + required: + - path + - repoURL + - targetRevision + type: object + hydrateTo: + properties: + targetBranch: + type: string + required: + - targetBranch + type: object + syncSource: + properties: + path: + type: string + targetBranch: + type: string + required: + - path + - targetBranch + type: object + required: + - drySource + - syncSource + type: object sources: items: properties: @@ -7037,6 +7338,42 @@ spec: required: - repoURL type: object + sourceHydrator: + properties: + drySource: + properties: + path: + type: string + repoURL: + type: string + targetRevision: + type: string + required: + - path + - repoURL + - targetRevision + type: object + hydrateTo: + properties: + targetBranch: + type: string + required: + - targetBranch + type: object + syncSource: + properties: + path: + type: string + targetBranch: + type: string + required: + - path + - targetBranch + type: object + required: + - drySource + - syncSource + type: object sources: items: properties: @@ -7644,6 +7981,42 @@ spec: required: - repoURL type: object + sourceHydrator: + properties: + drySource: + properties: + path: + type: string + repoURL: + type: string + targetRevision: + type: string + required: + - path + - repoURL + - targetRevision + type: object + hydrateTo: + properties: + targetBranch: + type: string + required: + - targetBranch + type: object + syncSource: + properties: + path: + type: string + targetBranch: + type: string + required: + - path + - targetBranch + type: object + required: + - drySource + - syncSource + type: object sources: items: properties: @@ -8276,6 +8649,42 @@ spec: required: - repoURL type: object + sourceHydrator: + properties: + drySource: + properties: + path: + type: string + repoURL: + type: string + targetRevision: + type: string + required: + - path + - repoURL + - targetRevision + type: object + hydrateTo: + properties: + targetBranch: + type: string + required: + - targetBranch + type: object + syncSource: + properties: + path: + type: string + targetBranch: + type: string + required: + - path + - targetBranch + type: object + required: + - drySource + - syncSource + type: object sources: items: properties: @@ -8904,6 +9313,42 @@ spec: required: - repoURL type: object + sourceHydrator: + properties: + drySource: + properties: + path: + type: string + repoURL: + type: string + targetRevision: + type: string + required: + - path + - repoURL + - targetRevision + type: object + hydrateTo: + properties: + targetBranch: + type: string + required: + - targetBranch + type: object + syncSource: + properties: + path: + type: string + targetBranch: + type: string + required: + - path + - targetBranch + type: object + required: + - drySource + - syncSource + type: object sources: items: properties: @@ -9531,6 +9976,42 @@ spec: required: - repoURL type: object + sourceHydrator: + properties: + drySource: + properties: + path: + type: string + repoURL: + type: string + targetRevision: + type: string + required: + - path + - repoURL + - targetRevision + type: object + hydrateTo: + properties: + targetBranch: + type: string + required: + - targetBranch + type: object + syncSource: + properties: + path: + type: string + targetBranch: + type: string + required: + - path + - targetBranch + type: object + required: + - drySource + - syncSource + type: object sources: items: properties: @@ -10138,23 +10619,59 @@ spec: required: - repoURL type: object - sources: - items: - properties: - chart: - type: string - directory: - properties: - exclude: - type: string - include: - type: string - jsonnet: - properties: - extVars: - items: - properties: - code: + sourceHydrator: + properties: + drySource: + properties: + path: + type: string + repoURL: + type: string + targetRevision: + type: string + required: + - path + - repoURL + - targetRevision + type: object + hydrateTo: + properties: + targetBranch: + type: string + required: + - targetBranch + type: object + syncSource: + properties: + path: + type: string + targetBranch: + type: string + required: + - path + - targetBranch + type: object + required: + - drySource + - syncSource + type: object + sources: + items: + properties: + chart: + type: string + directory: + properties: + exclude: + type: string + include: + type: string + jsonnet: + properties: + extVars: + items: + properties: + code: type: boolean name: type: string @@ -10753,6 +11270,42 @@ spec: required: - repoURL type: object + sourceHydrator: + properties: + drySource: + properties: + path: + type: string + repoURL: + type: string + targetRevision: + type: string + required: + - path + - repoURL + - targetRevision + type: object + hydrateTo: + properties: + targetBranch: + type: string + required: + - targetBranch + type: object + syncSource: + properties: + path: + type: string + targetBranch: + type: string + required: + - path + - targetBranch + type: object + required: + - drySource + - syncSource + type: object sources: items: properties: @@ -11587,6 +12140,42 @@ spec: required: - repoURL type: object + sourceHydrator: + properties: + drySource: + properties: + path: + type: string + repoURL: + type: string + targetRevision: + type: string + required: + - path + - repoURL + - targetRevision + type: object + hydrateTo: + properties: + targetBranch: + type: string + required: + - targetBranch + type: object + syncSource: + properties: + path: + type: string + targetBranch: + type: string + required: + - path + - targetBranch + type: object + required: + - drySource + - syncSource + type: object sources: items: properties: @@ -12416,6 +13005,42 @@ spec: required: - repoURL type: object + sourceHydrator: + properties: + drySource: + properties: + path: + type: string + repoURL: + type: string + targetRevision: + type: string + required: + - path + - repoURL + - targetRevision + type: object + hydrateTo: + properties: + targetBranch: + type: string + required: + - targetBranch + type: object + syncSource: + properties: + path: + type: string + targetBranch: + type: string + required: + - path + - targetBranch + type: object + required: + - drySource + - syncSource + type: object sources: items: properties: @@ -13040,6 +13665,42 @@ spec: required: - repoURL type: object + sourceHydrator: + properties: + drySource: + properties: + path: + type: string + repoURL: + type: string + targetRevision: + type: string + required: + - path + - repoURL + - targetRevision + type: object + hydrateTo: + properties: + targetBranch: + type: string + required: + - targetBranch + type: object + syncSource: + properties: + path: + type: string + targetBranch: + type: string + required: + - path + - targetBranch + type: object + required: + - drySource + - syncSource + type: object sources: items: properties: @@ -13674,6 +14335,42 @@ spec: required: - repoURL type: object + sourceHydrator: + properties: + drySource: + properties: + path: + type: string + repoURL: + type: string + targetRevision: + type: string + required: + - path + - repoURL + - targetRevision + type: object + hydrateTo: + properties: + targetBranch: + type: string + required: + - targetBranch + type: object + syncSource: + properties: + path: + type: string + targetBranch: + type: string + required: + - path + - targetBranch + type: object + required: + - drySource + - syncSource + type: object sources: items: properties: @@ -14302,6 +14999,42 @@ spec: required: - repoURL type: object + sourceHydrator: + properties: + drySource: + properties: + path: + type: string + repoURL: + type: string + targetRevision: + type: string + required: + - path + - repoURL + - targetRevision + type: object + hydrateTo: + properties: + targetBranch: + type: string + required: + - targetBranch + type: object + syncSource: + properties: + path: + type: string + targetBranch: + type: string + required: + - path + - targetBranch + type: object + required: + - drySource + - syncSource + type: object sources: items: properties: @@ -14929,6 +15662,42 @@ spec: required: - repoURL type: object + sourceHydrator: + properties: + drySource: + properties: + path: + type: string + repoURL: + type: string + targetRevision: + type: string + required: + - path + - repoURL + - targetRevision + type: object + hydrateTo: + properties: + targetBranch: + type: string + required: + - targetBranch + type: object + syncSource: + properties: + path: + type: string + targetBranch: + type: string + required: + - path + - targetBranch + type: object + required: + - drySource + - syncSource + type: object sources: items: properties: @@ -15536,6 +16305,42 @@ spec: required: - repoURL type: object + sourceHydrator: + properties: + drySource: + properties: + path: + type: string + repoURL: + type: string + targetRevision: + type: string + required: + - path + - repoURL + - targetRevision + type: object + hydrateTo: + properties: + targetBranch: + type: string + required: + - targetBranch + type: object + syncSource: + properties: + path: + type: string + targetBranch: + type: string + required: + - path + - targetBranch + type: object + required: + - drySource + - syncSource + type: object sources: items: properties: @@ -16151,6 +16956,42 @@ spec: required: - repoURL type: object + sourceHydrator: + properties: + drySource: + properties: + path: + type: string + repoURL: + type: string + targetRevision: + type: string + required: + - path + - repoURL + - targetRevision + type: object + hydrateTo: + properties: + targetBranch: + type: string + required: + - targetBranch + type: object + syncSource: + properties: + path: + type: string + targetBranch: + type: string + required: + - path + - targetBranch + type: object + required: + - drySource + - syncSource + type: object sources: items: properties: @@ -16985,6 +17826,42 @@ spec: required: - repoURL type: object + sourceHydrator: + properties: + drySource: + properties: + path: + type: string + repoURL: + type: string + targetRevision: + type: string + required: + - path + - repoURL + - targetRevision + type: object + hydrateTo: + properties: + targetBranch: + type: string + required: + - targetBranch + type: object + syncSource: + properties: + path: + type: string + targetBranch: + type: string + required: + - path + - targetBranch + type: object + required: + - drySource + - syncSource + type: object sources: items: properties: @@ -17814,6 +18691,42 @@ spec: required: - repoURL type: object + sourceHydrator: + properties: + drySource: + properties: + path: + type: string + repoURL: + type: string + targetRevision: + type: string + required: + - path + - repoURL + - targetRevision + type: object + hydrateTo: + properties: + targetBranch: + type: string + required: + - targetBranch + type: object + syncSource: + properties: + path: + type: string + targetBranch: + type: string + required: + - path + - targetBranch + type: object + required: + - drySource + - syncSource + type: object sources: items: properties: @@ -18442,6 +19355,42 @@ spec: required: - repoURL type: object + sourceHydrator: + properties: + drySource: + properties: + path: + type: string + repoURL: + type: string + targetRevision: + type: string + required: + - path + - repoURL + - targetRevision + type: object + hydrateTo: + properties: + targetBranch: + type: string + required: + - targetBranch + type: object + syncSource: + properties: + path: + type: string + targetBranch: + type: string + required: + - path + - targetBranch + type: object + required: + - drySource + - syncSource + type: object sources: items: properties: @@ -19056,6 +20005,42 @@ spec: required: - repoURL type: object + sourceHydrator: + properties: + drySource: + properties: + path: + type: string + repoURL: + type: string + targetRevision: + type: string + required: + - path + - repoURL + - targetRevision + type: object + hydrateTo: + properties: + targetBranch: + type: string + required: + - targetBranch + type: object + syncSource: + properties: + path: + type: string + targetBranch: + type: string + required: + - path + - targetBranch + type: object + required: + - drySource + - syncSource + type: object sources: items: properties: @@ -19890,6 +20875,42 @@ spec: required: - repoURL type: object + sourceHydrator: + properties: + drySource: + properties: + path: + type: string + repoURL: + type: string + targetRevision: + type: string + required: + - path + - repoURL + - targetRevision + type: object + hydrateTo: + properties: + targetBranch: + type: string + required: + - targetBranch + type: object + syncSource: + properties: + path: + type: string + targetBranch: + type: string + required: + - path + - targetBranch + type: object + required: + - drySource + - syncSource + type: object sources: items: properties: @@ -20719,6 +21740,42 @@ spec: required: - repoURL type: object + sourceHydrator: + properties: + drySource: + properties: + path: + type: string + repoURL: + type: string + targetRevision: + type: string + required: + - path + - repoURL + - targetRevision + type: object + hydrateTo: + properties: + targetBranch: + type: string + required: + - targetBranch + type: object + syncSource: + properties: + path: + type: string + targetBranch: + type: string + required: + - path + - targetBranch + type: object + required: + - drySource + - syncSource + type: object sources: items: properties: @@ -21418,6 +22475,42 @@ spec: required: - repoURL type: object + sourceHydrator: + properties: + drySource: + properties: + path: + type: string + repoURL: + type: string + targetRevision: + type: string + required: + - path + - repoURL + - targetRevision + type: object + hydrateTo: + properties: + targetBranch: + type: string + required: + - targetBranch + type: object + syncSource: + properties: + path: + type: string + targetBranch: + type: string + required: + - path + - targetBranch + type: object + required: + - drySource + - syncSource + type: object sources: items: properties: diff --git a/pkg/apis/application/v1alpha1/generated.pb.go b/pkg/apis/application/v1alpha1/generated.pb.go index 0fdea6fad5adc..ee973b1e9748d 100644 --- a/pkg/apis/application/v1alpha1/generated.pb.go +++ b/pkg/apis/application/v1alpha1/generated.pb.go @@ -1665,10 +1665,38 @@ func (m *ConnectionState) XXX_DiscardUnknown() { var xxx_messageInfo_ConnectionState proto.InternalMessageInfo +func (m *DrySource) Reset() { *m = DrySource{} } +func (*DrySource) ProtoMessage() {} +func (*DrySource) Descriptor() ([]byte, []int) { + return fileDescriptor_030104ce3b95bcac, []int{58} +} +func (m *DrySource) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *DrySource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *DrySource) XXX_Merge(src proto.Message) { + xxx_messageInfo_DrySource.Merge(m, src) +} +func (m *DrySource) XXX_Size() int { + return m.Size() +} +func (m *DrySource) XXX_DiscardUnknown() { + xxx_messageInfo_DrySource.DiscardUnknown(m) +} + +var xxx_messageInfo_DrySource proto.InternalMessageInfo + func (m *DuckTypeGenerator) Reset() { *m = DuckTypeGenerator{} } func (*DuckTypeGenerator) ProtoMessage() {} func (*DuckTypeGenerator) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{58} + return fileDescriptor_030104ce3b95bcac, []int{59} } func (m *DuckTypeGenerator) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1696,7 +1724,7 @@ var xxx_messageInfo_DuckTypeGenerator proto.InternalMessageInfo func (m *EnvEntry) Reset() { *m = EnvEntry{} } func (*EnvEntry) ProtoMessage() {} func (*EnvEntry) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{59} + return fileDescriptor_030104ce3b95bcac, []int{60} } func (m *EnvEntry) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1724,7 +1752,7 @@ var xxx_messageInfo_EnvEntry proto.InternalMessageInfo func (m *ErrApplicationNotAllowedToUseProject) Reset() { *m = ErrApplicationNotAllowedToUseProject{} } func (*ErrApplicationNotAllowedToUseProject) ProtoMessage() {} func (*ErrApplicationNotAllowedToUseProject) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{60} + return fileDescriptor_030104ce3b95bcac, []int{61} } func (m *ErrApplicationNotAllowedToUseProject) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1752,7 +1780,7 @@ var xxx_messageInfo_ErrApplicationNotAllowedToUseProject proto.InternalMessageIn func (m *ExecProviderConfig) Reset() { *m = ExecProviderConfig{} } func (*ExecProviderConfig) ProtoMessage() {} func (*ExecProviderConfig) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{61} + return fileDescriptor_030104ce3b95bcac, []int{62} } func (m *ExecProviderConfig) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1780,7 +1808,7 @@ var xxx_messageInfo_ExecProviderConfig proto.InternalMessageInfo func (m *GitDirectoryGeneratorItem) Reset() { *m = GitDirectoryGeneratorItem{} } func (*GitDirectoryGeneratorItem) ProtoMessage() {} func (*GitDirectoryGeneratorItem) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{62} + return fileDescriptor_030104ce3b95bcac, []int{63} } func (m *GitDirectoryGeneratorItem) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1808,7 +1836,7 @@ var xxx_messageInfo_GitDirectoryGeneratorItem proto.InternalMessageInfo func (m *GitFileGeneratorItem) Reset() { *m = GitFileGeneratorItem{} } func (*GitFileGeneratorItem) ProtoMessage() {} func (*GitFileGeneratorItem) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{63} + return fileDescriptor_030104ce3b95bcac, []int{64} } func (m *GitFileGeneratorItem) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1836,7 +1864,7 @@ var xxx_messageInfo_GitFileGeneratorItem proto.InternalMessageInfo func (m *GitGenerator) Reset() { *m = GitGenerator{} } func (*GitGenerator) ProtoMessage() {} func (*GitGenerator) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{64} + return fileDescriptor_030104ce3b95bcac, []int{65} } func (m *GitGenerator) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1864,7 +1892,7 @@ var xxx_messageInfo_GitGenerator proto.InternalMessageInfo func (m *GnuPGPublicKey) Reset() { *m = GnuPGPublicKey{} } func (*GnuPGPublicKey) ProtoMessage() {} func (*GnuPGPublicKey) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{65} + return fileDescriptor_030104ce3b95bcac, []int{66} } func (m *GnuPGPublicKey) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1892,7 +1920,7 @@ var xxx_messageInfo_GnuPGPublicKey proto.InternalMessageInfo func (m *GnuPGPublicKeyList) Reset() { *m = GnuPGPublicKeyList{} } func (*GnuPGPublicKeyList) ProtoMessage() {} func (*GnuPGPublicKeyList) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{66} + return fileDescriptor_030104ce3b95bcac, []int{67} } func (m *GnuPGPublicKeyList) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1920,7 +1948,7 @@ var xxx_messageInfo_GnuPGPublicKeyList proto.InternalMessageInfo func (m *HealthStatus) Reset() { *m = HealthStatus{} } func (*HealthStatus) ProtoMessage() {} func (*HealthStatus) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{67} + return fileDescriptor_030104ce3b95bcac, []int{68} } func (m *HealthStatus) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1948,7 +1976,7 @@ var xxx_messageInfo_HealthStatus proto.InternalMessageInfo func (m *HelmFileParameter) Reset() { *m = HelmFileParameter{} } func (*HelmFileParameter) ProtoMessage() {} func (*HelmFileParameter) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{68} + return fileDescriptor_030104ce3b95bcac, []int{69} } func (m *HelmFileParameter) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1976,7 +2004,7 @@ var xxx_messageInfo_HelmFileParameter proto.InternalMessageInfo func (m *HelmOptions) Reset() { *m = HelmOptions{} } func (*HelmOptions) ProtoMessage() {} func (*HelmOptions) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{69} + return fileDescriptor_030104ce3b95bcac, []int{70} } func (m *HelmOptions) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2004,7 +2032,7 @@ var xxx_messageInfo_HelmOptions proto.InternalMessageInfo func (m *HelmParameter) Reset() { *m = HelmParameter{} } func (*HelmParameter) ProtoMessage() {} func (*HelmParameter) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{70} + return fileDescriptor_030104ce3b95bcac, []int{71} } func (m *HelmParameter) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2032,7 +2060,7 @@ var xxx_messageInfo_HelmParameter proto.InternalMessageInfo func (m *HostInfo) Reset() { *m = HostInfo{} } func (*HostInfo) ProtoMessage() {} func (*HostInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{71} + return fileDescriptor_030104ce3b95bcac, []int{72} } func (m *HostInfo) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2060,7 +2088,7 @@ var xxx_messageInfo_HostInfo proto.InternalMessageInfo func (m *HostResourceInfo) Reset() { *m = HostResourceInfo{} } func (*HostResourceInfo) ProtoMessage() {} func (*HostResourceInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{72} + return fileDescriptor_030104ce3b95bcac, []int{73} } func (m *HostResourceInfo) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2085,10 +2113,66 @@ func (m *HostResourceInfo) XXX_DiscardUnknown() { var xxx_messageInfo_HostResourceInfo proto.InternalMessageInfo +func (m *HydrateOperation) Reset() { *m = HydrateOperation{} } +func (*HydrateOperation) ProtoMessage() {} +func (*HydrateOperation) Descriptor() ([]byte, []int) { + return fileDescriptor_030104ce3b95bcac, []int{74} +} +func (m *HydrateOperation) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *HydrateOperation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *HydrateOperation) XXX_Merge(src proto.Message) { + xxx_messageInfo_HydrateOperation.Merge(m, src) +} +func (m *HydrateOperation) XXX_Size() int { + return m.Size() +} +func (m *HydrateOperation) XXX_DiscardUnknown() { + xxx_messageInfo_HydrateOperation.DiscardUnknown(m) +} + +var xxx_messageInfo_HydrateOperation proto.InternalMessageInfo + +func (m *HydrateTo) Reset() { *m = HydrateTo{} } +func (*HydrateTo) ProtoMessage() {} +func (*HydrateTo) Descriptor() ([]byte, []int) { + return fileDescriptor_030104ce3b95bcac, []int{75} +} +func (m *HydrateTo) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *HydrateTo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *HydrateTo) XXX_Merge(src proto.Message) { + xxx_messageInfo_HydrateTo.Merge(m, src) +} +func (m *HydrateTo) XXX_Size() int { + return m.Size() +} +func (m *HydrateTo) XXX_DiscardUnknown() { + xxx_messageInfo_HydrateTo.DiscardUnknown(m) +} + +var xxx_messageInfo_HydrateTo proto.InternalMessageInfo + func (m *Info) Reset() { *m = Info{} } func (*Info) ProtoMessage() {} func (*Info) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{73} + return fileDescriptor_030104ce3b95bcac, []int{76} } func (m *Info) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2116,7 +2200,7 @@ var xxx_messageInfo_Info proto.InternalMessageInfo func (m *InfoItem) Reset() { *m = InfoItem{} } func (*InfoItem) ProtoMessage() {} func (*InfoItem) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{74} + return fileDescriptor_030104ce3b95bcac, []int{77} } func (m *InfoItem) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2144,7 +2228,7 @@ var xxx_messageInfo_InfoItem proto.InternalMessageInfo func (m *JWTToken) Reset() { *m = JWTToken{} } func (*JWTToken) ProtoMessage() {} func (*JWTToken) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{75} + return fileDescriptor_030104ce3b95bcac, []int{78} } func (m *JWTToken) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2172,7 +2256,7 @@ var xxx_messageInfo_JWTToken proto.InternalMessageInfo func (m *JWTTokens) Reset() { *m = JWTTokens{} } func (*JWTTokens) ProtoMessage() {} func (*JWTTokens) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{76} + return fileDescriptor_030104ce3b95bcac, []int{79} } func (m *JWTTokens) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2200,7 +2284,7 @@ var xxx_messageInfo_JWTTokens proto.InternalMessageInfo func (m *JsonnetVar) Reset() { *m = JsonnetVar{} } func (*JsonnetVar) ProtoMessage() {} func (*JsonnetVar) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{77} + return fileDescriptor_030104ce3b95bcac, []int{80} } func (m *JsonnetVar) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2228,7 +2312,7 @@ var xxx_messageInfo_JsonnetVar proto.InternalMessageInfo func (m *KnownTypeField) Reset() { *m = KnownTypeField{} } func (*KnownTypeField) ProtoMessage() {} func (*KnownTypeField) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{78} + return fileDescriptor_030104ce3b95bcac, []int{81} } func (m *KnownTypeField) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2256,7 +2340,7 @@ var xxx_messageInfo_KnownTypeField proto.InternalMessageInfo func (m *KustomizeGvk) Reset() { *m = KustomizeGvk{} } func (*KustomizeGvk) ProtoMessage() {} func (*KustomizeGvk) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{79} + return fileDescriptor_030104ce3b95bcac, []int{82} } func (m *KustomizeGvk) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2284,7 +2368,7 @@ var xxx_messageInfo_KustomizeGvk proto.InternalMessageInfo func (m *KustomizeOptions) Reset() { *m = KustomizeOptions{} } func (*KustomizeOptions) ProtoMessage() {} func (*KustomizeOptions) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{80} + return fileDescriptor_030104ce3b95bcac, []int{83} } func (m *KustomizeOptions) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2312,7 +2396,7 @@ var xxx_messageInfo_KustomizeOptions proto.InternalMessageInfo func (m *KustomizePatch) Reset() { *m = KustomizePatch{} } func (*KustomizePatch) ProtoMessage() {} func (*KustomizePatch) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{81} + return fileDescriptor_030104ce3b95bcac, []int{84} } func (m *KustomizePatch) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2340,7 +2424,7 @@ var xxx_messageInfo_KustomizePatch proto.InternalMessageInfo func (m *KustomizeReplica) Reset() { *m = KustomizeReplica{} } func (*KustomizeReplica) ProtoMessage() {} func (*KustomizeReplica) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{82} + return fileDescriptor_030104ce3b95bcac, []int{85} } func (m *KustomizeReplica) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2368,7 +2452,7 @@ var xxx_messageInfo_KustomizeReplica proto.InternalMessageInfo func (m *KustomizeResId) Reset() { *m = KustomizeResId{} } func (*KustomizeResId) ProtoMessage() {} func (*KustomizeResId) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{83} + return fileDescriptor_030104ce3b95bcac, []int{86} } func (m *KustomizeResId) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2396,7 +2480,7 @@ var xxx_messageInfo_KustomizeResId proto.InternalMessageInfo func (m *KustomizeSelector) Reset() { *m = KustomizeSelector{} } func (*KustomizeSelector) ProtoMessage() {} func (*KustomizeSelector) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{84} + return fileDescriptor_030104ce3b95bcac, []int{87} } func (m *KustomizeSelector) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2424,7 +2508,7 @@ var xxx_messageInfo_KustomizeSelector proto.InternalMessageInfo func (m *ListGenerator) Reset() { *m = ListGenerator{} } func (*ListGenerator) ProtoMessage() {} func (*ListGenerator) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{85} + return fileDescriptor_030104ce3b95bcac, []int{88} } func (m *ListGenerator) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2452,7 +2536,7 @@ var xxx_messageInfo_ListGenerator proto.InternalMessageInfo func (m *ManagedNamespaceMetadata) Reset() { *m = ManagedNamespaceMetadata{} } func (*ManagedNamespaceMetadata) ProtoMessage() {} func (*ManagedNamespaceMetadata) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{86} + return fileDescriptor_030104ce3b95bcac, []int{89} } func (m *ManagedNamespaceMetadata) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2480,7 +2564,7 @@ var xxx_messageInfo_ManagedNamespaceMetadata proto.InternalMessageInfo func (m *MatrixGenerator) Reset() { *m = MatrixGenerator{} } func (*MatrixGenerator) ProtoMessage() {} func (*MatrixGenerator) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{87} + return fileDescriptor_030104ce3b95bcac, []int{90} } func (m *MatrixGenerator) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2508,7 +2592,7 @@ var xxx_messageInfo_MatrixGenerator proto.InternalMessageInfo func (m *MergeGenerator) Reset() { *m = MergeGenerator{} } func (*MergeGenerator) ProtoMessage() {} func (*MergeGenerator) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{88} + return fileDescriptor_030104ce3b95bcac, []int{91} } func (m *MergeGenerator) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2536,7 +2620,7 @@ var xxx_messageInfo_MergeGenerator proto.InternalMessageInfo func (m *NestedMatrixGenerator) Reset() { *m = NestedMatrixGenerator{} } func (*NestedMatrixGenerator) ProtoMessage() {} func (*NestedMatrixGenerator) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{89} + return fileDescriptor_030104ce3b95bcac, []int{92} } func (m *NestedMatrixGenerator) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2564,7 +2648,7 @@ var xxx_messageInfo_NestedMatrixGenerator proto.InternalMessageInfo func (m *NestedMergeGenerator) Reset() { *m = NestedMergeGenerator{} } func (*NestedMergeGenerator) ProtoMessage() {} func (*NestedMergeGenerator) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{90} + return fileDescriptor_030104ce3b95bcac, []int{93} } func (m *NestedMergeGenerator) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2592,7 +2676,7 @@ var xxx_messageInfo_NestedMergeGenerator proto.InternalMessageInfo func (m *Operation) Reset() { *m = Operation{} } func (*Operation) ProtoMessage() {} func (*Operation) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{91} + return fileDescriptor_030104ce3b95bcac, []int{94} } func (m *Operation) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2620,7 +2704,7 @@ var xxx_messageInfo_Operation proto.InternalMessageInfo func (m *OperationInitiator) Reset() { *m = OperationInitiator{} } func (*OperationInitiator) ProtoMessage() {} func (*OperationInitiator) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{92} + return fileDescriptor_030104ce3b95bcac, []int{95} } func (m *OperationInitiator) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2648,7 +2732,7 @@ var xxx_messageInfo_OperationInitiator proto.InternalMessageInfo func (m *OperationState) Reset() { *m = OperationState{} } func (*OperationState) ProtoMessage() {} func (*OperationState) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{93} + return fileDescriptor_030104ce3b95bcac, []int{96} } func (m *OperationState) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2676,7 +2760,7 @@ var xxx_messageInfo_OperationState proto.InternalMessageInfo func (m *OptionalArray) Reset() { *m = OptionalArray{} } func (*OptionalArray) ProtoMessage() {} func (*OptionalArray) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{94} + return fileDescriptor_030104ce3b95bcac, []int{97} } func (m *OptionalArray) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2704,7 +2788,7 @@ var xxx_messageInfo_OptionalArray proto.InternalMessageInfo func (m *OptionalMap) Reset() { *m = OptionalMap{} } func (*OptionalMap) ProtoMessage() {} func (*OptionalMap) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{95} + return fileDescriptor_030104ce3b95bcac, []int{98} } func (m *OptionalMap) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2732,7 +2816,7 @@ var xxx_messageInfo_OptionalMap proto.InternalMessageInfo func (m *OrphanedResourceKey) Reset() { *m = OrphanedResourceKey{} } func (*OrphanedResourceKey) ProtoMessage() {} func (*OrphanedResourceKey) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{96} + return fileDescriptor_030104ce3b95bcac, []int{99} } func (m *OrphanedResourceKey) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2760,7 +2844,7 @@ var xxx_messageInfo_OrphanedResourceKey proto.InternalMessageInfo func (m *OrphanedResourcesMonitorSettings) Reset() { *m = OrphanedResourcesMonitorSettings{} } func (*OrphanedResourcesMonitorSettings) ProtoMessage() {} func (*OrphanedResourcesMonitorSettings) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{97} + return fileDescriptor_030104ce3b95bcac, []int{100} } func (m *OrphanedResourcesMonitorSettings) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2788,7 +2872,7 @@ var xxx_messageInfo_OrphanedResourcesMonitorSettings proto.InternalMessageInfo func (m *OverrideIgnoreDiff) Reset() { *m = OverrideIgnoreDiff{} } func (*OverrideIgnoreDiff) ProtoMessage() {} func (*OverrideIgnoreDiff) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{98} + return fileDescriptor_030104ce3b95bcac, []int{101} } func (m *OverrideIgnoreDiff) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2816,7 +2900,7 @@ var xxx_messageInfo_OverrideIgnoreDiff proto.InternalMessageInfo func (m *PluginConfigMapRef) Reset() { *m = PluginConfigMapRef{} } func (*PluginConfigMapRef) ProtoMessage() {} func (*PluginConfigMapRef) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{99} + return fileDescriptor_030104ce3b95bcac, []int{102} } func (m *PluginConfigMapRef) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2844,7 +2928,7 @@ var xxx_messageInfo_PluginConfigMapRef proto.InternalMessageInfo func (m *PluginGenerator) Reset() { *m = PluginGenerator{} } func (*PluginGenerator) ProtoMessage() {} func (*PluginGenerator) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{100} + return fileDescriptor_030104ce3b95bcac, []int{103} } func (m *PluginGenerator) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2872,7 +2956,7 @@ var xxx_messageInfo_PluginGenerator proto.InternalMessageInfo func (m *PluginInput) Reset() { *m = PluginInput{} } func (*PluginInput) ProtoMessage() {} func (*PluginInput) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{101} + return fileDescriptor_030104ce3b95bcac, []int{104} } func (m *PluginInput) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2900,7 +2984,7 @@ var xxx_messageInfo_PluginInput proto.InternalMessageInfo func (m *ProjectRole) Reset() { *m = ProjectRole{} } func (*ProjectRole) ProtoMessage() {} func (*ProjectRole) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{102} + return fileDescriptor_030104ce3b95bcac, []int{105} } func (m *ProjectRole) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2928,7 +3012,7 @@ var xxx_messageInfo_ProjectRole proto.InternalMessageInfo func (m *PullRequestGenerator) Reset() { *m = PullRequestGenerator{} } func (*PullRequestGenerator) ProtoMessage() {} func (*PullRequestGenerator) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{103} + return fileDescriptor_030104ce3b95bcac, []int{106} } func (m *PullRequestGenerator) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2956,7 +3040,7 @@ var xxx_messageInfo_PullRequestGenerator proto.InternalMessageInfo func (m *PullRequestGeneratorAzureDevOps) Reset() { *m = PullRequestGeneratorAzureDevOps{} } func (*PullRequestGeneratorAzureDevOps) ProtoMessage() {} func (*PullRequestGeneratorAzureDevOps) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{104} + return fileDescriptor_030104ce3b95bcac, []int{107} } func (m *PullRequestGeneratorAzureDevOps) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2984,7 +3068,7 @@ var xxx_messageInfo_PullRequestGeneratorAzureDevOps proto.InternalMessageInfo func (m *PullRequestGeneratorBitbucket) Reset() { *m = PullRequestGeneratorBitbucket{} } func (*PullRequestGeneratorBitbucket) ProtoMessage() {} func (*PullRequestGeneratorBitbucket) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{105} + return fileDescriptor_030104ce3b95bcac, []int{108} } func (m *PullRequestGeneratorBitbucket) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3012,7 +3096,7 @@ var xxx_messageInfo_PullRequestGeneratorBitbucket proto.InternalMessageInfo func (m *PullRequestGeneratorBitbucketServer) Reset() { *m = PullRequestGeneratorBitbucketServer{} } func (*PullRequestGeneratorBitbucketServer) ProtoMessage() {} func (*PullRequestGeneratorBitbucketServer) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{106} + return fileDescriptor_030104ce3b95bcac, []int{109} } func (m *PullRequestGeneratorBitbucketServer) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3040,7 +3124,7 @@ var xxx_messageInfo_PullRequestGeneratorBitbucketServer proto.InternalMessageInf func (m *PullRequestGeneratorFilter) Reset() { *m = PullRequestGeneratorFilter{} } func (*PullRequestGeneratorFilter) ProtoMessage() {} func (*PullRequestGeneratorFilter) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{107} + return fileDescriptor_030104ce3b95bcac, []int{110} } func (m *PullRequestGeneratorFilter) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3068,7 +3152,7 @@ var xxx_messageInfo_PullRequestGeneratorFilter proto.InternalMessageInfo func (m *PullRequestGeneratorGitLab) Reset() { *m = PullRequestGeneratorGitLab{} } func (*PullRequestGeneratorGitLab) ProtoMessage() {} func (*PullRequestGeneratorGitLab) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{108} + return fileDescriptor_030104ce3b95bcac, []int{111} } func (m *PullRequestGeneratorGitLab) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3096,7 +3180,7 @@ var xxx_messageInfo_PullRequestGeneratorGitLab proto.InternalMessageInfo func (m *PullRequestGeneratorGitea) Reset() { *m = PullRequestGeneratorGitea{} } func (*PullRequestGeneratorGitea) ProtoMessage() {} func (*PullRequestGeneratorGitea) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{109} + return fileDescriptor_030104ce3b95bcac, []int{112} } func (m *PullRequestGeneratorGitea) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3124,7 +3208,7 @@ var xxx_messageInfo_PullRequestGeneratorGitea proto.InternalMessageInfo func (m *PullRequestGeneratorGithub) Reset() { *m = PullRequestGeneratorGithub{} } func (*PullRequestGeneratorGithub) ProtoMessage() {} func (*PullRequestGeneratorGithub) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{110} + return fileDescriptor_030104ce3b95bcac, []int{113} } func (m *PullRequestGeneratorGithub) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3152,7 +3236,7 @@ var xxx_messageInfo_PullRequestGeneratorGithub proto.InternalMessageInfo func (m *RefTarget) Reset() { *m = RefTarget{} } func (*RefTarget) ProtoMessage() {} func (*RefTarget) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{111} + return fileDescriptor_030104ce3b95bcac, []int{114} } func (m *RefTarget) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3180,7 +3264,7 @@ var xxx_messageInfo_RefTarget proto.InternalMessageInfo func (m *RepoCreds) Reset() { *m = RepoCreds{} } func (*RepoCreds) ProtoMessage() {} func (*RepoCreds) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{112} + return fileDescriptor_030104ce3b95bcac, []int{115} } func (m *RepoCreds) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3208,7 +3292,7 @@ var xxx_messageInfo_RepoCreds proto.InternalMessageInfo func (m *RepoCredsList) Reset() { *m = RepoCredsList{} } func (*RepoCredsList) ProtoMessage() {} func (*RepoCredsList) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{113} + return fileDescriptor_030104ce3b95bcac, []int{116} } func (m *RepoCredsList) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3236,7 +3320,7 @@ var xxx_messageInfo_RepoCredsList proto.InternalMessageInfo func (m *Repository) Reset() { *m = Repository{} } func (*Repository) ProtoMessage() {} func (*Repository) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{114} + return fileDescriptor_030104ce3b95bcac, []int{117} } func (m *Repository) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3264,7 +3348,7 @@ var xxx_messageInfo_Repository proto.InternalMessageInfo func (m *RepositoryCertificate) Reset() { *m = RepositoryCertificate{} } func (*RepositoryCertificate) ProtoMessage() {} func (*RepositoryCertificate) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{115} + return fileDescriptor_030104ce3b95bcac, []int{118} } func (m *RepositoryCertificate) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3292,7 +3376,7 @@ var xxx_messageInfo_RepositoryCertificate proto.InternalMessageInfo func (m *RepositoryCertificateList) Reset() { *m = RepositoryCertificateList{} } func (*RepositoryCertificateList) ProtoMessage() {} func (*RepositoryCertificateList) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{116} + return fileDescriptor_030104ce3b95bcac, []int{119} } func (m *RepositoryCertificateList) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3320,7 +3404,7 @@ var xxx_messageInfo_RepositoryCertificateList proto.InternalMessageInfo func (m *RepositoryList) Reset() { *m = RepositoryList{} } func (*RepositoryList) ProtoMessage() {} func (*RepositoryList) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{117} + return fileDescriptor_030104ce3b95bcac, []int{120} } func (m *RepositoryList) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3348,7 +3432,7 @@ var xxx_messageInfo_RepositoryList proto.InternalMessageInfo func (m *ResourceAction) Reset() { *m = ResourceAction{} } func (*ResourceAction) ProtoMessage() {} func (*ResourceAction) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{118} + return fileDescriptor_030104ce3b95bcac, []int{121} } func (m *ResourceAction) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3376,7 +3460,7 @@ var xxx_messageInfo_ResourceAction proto.InternalMessageInfo func (m *ResourceActionDefinition) Reset() { *m = ResourceActionDefinition{} } func (*ResourceActionDefinition) ProtoMessage() {} func (*ResourceActionDefinition) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{119} + return fileDescriptor_030104ce3b95bcac, []int{122} } func (m *ResourceActionDefinition) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3404,7 +3488,7 @@ var xxx_messageInfo_ResourceActionDefinition proto.InternalMessageInfo func (m *ResourceActionParam) Reset() { *m = ResourceActionParam{} } func (*ResourceActionParam) ProtoMessage() {} func (*ResourceActionParam) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{120} + return fileDescriptor_030104ce3b95bcac, []int{123} } func (m *ResourceActionParam) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3432,7 +3516,7 @@ var xxx_messageInfo_ResourceActionParam proto.InternalMessageInfo func (m *ResourceActions) Reset() { *m = ResourceActions{} } func (*ResourceActions) ProtoMessage() {} func (*ResourceActions) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{121} + return fileDescriptor_030104ce3b95bcac, []int{124} } func (m *ResourceActions) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3460,7 +3544,7 @@ var xxx_messageInfo_ResourceActions proto.InternalMessageInfo func (m *ResourceDiff) Reset() { *m = ResourceDiff{} } func (*ResourceDiff) ProtoMessage() {} func (*ResourceDiff) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{122} + return fileDescriptor_030104ce3b95bcac, []int{125} } func (m *ResourceDiff) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3488,7 +3572,7 @@ var xxx_messageInfo_ResourceDiff proto.InternalMessageInfo func (m *ResourceIgnoreDifferences) Reset() { *m = ResourceIgnoreDifferences{} } func (*ResourceIgnoreDifferences) ProtoMessage() {} func (*ResourceIgnoreDifferences) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{123} + return fileDescriptor_030104ce3b95bcac, []int{126} } func (m *ResourceIgnoreDifferences) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3516,7 +3600,7 @@ var xxx_messageInfo_ResourceIgnoreDifferences proto.InternalMessageInfo func (m *ResourceNetworkingInfo) Reset() { *m = ResourceNetworkingInfo{} } func (*ResourceNetworkingInfo) ProtoMessage() {} func (*ResourceNetworkingInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{124} + return fileDescriptor_030104ce3b95bcac, []int{127} } func (m *ResourceNetworkingInfo) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3544,7 +3628,7 @@ var xxx_messageInfo_ResourceNetworkingInfo proto.InternalMessageInfo func (m *ResourceNode) Reset() { *m = ResourceNode{} } func (*ResourceNode) ProtoMessage() {} func (*ResourceNode) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{125} + return fileDescriptor_030104ce3b95bcac, []int{128} } func (m *ResourceNode) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3572,7 +3656,7 @@ var xxx_messageInfo_ResourceNode proto.InternalMessageInfo func (m *ResourceOverride) Reset() { *m = ResourceOverride{} } func (*ResourceOverride) ProtoMessage() {} func (*ResourceOverride) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{126} + return fileDescriptor_030104ce3b95bcac, []int{129} } func (m *ResourceOverride) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3600,7 +3684,7 @@ var xxx_messageInfo_ResourceOverride proto.InternalMessageInfo func (m *ResourceRef) Reset() { *m = ResourceRef{} } func (*ResourceRef) ProtoMessage() {} func (*ResourceRef) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{127} + return fileDescriptor_030104ce3b95bcac, []int{130} } func (m *ResourceRef) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3628,7 +3712,7 @@ var xxx_messageInfo_ResourceRef proto.InternalMessageInfo func (m *ResourceResult) Reset() { *m = ResourceResult{} } func (*ResourceResult) ProtoMessage() {} func (*ResourceResult) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{128} + return fileDescriptor_030104ce3b95bcac, []int{131} } func (m *ResourceResult) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3656,7 +3740,7 @@ var xxx_messageInfo_ResourceResult proto.InternalMessageInfo func (m *ResourceStatus) Reset() { *m = ResourceStatus{} } func (*ResourceStatus) ProtoMessage() {} func (*ResourceStatus) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{129} + return fileDescriptor_030104ce3b95bcac, []int{132} } func (m *ResourceStatus) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3684,7 +3768,7 @@ var xxx_messageInfo_ResourceStatus proto.InternalMessageInfo func (m *RetryStrategy) Reset() { *m = RetryStrategy{} } func (*RetryStrategy) ProtoMessage() {} func (*RetryStrategy) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{130} + return fileDescriptor_030104ce3b95bcac, []int{133} } func (m *RetryStrategy) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3712,7 +3796,7 @@ var xxx_messageInfo_RetryStrategy proto.InternalMessageInfo func (m *RevisionHistory) Reset() { *m = RevisionHistory{} } func (*RevisionHistory) ProtoMessage() {} func (*RevisionHistory) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{131} + return fileDescriptor_030104ce3b95bcac, []int{134} } func (m *RevisionHistory) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3740,7 +3824,7 @@ var xxx_messageInfo_RevisionHistory proto.InternalMessageInfo func (m *RevisionMetadata) Reset() { *m = RevisionMetadata{} } func (*RevisionMetadata) ProtoMessage() {} func (*RevisionMetadata) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{132} + return fileDescriptor_030104ce3b95bcac, []int{135} } func (m *RevisionMetadata) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3768,7 +3852,7 @@ var xxx_messageInfo_RevisionMetadata proto.InternalMessageInfo func (m *SCMProviderGenerator) Reset() { *m = SCMProviderGenerator{} } func (*SCMProviderGenerator) ProtoMessage() {} func (*SCMProviderGenerator) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{133} + return fileDescriptor_030104ce3b95bcac, []int{136} } func (m *SCMProviderGenerator) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3796,7 +3880,7 @@ var xxx_messageInfo_SCMProviderGenerator proto.InternalMessageInfo func (m *SCMProviderGeneratorAWSCodeCommit) Reset() { *m = SCMProviderGeneratorAWSCodeCommit{} } func (*SCMProviderGeneratorAWSCodeCommit) ProtoMessage() {} func (*SCMProviderGeneratorAWSCodeCommit) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{134} + return fileDescriptor_030104ce3b95bcac, []int{137} } func (m *SCMProviderGeneratorAWSCodeCommit) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3824,7 +3908,7 @@ var xxx_messageInfo_SCMProviderGeneratorAWSCodeCommit proto.InternalMessageInfo func (m *SCMProviderGeneratorAzureDevOps) Reset() { *m = SCMProviderGeneratorAzureDevOps{} } func (*SCMProviderGeneratorAzureDevOps) ProtoMessage() {} func (*SCMProviderGeneratorAzureDevOps) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{135} + return fileDescriptor_030104ce3b95bcac, []int{138} } func (m *SCMProviderGeneratorAzureDevOps) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3852,7 +3936,7 @@ var xxx_messageInfo_SCMProviderGeneratorAzureDevOps proto.InternalMessageInfo func (m *SCMProviderGeneratorBitbucket) Reset() { *m = SCMProviderGeneratorBitbucket{} } func (*SCMProviderGeneratorBitbucket) ProtoMessage() {} func (*SCMProviderGeneratorBitbucket) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{136} + return fileDescriptor_030104ce3b95bcac, []int{139} } func (m *SCMProviderGeneratorBitbucket) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3880,7 +3964,7 @@ var xxx_messageInfo_SCMProviderGeneratorBitbucket proto.InternalMessageInfo func (m *SCMProviderGeneratorBitbucketServer) Reset() { *m = SCMProviderGeneratorBitbucketServer{} } func (*SCMProviderGeneratorBitbucketServer) ProtoMessage() {} func (*SCMProviderGeneratorBitbucketServer) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{137} + return fileDescriptor_030104ce3b95bcac, []int{140} } func (m *SCMProviderGeneratorBitbucketServer) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3908,7 +3992,7 @@ var xxx_messageInfo_SCMProviderGeneratorBitbucketServer proto.InternalMessageInf func (m *SCMProviderGeneratorFilter) Reset() { *m = SCMProviderGeneratorFilter{} } func (*SCMProviderGeneratorFilter) ProtoMessage() {} func (*SCMProviderGeneratorFilter) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{138} + return fileDescriptor_030104ce3b95bcac, []int{141} } func (m *SCMProviderGeneratorFilter) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3936,7 +4020,7 @@ var xxx_messageInfo_SCMProviderGeneratorFilter proto.InternalMessageInfo func (m *SCMProviderGeneratorGitea) Reset() { *m = SCMProviderGeneratorGitea{} } func (*SCMProviderGeneratorGitea) ProtoMessage() {} func (*SCMProviderGeneratorGitea) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{139} + return fileDescriptor_030104ce3b95bcac, []int{142} } func (m *SCMProviderGeneratorGitea) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3964,7 +4048,7 @@ var xxx_messageInfo_SCMProviderGeneratorGitea proto.InternalMessageInfo func (m *SCMProviderGeneratorGithub) Reset() { *m = SCMProviderGeneratorGithub{} } func (*SCMProviderGeneratorGithub) ProtoMessage() {} func (*SCMProviderGeneratorGithub) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{140} + return fileDescriptor_030104ce3b95bcac, []int{143} } func (m *SCMProviderGeneratorGithub) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3992,7 +4076,7 @@ var xxx_messageInfo_SCMProviderGeneratorGithub proto.InternalMessageInfo func (m *SCMProviderGeneratorGitlab) Reset() { *m = SCMProviderGeneratorGitlab{} } func (*SCMProviderGeneratorGitlab) ProtoMessage() {} func (*SCMProviderGeneratorGitlab) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{141} + return fileDescriptor_030104ce3b95bcac, []int{144} } func (m *SCMProviderGeneratorGitlab) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4020,7 +4104,7 @@ var xxx_messageInfo_SCMProviderGeneratorGitlab proto.InternalMessageInfo func (m *SecretRef) Reset() { *m = SecretRef{} } func (*SecretRef) ProtoMessage() {} func (*SecretRef) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{142} + return fileDescriptor_030104ce3b95bcac, []int{145} } func (m *SecretRef) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4048,7 +4132,7 @@ var xxx_messageInfo_SecretRef proto.InternalMessageInfo func (m *SignatureKey) Reset() { *m = SignatureKey{} } func (*SignatureKey) ProtoMessage() {} func (*SignatureKey) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{143} + return fileDescriptor_030104ce3b95bcac, []int{146} } func (m *SignatureKey) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4073,10 +4157,94 @@ func (m *SignatureKey) XXX_DiscardUnknown() { var xxx_messageInfo_SignatureKey proto.InternalMessageInfo +func (m *SourceHydrator) Reset() { *m = SourceHydrator{} } +func (*SourceHydrator) ProtoMessage() {} +func (*SourceHydrator) Descriptor() ([]byte, []int) { + return fileDescriptor_030104ce3b95bcac, []int{147} +} +func (m *SourceHydrator) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *SourceHydrator) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *SourceHydrator) XXX_Merge(src proto.Message) { + xxx_messageInfo_SourceHydrator.Merge(m, src) +} +func (m *SourceHydrator) XXX_Size() int { + return m.Size() +} +func (m *SourceHydrator) XXX_DiscardUnknown() { + xxx_messageInfo_SourceHydrator.DiscardUnknown(m) +} + +var xxx_messageInfo_SourceHydrator proto.InternalMessageInfo + +func (m *SourceHydratorStatus) Reset() { *m = SourceHydratorStatus{} } +func (*SourceHydratorStatus) ProtoMessage() {} +func (*SourceHydratorStatus) Descriptor() ([]byte, []int) { + return fileDescriptor_030104ce3b95bcac, []int{148} +} +func (m *SourceHydratorStatus) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *SourceHydratorStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *SourceHydratorStatus) XXX_Merge(src proto.Message) { + xxx_messageInfo_SourceHydratorStatus.Merge(m, src) +} +func (m *SourceHydratorStatus) XXX_Size() int { + return m.Size() +} +func (m *SourceHydratorStatus) XXX_DiscardUnknown() { + xxx_messageInfo_SourceHydratorStatus.DiscardUnknown(m) +} + +var xxx_messageInfo_SourceHydratorStatus proto.InternalMessageInfo + +func (m *SuccessfulHydrateOperation) Reset() { *m = SuccessfulHydrateOperation{} } +func (*SuccessfulHydrateOperation) ProtoMessage() {} +func (*SuccessfulHydrateOperation) Descriptor() ([]byte, []int) { + return fileDescriptor_030104ce3b95bcac, []int{149} +} +func (m *SuccessfulHydrateOperation) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *SuccessfulHydrateOperation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *SuccessfulHydrateOperation) XXX_Merge(src proto.Message) { + xxx_messageInfo_SuccessfulHydrateOperation.Merge(m, src) +} +func (m *SuccessfulHydrateOperation) XXX_Size() int { + return m.Size() +} +func (m *SuccessfulHydrateOperation) XXX_DiscardUnknown() { + xxx_messageInfo_SuccessfulHydrateOperation.DiscardUnknown(m) +} + +var xxx_messageInfo_SuccessfulHydrateOperation proto.InternalMessageInfo + func (m *SyncOperation) Reset() { *m = SyncOperation{} } func (*SyncOperation) ProtoMessage() {} func (*SyncOperation) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{144} + return fileDescriptor_030104ce3b95bcac, []int{150} } func (m *SyncOperation) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4104,7 +4272,7 @@ var xxx_messageInfo_SyncOperation proto.InternalMessageInfo func (m *SyncOperationResource) Reset() { *m = SyncOperationResource{} } func (*SyncOperationResource) ProtoMessage() {} func (*SyncOperationResource) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{145} + return fileDescriptor_030104ce3b95bcac, []int{151} } func (m *SyncOperationResource) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4132,7 +4300,7 @@ var xxx_messageInfo_SyncOperationResource proto.InternalMessageInfo func (m *SyncOperationResult) Reset() { *m = SyncOperationResult{} } func (*SyncOperationResult) ProtoMessage() {} func (*SyncOperationResult) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{146} + return fileDescriptor_030104ce3b95bcac, []int{152} } func (m *SyncOperationResult) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4160,7 +4328,7 @@ var xxx_messageInfo_SyncOperationResult proto.InternalMessageInfo func (m *SyncPolicy) Reset() { *m = SyncPolicy{} } func (*SyncPolicy) ProtoMessage() {} func (*SyncPolicy) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{147} + return fileDescriptor_030104ce3b95bcac, []int{153} } func (m *SyncPolicy) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4188,7 +4356,7 @@ var xxx_messageInfo_SyncPolicy proto.InternalMessageInfo func (m *SyncPolicyAutomated) Reset() { *m = SyncPolicyAutomated{} } func (*SyncPolicyAutomated) ProtoMessage() {} func (*SyncPolicyAutomated) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{148} + return fileDescriptor_030104ce3b95bcac, []int{154} } func (m *SyncPolicyAutomated) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4213,10 +4381,38 @@ func (m *SyncPolicyAutomated) XXX_DiscardUnknown() { var xxx_messageInfo_SyncPolicyAutomated proto.InternalMessageInfo +func (m *SyncSource) Reset() { *m = SyncSource{} } +func (*SyncSource) ProtoMessage() {} +func (*SyncSource) Descriptor() ([]byte, []int) { + return fileDescriptor_030104ce3b95bcac, []int{155} +} +func (m *SyncSource) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *SyncSource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *SyncSource) XXX_Merge(src proto.Message) { + xxx_messageInfo_SyncSource.Merge(m, src) +} +func (m *SyncSource) XXX_Size() int { + return m.Size() +} +func (m *SyncSource) XXX_DiscardUnknown() { + xxx_messageInfo_SyncSource.DiscardUnknown(m) +} + +var xxx_messageInfo_SyncSource proto.InternalMessageInfo + func (m *SyncStatus) Reset() { *m = SyncStatus{} } func (*SyncStatus) ProtoMessage() {} func (*SyncStatus) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{149} + return fileDescriptor_030104ce3b95bcac, []int{156} } func (m *SyncStatus) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4244,7 +4440,7 @@ var xxx_messageInfo_SyncStatus proto.InternalMessageInfo func (m *SyncStrategy) Reset() { *m = SyncStrategy{} } func (*SyncStrategy) ProtoMessage() {} func (*SyncStrategy) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{150} + return fileDescriptor_030104ce3b95bcac, []int{157} } func (m *SyncStrategy) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4272,7 +4468,7 @@ var xxx_messageInfo_SyncStrategy proto.InternalMessageInfo func (m *SyncStrategyApply) Reset() { *m = SyncStrategyApply{} } func (*SyncStrategyApply) ProtoMessage() {} func (*SyncStrategyApply) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{151} + return fileDescriptor_030104ce3b95bcac, []int{158} } func (m *SyncStrategyApply) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4300,7 +4496,7 @@ var xxx_messageInfo_SyncStrategyApply proto.InternalMessageInfo func (m *SyncStrategyHook) Reset() { *m = SyncStrategyHook{} } func (*SyncStrategyHook) ProtoMessage() {} func (*SyncStrategyHook) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{152} + return fileDescriptor_030104ce3b95bcac, []int{159} } func (m *SyncStrategyHook) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4328,7 +4524,7 @@ var xxx_messageInfo_SyncStrategyHook proto.InternalMessageInfo func (m *SyncWindow) Reset() { *m = SyncWindow{} } func (*SyncWindow) ProtoMessage() {} func (*SyncWindow) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{153} + return fileDescriptor_030104ce3b95bcac, []int{160} } func (m *SyncWindow) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4356,7 +4552,7 @@ var xxx_messageInfo_SyncWindow proto.InternalMessageInfo func (m *TLSClientConfig) Reset() { *m = TLSClientConfig{} } func (*TLSClientConfig) ProtoMessage() {} func (*TLSClientConfig) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{154} + return fileDescriptor_030104ce3b95bcac, []int{161} } func (m *TLSClientConfig) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4384,7 +4580,7 @@ var xxx_messageInfo_TLSClientConfig proto.InternalMessageInfo func (m *TagFilter) Reset() { *m = TagFilter{} } func (*TagFilter) ProtoMessage() {} func (*TagFilter) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{155} + return fileDescriptor_030104ce3b95bcac, []int{162} } func (m *TagFilter) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4476,6 +4672,7 @@ func init() { proto.RegisterType((*ConfigManagementPlugin)(nil), "github.com.argoproj.argo_cd.v2.pkg.apis.application.v1alpha1.ConfigManagementPlugin") proto.RegisterType((*ConfigMapKeyRef)(nil), "github.com.argoproj.argo_cd.v2.pkg.apis.application.v1alpha1.ConfigMapKeyRef") proto.RegisterType((*ConnectionState)(nil), "github.com.argoproj.argo_cd.v2.pkg.apis.application.v1alpha1.ConnectionState") + proto.RegisterType((*DrySource)(nil), "github.com.argoproj.argo_cd.v2.pkg.apis.application.v1alpha1.DrySource") proto.RegisterType((*DuckTypeGenerator)(nil), "github.com.argoproj.argo_cd.v2.pkg.apis.application.v1alpha1.DuckTypeGenerator") proto.RegisterMapType((map[string]string)(nil), "github.com.argoproj.argo_cd.v2.pkg.apis.application.v1alpha1.DuckTypeGenerator.ValuesEntry") proto.RegisterType((*EnvEntry)(nil), "github.com.argoproj.argo_cd.v2.pkg.apis.application.v1alpha1.EnvEntry") @@ -4494,6 +4691,8 @@ func init() { proto.RegisterType((*HelmParameter)(nil), "github.com.argoproj.argo_cd.v2.pkg.apis.application.v1alpha1.HelmParameter") proto.RegisterType((*HostInfo)(nil), "github.com.argoproj.argo_cd.v2.pkg.apis.application.v1alpha1.HostInfo") proto.RegisterType((*HostResourceInfo)(nil), "github.com.argoproj.argo_cd.v2.pkg.apis.application.v1alpha1.HostResourceInfo") + proto.RegisterType((*HydrateOperation)(nil), "github.com.argoproj.argo_cd.v2.pkg.apis.application.v1alpha1.HydrateOperation") + proto.RegisterType((*HydrateTo)(nil), "github.com.argoproj.argo_cd.v2.pkg.apis.application.v1alpha1.HydrateTo") proto.RegisterType((*Info)(nil), "github.com.argoproj.argo_cd.v2.pkg.apis.application.v1alpha1.Info") proto.RegisterType((*InfoItem)(nil), "github.com.argoproj.argo_cd.v2.pkg.apis.application.v1alpha1.InfoItem") proto.RegisterType((*JWTToken)(nil), "github.com.argoproj.argo_cd.v2.pkg.apis.application.v1alpha1.JWTToken") @@ -4574,11 +4773,15 @@ func init() { proto.RegisterType((*SCMProviderGeneratorGitlab)(nil), "github.com.argoproj.argo_cd.v2.pkg.apis.application.v1alpha1.SCMProviderGeneratorGitlab") proto.RegisterType((*SecretRef)(nil), "github.com.argoproj.argo_cd.v2.pkg.apis.application.v1alpha1.SecretRef") proto.RegisterType((*SignatureKey)(nil), "github.com.argoproj.argo_cd.v2.pkg.apis.application.v1alpha1.SignatureKey") + proto.RegisterType((*SourceHydrator)(nil), "github.com.argoproj.argo_cd.v2.pkg.apis.application.v1alpha1.SourceHydrator") + proto.RegisterType((*SourceHydratorStatus)(nil), "github.com.argoproj.argo_cd.v2.pkg.apis.application.v1alpha1.SourceHydratorStatus") + proto.RegisterType((*SuccessfulHydrateOperation)(nil), "github.com.argoproj.argo_cd.v2.pkg.apis.application.v1alpha1.SuccessfulHydrateOperation") proto.RegisterType((*SyncOperation)(nil), "github.com.argoproj.argo_cd.v2.pkg.apis.application.v1alpha1.SyncOperation") proto.RegisterType((*SyncOperationResource)(nil), "github.com.argoproj.argo_cd.v2.pkg.apis.application.v1alpha1.SyncOperationResource") proto.RegisterType((*SyncOperationResult)(nil), "github.com.argoproj.argo_cd.v2.pkg.apis.application.v1alpha1.SyncOperationResult") proto.RegisterType((*SyncPolicy)(nil), "github.com.argoproj.argo_cd.v2.pkg.apis.application.v1alpha1.SyncPolicy") proto.RegisterType((*SyncPolicyAutomated)(nil), "github.com.argoproj.argo_cd.v2.pkg.apis.application.v1alpha1.SyncPolicyAutomated") + proto.RegisterType((*SyncSource)(nil), "github.com.argoproj.argo_cd.v2.pkg.apis.application.v1alpha1.SyncSource") proto.RegisterType((*SyncStatus)(nil), "github.com.argoproj.argo_cd.v2.pkg.apis.application.v1alpha1.SyncStatus") proto.RegisterType((*SyncStrategy)(nil), "github.com.argoproj.argo_cd.v2.pkg.apis.application.v1alpha1.SyncStrategy") proto.RegisterType((*SyncStrategyApply)(nil), "github.com.argoproj.argo_cd.v2.pkg.apis.application.v1alpha1.SyncStrategyApply") @@ -4593,724 +4796,744 @@ func init() { } var fileDescriptor_030104ce3b95bcac = []byte{ - // 11458 bytes of a gzipped FileDescriptorProto + // 11792 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x7d, 0x6d, 0x70, 0x1c, 0xc9, - 0x75, 0x98, 0x66, 0x17, 0x0b, 0xec, 0x3e, 0x7c, 0x11, 0x4d, 0xf2, 0x0e, 0xa4, 0xee, 0x0e, 0xf4, - 0x9c, 0x7d, 0x3a, 0x47, 0x77, 0x80, 0x8f, 0xba, 0x93, 0x2f, 0x3a, 0x4b, 0x32, 0x3e, 0x48, 0x10, - 0x24, 0x40, 0xe0, 0x1a, 0x20, 0x29, 0x9d, 0x7c, 0x3a, 0x0d, 0x66, 0x1b, 0x8b, 0x21, 0x66, 0x67, - 0xf6, 0x66, 0x66, 0x41, 0xe0, 0x2c, 0xc9, 0x92, 0x25, 0xd9, 0x72, 0xf4, 0x71, 0x8a, 0x94, 0xaa, - 0x9c, 0x13, 0x4b, 0x91, 0x2d, 0x27, 0x95, 0x54, 0x4a, 0x15, 0x25, 0xf9, 0x11, 0xa7, 0x6c, 0x97, - 0x2b, 0x76, 0xca, 0xa5, 0xc4, 0x49, 0xd9, 0x51, 0xa9, 0x2c, 0x25, 0xb1, 0x11, 0x89, 0x71, 0xca, - 0xae, 0xfc, 0x70, 0x55, 0x9c, 0xfc, 0x48, 0x31, 0xf9, 0x91, 0xea, 0xef, 0x9e, 0xd9, 0x59, 0x60, - 0x41, 0x0c, 0x48, 0x4a, 0xb9, 0x7f, 0xbb, 0xfd, 0x5e, 0xf7, 0xeb, 0xe9, 0x8f, 0xf7, 0x5e, 0xbf, - 0x7e, 0xef, 0x35, 0x2c, 0x36, 0xbc, 0x64, 0xb3, 0xbd, 0x3e, 0xe9, 0x86, 0xcd, 0x29, 0x27, 0x6a, - 0x84, 0xad, 0x28, 0xbc, 0xc9, 0x7e, 0x3c, 0xed, 0xd6, 0xa7, 0xb6, 0xcf, 0x4f, 0xb5, 0xb6, 0x1a, - 0x53, 0x4e, 0xcb, 0x8b, 0xa7, 0x9c, 0x56, 0xcb, 0xf7, 0x5c, 0x27, 0xf1, 0xc2, 0x60, 0x6a, 0xfb, - 0x19, 0xc7, 0x6f, 0x6d, 0x3a, 0xcf, 0x4c, 0x35, 0x48, 0x40, 0x22, 0x27, 0x21, 0xf5, 0xc9, 0x56, - 0x14, 0x26, 0x21, 0xfa, 0x29, 0xdd, 0xda, 0xa4, 0x6c, 0x8d, 0xfd, 0x78, 0xc5, 0xad, 0x4f, 0x6e, - 0x9f, 0x9f, 0x6c, 0x6d, 0x35, 0x26, 0x69, 0x6b, 0x93, 0x46, 0x6b, 0x93, 0xb2, 0xb5, 0xb3, 0x4f, - 0x1b, 0x7d, 0x69, 0x84, 0x8d, 0x70, 0x8a, 0x35, 0xba, 0xde, 0xde, 0x60, 0xff, 0xd8, 0x1f, 0xf6, - 0x8b, 0x13, 0x3b, 0x6b, 0x6f, 0x3d, 0x1f, 0x4f, 0x7a, 0x21, 0xed, 0xde, 0x94, 0x1b, 0x46, 0x64, - 0x6a, 0xbb, 0xa3, 0x43, 0x67, 0x2f, 0x69, 0x1c, 0xb2, 0x93, 0x90, 0x20, 0xf6, 0xc2, 0x20, 0x7e, - 0x9a, 0x76, 0x81, 0x44, 0xdb, 0x24, 0x32, 0x3f, 0xcf, 0x40, 0xc8, 0x6b, 0xe9, 0x59, 0xdd, 0x52, - 0xd3, 0x71, 0x37, 0xbd, 0x80, 0x44, 0xbb, 0xba, 0x7a, 0x93, 0x24, 0x4e, 0x5e, 0xad, 0xa9, 0x6e, - 0xb5, 0xa2, 0x76, 0x90, 0x78, 0x4d, 0xd2, 0x51, 0xe1, 0x9d, 0x07, 0x55, 0x88, 0xdd, 0x4d, 0xd2, - 0x74, 0x3a, 0xea, 0xbd, 0xa3, 0x5b, 0xbd, 0x76, 0xe2, 0xf9, 0x53, 0x5e, 0x90, 0xc4, 0x49, 0x94, - 0xad, 0x64, 0xff, 0x8a, 0x05, 0xc3, 0xd3, 0x37, 0x56, 0xa7, 0xdb, 0xc9, 0xe6, 0x6c, 0x18, 0x6c, - 0x78, 0x0d, 0xf4, 0x1c, 0x0c, 0xba, 0x7e, 0x3b, 0x4e, 0x48, 0x74, 0xd5, 0x69, 0x92, 0x71, 0xeb, - 0x9c, 0xf5, 0x64, 0x6d, 0xe6, 0xe4, 0x37, 0xf7, 0x26, 0xde, 0x72, 0x7b, 0x6f, 0x62, 0x70, 0x56, - 0x83, 0xb0, 0x89, 0x87, 0x7e, 0x1c, 0x06, 0xa2, 0xd0, 0x27, 0xd3, 0xf8, 0xea, 0x78, 0x89, 0x55, - 0x19, 0x15, 0x55, 0x06, 0x30, 0x2f, 0xc6, 0x12, 0x4e, 0x51, 0x5b, 0x51, 0xb8, 0xe1, 0xf9, 0x64, - 0xbc, 0x9c, 0x46, 0x5d, 0xe1, 0xc5, 0x58, 0xc2, 0xed, 0x3f, 0x2e, 0x01, 0x4c, 0xb7, 0x5a, 0x2b, - 0x51, 0x78, 0x93, 0xb8, 0x09, 0xfa, 0x10, 0x54, 0xe9, 0x30, 0xd7, 0x9d, 0xc4, 0x61, 0x1d, 0x1b, - 0x3c, 0xff, 0x13, 0x93, 0xfc, 0xab, 0x27, 0xcd, 0xaf, 0xd6, 0x8b, 0x8c, 0x62, 0x4f, 0x6e, 0x3f, - 0x33, 0xb9, 0xbc, 0x4e, 0xeb, 0x2f, 0x91, 0xc4, 0x99, 0x41, 0x82, 0x18, 0xe8, 0x32, 0xac, 0x5a, - 0x45, 0x01, 0xf4, 0xc5, 0x2d, 0xe2, 0xb2, 0x6f, 0x18, 0x3c, 0xbf, 0x38, 0x79, 0x94, 0xd5, 0x3c, - 0xa9, 0x7b, 0xbe, 0xda, 0x22, 0xee, 0xcc, 0x90, 0xa0, 0xdc, 0x47, 0xff, 0x61, 0x46, 0x07, 0x6d, - 0x43, 0x7f, 0x9c, 0x38, 0x49, 0x3b, 0x66, 0x43, 0x31, 0x78, 0xfe, 0x6a, 0x61, 0x14, 0x59, 0xab, - 0x33, 0x23, 0x82, 0x66, 0x3f, 0xff, 0x8f, 0x05, 0x35, 0xfb, 0x4f, 0x2d, 0x18, 0xd1, 0xc8, 0x8b, - 0x5e, 0x9c, 0xa0, 0x9f, 0xe9, 0x18, 0xdc, 0xc9, 0xde, 0x06, 0x97, 0xd6, 0x66, 0x43, 0x7b, 0x42, - 0x10, 0xab, 0xca, 0x12, 0x63, 0x60, 0x9b, 0x50, 0xf1, 0x12, 0xd2, 0x8c, 0xc7, 0x4b, 0xe7, 0xca, - 0x4f, 0x0e, 0x9e, 0xbf, 0x54, 0xd4, 0x77, 0xce, 0x0c, 0x0b, 0xa2, 0x95, 0x05, 0xda, 0x3c, 0xe6, - 0x54, 0xec, 0xbf, 0x1a, 0x36, 0xbf, 0x8f, 0x0e, 0x38, 0x7a, 0x06, 0x06, 0xe3, 0xb0, 0x1d, 0xb9, - 0x04, 0x93, 0x56, 0x18, 0x8f, 0x5b, 0xe7, 0xca, 0x74, 0xe9, 0xd1, 0x45, 0xbd, 0xaa, 0x8b, 0xb1, - 0x89, 0x83, 0x3e, 0x6f, 0xc1, 0x50, 0x9d, 0xc4, 0x89, 0x17, 0x30, 0xfa, 0xb2, 0xf3, 0x6b, 0x47, - 0xee, 0xbc, 0x2c, 0x9c, 0xd3, 0x8d, 0xcf, 0x9c, 0x12, 0x1f, 0x32, 0x64, 0x14, 0xc6, 0x38, 0x45, - 0x9f, 0x6e, 0xce, 0x3a, 0x89, 0xdd, 0xc8, 0x6b, 0xd1, 0xff, 0x62, 0xfb, 0xa8, 0xcd, 0x39, 0xa7, - 0x41, 0xd8, 0xc4, 0x43, 0x01, 0x54, 0xe8, 0xe6, 0x8b, 0xc7, 0xfb, 0x58, 0xff, 0x17, 0x8e, 0xd6, - 0x7f, 0x31, 0xa8, 0x74, 0x5f, 0xeb, 0xd1, 0xa7, 0xff, 0x62, 0xcc, 0xc9, 0xa0, 0xcf, 0x59, 0x30, - 0x2e, 0x98, 0x03, 0x26, 0x7c, 0x40, 0x6f, 0x6c, 0x7a, 0x09, 0xf1, 0xbd, 0x38, 0x19, 0xaf, 0xb0, - 0x3e, 0x4c, 0xf5, 0xb6, 0xb6, 0xe6, 0xa3, 0xb0, 0xdd, 0xba, 0xe2, 0x05, 0xf5, 0x99, 0x73, 0x82, - 0xd2, 0xf8, 0x6c, 0x97, 0x86, 0x71, 0x57, 0x92, 0xe8, 0x4b, 0x16, 0x9c, 0x0d, 0x9c, 0x26, 0x89, - 0x5b, 0x0e, 0x9d, 0x5a, 0x0e, 0x9e, 0xf1, 0x1d, 0x77, 0x8b, 0xf5, 0xa8, 0xff, 0xee, 0x7a, 0x64, - 0x8b, 0x1e, 0x9d, 0xbd, 0xda, 0xb5, 0x69, 0xbc, 0x0f, 0x59, 0xf4, 0x35, 0x0b, 0xc6, 0xc2, 0xa8, - 0xb5, 0xe9, 0x04, 0xa4, 0x2e, 0xa1, 0xf1, 0xf8, 0x00, 0xdb, 0x7a, 0x1f, 0x3c, 0xda, 0x14, 0x2d, - 0x67, 0x9b, 0x5d, 0x0a, 0x03, 0x2f, 0x09, 0xa3, 0x55, 0x92, 0x24, 0x5e, 0xd0, 0x88, 0x67, 0x4e, - 0xdf, 0xde, 0x9b, 0x18, 0xeb, 0xc0, 0xc2, 0x9d, 0xfd, 0x41, 0x3f, 0x0b, 0x83, 0xf1, 0x6e, 0xe0, - 0xde, 0xf0, 0x82, 0x7a, 0x78, 0x2b, 0x1e, 0xaf, 0x16, 0xb1, 0x7d, 0x57, 0x55, 0x83, 0x62, 0x03, - 0x6a, 0x02, 0xd8, 0xa4, 0x96, 0x3f, 0x71, 0x7a, 0x29, 0xd5, 0x8a, 0x9e, 0x38, 0xbd, 0x98, 0xf6, - 0x21, 0x8b, 0x7e, 0xd1, 0x82, 0xe1, 0xd8, 0x6b, 0x04, 0x4e, 0xd2, 0x8e, 0xc8, 0x15, 0xb2, 0x1b, - 0x8f, 0x03, 0xeb, 0xc8, 0xe5, 0x23, 0x8e, 0x8a, 0xd1, 0xe4, 0xcc, 0x69, 0xd1, 0xc7, 0x61, 0xb3, - 0x34, 0xc6, 0x69, 0xba, 0x79, 0x1b, 0x4d, 0x2f, 0xeb, 0xc1, 0x62, 0x37, 0x9a, 0x5e, 0xd4, 0x5d, - 0x49, 0xa2, 0x9f, 0x86, 0x13, 0xbc, 0x48, 0x8d, 0x6c, 0x3c, 0x3e, 0xc4, 0x18, 0xed, 0xa9, 0xdb, - 0x7b, 0x13, 0x27, 0x56, 0x33, 0x30, 0xdc, 0x81, 0x8d, 0x5e, 0x85, 0x89, 0x16, 0x89, 0x9a, 0x5e, - 0xb2, 0x1c, 0xf8, 0xbb, 0x92, 0x7d, 0xbb, 0x61, 0x8b, 0xd4, 0x45, 0x77, 0xe2, 0xf1, 0xe1, 0x73, - 0xd6, 0x93, 0xd5, 0x99, 0xb7, 0x89, 0x6e, 0x4e, 0xac, 0xec, 0x8f, 0x8e, 0x0f, 0x6a, 0x0f, 0xfd, - 0xbe, 0x05, 0x67, 0x0d, 0x2e, 0xbb, 0x4a, 0xa2, 0x6d, 0xcf, 0x25, 0xd3, 0xae, 0x1b, 0xb6, 0x83, - 0x24, 0x1e, 0x1f, 0x61, 0xc3, 0xb8, 0x7e, 0x1c, 0x3c, 0x3f, 0x4d, 0x4a, 0xaf, 0xcb, 0xae, 0x28, - 0x31, 0xde, 0xa7, 0xa7, 0xf6, 0xbf, 0x29, 0xc1, 0x89, 0xac, 0x06, 0x80, 0xfe, 0x81, 0x05, 0xa3, - 0x37, 0x6f, 0x25, 0x6b, 0xe1, 0x16, 0x09, 0xe2, 0x99, 0x5d, 0xca, 0xa7, 0x99, 0xec, 0x1b, 0x3c, - 0xef, 0x16, 0xab, 0x6b, 0x4c, 0x5e, 0x4e, 0x53, 0xb9, 0x10, 0x24, 0xd1, 0xee, 0xcc, 0xc3, 0xe2, - 0x9b, 0x46, 0x2f, 0xdf, 0x58, 0x33, 0xa1, 0x38, 0xdb, 0xa9, 0xb3, 0x9f, 0xb1, 0xe0, 0x54, 0x5e, - 0x13, 0xe8, 0x04, 0x94, 0xb7, 0xc8, 0x2e, 0xd7, 0x44, 0x31, 0xfd, 0x89, 0x5e, 0x86, 0xca, 0xb6, - 0xe3, 0xb7, 0x89, 0x50, 0xd3, 0xe6, 0x8f, 0xf6, 0x21, 0xaa, 0x67, 0x98, 0xb7, 0xfa, 0xae, 0xd2, - 0xf3, 0x96, 0xfd, 0x87, 0x65, 0x18, 0x34, 0x26, 0xed, 0x1e, 0xa8, 0x9e, 0x61, 0x4a, 0xf5, 0x5c, - 0x2a, 0x6c, 0xbd, 0x75, 0xd5, 0x3d, 0x6f, 0x65, 0x74, 0xcf, 0xe5, 0xe2, 0x48, 0xee, 0xab, 0x7c, - 0xa2, 0x04, 0x6a, 0x61, 0x8b, 0x1e, 0x43, 0xa8, 0x0e, 0xd3, 0x57, 0xc4, 0x14, 0x2e, 0xcb, 0xe6, - 0x66, 0x86, 0x6f, 0xef, 0x4d, 0xd4, 0xd4, 0x5f, 0xac, 0x09, 0xd9, 0xdf, 0xb1, 0xe0, 0x94, 0xd1, - 0xc7, 0xd9, 0x30, 0xa8, 0x7b, 0x6c, 0x6a, 0xcf, 0x41, 0x5f, 0xb2, 0xdb, 0x92, 0x47, 0x1d, 0x35, - 0x52, 0x6b, 0xbb, 0x2d, 0x82, 0x19, 0x84, 0x9e, 0x58, 0x9a, 0x24, 0x8e, 0x9d, 0x06, 0xc9, 0x1e, - 0x6e, 0x96, 0x78, 0x31, 0x96, 0x70, 0x14, 0x01, 0xf2, 0x9d, 0x38, 0x59, 0x8b, 0x9c, 0x20, 0x66, - 0xcd, 0xaf, 0x79, 0x4d, 0x22, 0x06, 0xf8, 0xaf, 0xf5, 0xb6, 0x62, 0x68, 0x8d, 0x99, 0x87, 0x6e, - 0xef, 0x4d, 0xa0, 0xc5, 0x8e, 0x96, 0x70, 0x4e, 0xeb, 0xf6, 0x97, 0x2c, 0x78, 0x28, 0x9f, 0xc1, - 0xa0, 0x27, 0xa0, 0x9f, 0x9f, 0x73, 0xc5, 0xd7, 0xe9, 0x29, 0x61, 0xa5, 0x58, 0x40, 0xd1, 0x14, - 0xd4, 0x94, 0xc0, 0x13, 0xdf, 0x38, 0x26, 0x50, 0x6b, 0x5a, 0x4a, 0x6a, 0x1c, 0x3a, 0x68, 0xf4, - 0x8f, 0x50, 0x41, 0xd5, 0xa0, 0xb1, 0x83, 0x21, 0x83, 0xd8, 0xdf, 0xb6, 0xe0, 0x47, 0x7b, 0x61, - 0x7b, 0xc7, 0xd7, 0xc7, 0x55, 0x38, 0x5d, 0x27, 0x1b, 0x4e, 0xdb, 0x4f, 0xd2, 0x14, 0x45, 0xa7, - 0x1f, 0x15, 0x95, 0x4f, 0xcf, 0xe5, 0x21, 0xe1, 0xfc, 0xba, 0xf6, 0x7f, 0xb1, 0x60, 0xd4, 0xf8, - 0xac, 0x7b, 0x70, 0x74, 0x0a, 0xd2, 0x47, 0xa7, 0x85, 0xc2, 0xb6, 0x69, 0x97, 0xb3, 0xd3, 0xe7, - 0x2c, 0x38, 0x6b, 0x60, 0x2d, 0x39, 0x89, 0xbb, 0x79, 0x61, 0xa7, 0x15, 0x91, 0x38, 0xa6, 0x4b, - 0xea, 0x51, 0x83, 0x1d, 0xcf, 0x0c, 0x8a, 0x16, 0xca, 0x57, 0xc8, 0x2e, 0xe7, 0xcd, 0x4f, 0x41, - 0x95, 0xef, 0xb9, 0x30, 0x12, 0x93, 0xa4, 0xbe, 0x6d, 0x59, 0x94, 0x63, 0x85, 0x81, 0x6c, 0xe8, - 0x67, 0x3c, 0x97, 0xf2, 0x20, 0xaa, 0x26, 0x00, 0x9d, 0xf7, 0xeb, 0xac, 0x04, 0x0b, 0x88, 0x1d, - 0xa7, 0xba, 0xb3, 0x12, 0x11, 0xb6, 0x1e, 0xea, 0x17, 0x3d, 0xe2, 0xd7, 0x63, 0x7a, 0xac, 0x73, - 0x82, 0x20, 0x4c, 0xc4, 0x09, 0xcd, 0x38, 0xd6, 0x4d, 0xeb, 0x62, 0x6c, 0xe2, 0x50, 0xa2, 0xbe, - 0xb3, 0x4e, 0x7c, 0x3e, 0xa2, 0x82, 0xe8, 0x22, 0x2b, 0xc1, 0x02, 0x62, 0xdf, 0x2e, 0xb1, 0x03, - 0xa4, 0xe2, 0x68, 0xe4, 0x5e, 0x58, 0x1f, 0xa2, 0x94, 0x08, 0x58, 0x29, 0x8e, 0x1f, 0x93, 0xee, - 0x16, 0x88, 0xd7, 0x32, 0x52, 0x00, 0x17, 0x4a, 0x75, 0x7f, 0x2b, 0xc4, 0xc7, 0xca, 0x30, 0x91, - 0xae, 0xd0, 0x21, 0x44, 0xe8, 0x91, 0xd7, 0x20, 0x94, 0xb5, 0x47, 0x19, 0xf8, 0xd8, 0xc4, 0xeb, - 0xc2, 0x87, 0x4b, 0xc7, 0xc9, 0x87, 0x4d, 0x31, 0x51, 0x3e, 0x40, 0x4c, 0x3c, 0xa1, 0x46, 0xbd, - 0x2f, 0xc3, 0xf3, 0xd2, 0xa2, 0xf2, 0x1c, 0xf4, 0xc5, 0x09, 0x69, 0x8d, 0x57, 0xd2, 0x6c, 0x76, - 0x35, 0x21, 0x2d, 0xcc, 0x20, 0xe8, 0xdd, 0x30, 0x9a, 0x38, 0x51, 0x83, 0x24, 0x11, 0xd9, 0xf6, - 0x98, 0xed, 0x92, 0x9d, 0x67, 0x6b, 0x33, 0x27, 0xa9, 0xd6, 0xb5, 0xc6, 0x40, 0x58, 0x82, 0x70, - 0x16, 0xd7, 0xfe, 0xef, 0x25, 0x78, 0x38, 0x3d, 0x05, 0x5a, 0x30, 0xbe, 0x37, 0x25, 0x18, 0xdf, - 0x6e, 0x0a, 0xc6, 0x3b, 0x7b, 0x13, 0x6f, 0xed, 0x52, 0xed, 0x07, 0x46, 0x6e, 0xa2, 0xf9, 0xcc, - 0x24, 0x4c, 0xa5, 0x27, 0xe1, 0xce, 0xde, 0xc4, 0xa3, 0x5d, 0xbe, 0x31, 0x33, 0x4b, 0x4f, 0x40, - 0x7f, 0x44, 0x9c, 0x38, 0x0c, 0xc4, 0x3c, 0xa9, 0xd9, 0xc4, 0xac, 0x14, 0x0b, 0xa8, 0xfd, 0xad, - 0x5a, 0x76, 0xb0, 0xe7, 0xb9, 0x3d, 0x36, 0x8c, 0x90, 0x07, 0x7d, 0xec, 0xd4, 0xc6, 0x39, 0xcb, - 0x95, 0xa3, 0xed, 0x42, 0x2a, 0x45, 0x54, 0xd3, 0x33, 0x55, 0x3a, 0x6b, 0xb4, 0x08, 0x33, 0x12, - 0x68, 0x07, 0xaa, 0xae, 0x3c, 0x4c, 0x95, 0x8a, 0x30, 0x3b, 0x8a, 0xa3, 0x94, 0xa6, 0x38, 0x44, - 0xd9, 0xbd, 0x3a, 0x81, 0x29, 0x6a, 0x88, 0x40, 0xb9, 0xe1, 0x25, 0x62, 0x5a, 0x8f, 0x78, 0x5c, - 0x9e, 0xf7, 0x8c, 0x4f, 0x1c, 0xa0, 0x32, 0x68, 0xde, 0x4b, 0x30, 0x6d, 0x1f, 0x7d, 0xca, 0x82, - 0xc1, 0xd8, 0x6d, 0xae, 0x44, 0xe1, 0xb6, 0x57, 0x27, 0x91, 0xd0, 0x31, 0x8f, 0xc8, 0xd9, 0x56, - 0x67, 0x97, 0x64, 0x83, 0x9a, 0x2e, 0x37, 0x5f, 0x68, 0x08, 0x36, 0xe9, 0xd2, 0xb3, 0xd7, 0xc3, - 0xe2, 0xdb, 0xe7, 0x88, 0xcb, 0x76, 0x9c, 0x3c, 0x33, 0xb3, 0x95, 0x72, 0x64, 0x9d, 0x7b, 0xae, - 0xed, 0x6e, 0xd1, 0xfd, 0xa6, 0x3b, 0xf4, 0xd6, 0xdb, 0x7b, 0x13, 0x0f, 0xcf, 0xe6, 0xd3, 0xc4, - 0xdd, 0x3a, 0xc3, 0x06, 0xac, 0xd5, 0xf6, 0x7d, 0x4c, 0x5e, 0x6d, 0x13, 0x66, 0x11, 0x2b, 0x60, - 0xc0, 0x56, 0x74, 0x83, 0x99, 0x01, 0x33, 0x20, 0xd8, 0xa4, 0x8b, 0x5e, 0x85, 0xfe, 0xa6, 0x93, - 0x44, 0xde, 0x8e, 0x30, 0x83, 0x1d, 0xf1, 0x14, 0xb4, 0xc4, 0xda, 0xd2, 0xc4, 0x99, 0xa0, 0xe7, - 0x85, 0x58, 0x10, 0x42, 0x4d, 0xa8, 0x34, 0x49, 0xd4, 0x20, 0xe3, 0xd5, 0x22, 0x4c, 0xfe, 0x4b, - 0xb4, 0x29, 0x4d, 0xb0, 0x46, 0x95, 0x2b, 0x56, 0x86, 0x39, 0x15, 0xf4, 0x32, 0x54, 0x63, 0xe2, - 0x13, 0x97, 0xaa, 0x47, 0x35, 0x46, 0xf1, 0x1d, 0x3d, 0xaa, 0x8a, 0x54, 0x2f, 0x59, 0x15, 0x55, - 0xf9, 0x06, 0x93, 0xff, 0xb0, 0x6a, 0x92, 0x0e, 0x60, 0xcb, 0x6f, 0x37, 0xbc, 0x60, 0x1c, 0x8a, - 0x18, 0xc0, 0x15, 0xd6, 0x56, 0x66, 0x00, 0x79, 0x21, 0x16, 0x84, 0xec, 0xff, 0x66, 0x01, 0x4a, - 0x33, 0xb5, 0x7b, 0xa0, 0x13, 0xbf, 0x9a, 0xd6, 0x89, 0x17, 0x8b, 0x54, 0x5a, 0xba, 0xa8, 0xc5, - 0xbf, 0x59, 0x83, 0x8c, 0x38, 0xb8, 0x4a, 0xe2, 0x84, 0xd4, 0xdf, 0x64, 0xe1, 0x6f, 0xb2, 0xf0, - 0x37, 0x59, 0xb8, 0x62, 0xe1, 0xeb, 0x19, 0x16, 0xfe, 0x1e, 0x63, 0xd7, 0xeb, 0xfb, 0xf5, 0x57, - 0xd4, 0x05, 0xbc, 0xd9, 0x03, 0x03, 0x81, 0x72, 0x82, 0xcb, 0xab, 0xcb, 0x57, 0x73, 0x79, 0xf6, - 0x2b, 0x69, 0x9e, 0x7d, 0x54, 0x12, 0xff, 0x3f, 0x70, 0xe9, 0xdf, 0xb7, 0xe0, 0x6d, 0x69, 0xee, - 0x25, 0x57, 0xce, 0x42, 0x23, 0x08, 0x23, 0x32, 0xe7, 0x6d, 0x6c, 0x90, 0x88, 0x04, 0x2e, 0x89, - 0x95, 0x6d, 0xc7, 0xea, 0x66, 0xdb, 0x41, 0xcf, 0xc2, 0xd0, 0xcd, 0x38, 0x0c, 0x56, 0x42, 0x2f, - 0x10, 0x2c, 0x88, 0x9e, 0x38, 0x4e, 0xdc, 0xde, 0x9b, 0x18, 0xa2, 0x23, 0x2a, 0xcb, 0x71, 0x0a, - 0x0b, 0xcd, 0xc2, 0xd8, 0xcd, 0x57, 0x57, 0x9c, 0xc4, 0xb0, 0x26, 0xc8, 0x73, 0x3f, 0xbb, 0x8f, - 0xba, 0xfc, 0x62, 0x06, 0x88, 0x3b, 0xf1, 0xed, 0xbf, 0x5b, 0x82, 0x33, 0x99, 0x0f, 0x09, 0x7d, - 0x3f, 0x6c, 0x27, 0xf4, 0x4c, 0x84, 0xbe, 0x62, 0xc1, 0x89, 0x66, 0xda, 0x60, 0x11, 0x0b, 0x73, - 0xf7, 0xfb, 0x0a, 0x93, 0x11, 0x19, 0x8b, 0xc8, 0xcc, 0xb8, 0x18, 0xa1, 0x13, 0x19, 0x40, 0x8c, - 0x3b, 0xfa, 0x82, 0x5e, 0x86, 0x5a, 0xd3, 0xd9, 0xb9, 0xd6, 0xaa, 0x3b, 0x89, 0x3c, 0x8e, 0x76, - 0xb7, 0x22, 0xb4, 0x13, 0xcf, 0x9f, 0xe4, 0x9e, 0x1b, 0x93, 0x0b, 0x41, 0xb2, 0x1c, 0xad, 0x26, - 0x91, 0x17, 0x34, 0xb8, 0x91, 0x73, 0x49, 0x36, 0x83, 0x75, 0x8b, 0xf6, 0x97, 0xad, 0xac, 0x90, - 0x52, 0xa3, 0x13, 0x39, 0x09, 0x69, 0xec, 0xa2, 0x0f, 0x43, 0x85, 0x9e, 0x1b, 0xe5, 0xa8, 0xdc, - 0x28, 0x52, 0x72, 0x1a, 0x33, 0xa1, 0x85, 0x28, 0xfd, 0x17, 0x63, 0x4e, 0xd4, 0xfe, 0x4a, 0x2d, - 0xab, 0x2c, 0xb0, 0xbb, 0xf9, 0xf3, 0x00, 0x8d, 0x70, 0x8d, 0x34, 0x5b, 0x3e, 0x1d, 0x16, 0x8b, - 0x5d, 0xf0, 0x28, 0x53, 0xc9, 0xbc, 0x82, 0x60, 0x03, 0x0b, 0xfd, 0x92, 0x05, 0xd0, 0x90, 0x6b, - 0x5e, 0x2a, 0x02, 0xd7, 0x8a, 0xfc, 0x1c, 0xbd, 0xa3, 0x74, 0x5f, 0x14, 0x41, 0x6c, 0x10, 0x47, - 0x3f, 0x6f, 0x41, 0x35, 0x91, 0xdd, 0xe7, 0xa2, 0x71, 0xad, 0xc8, 0x9e, 0xc8, 0x8f, 0xd6, 0x3a, - 0x91, 0x1a, 0x12, 0x45, 0x17, 0xfd, 0x82, 0x05, 0x10, 0xef, 0x06, 0xee, 0x4a, 0xe8, 0x7b, 0xee, - 0xae, 0x90, 0x98, 0xd7, 0x0b, 0x35, 0xe7, 0xa8, 0xd6, 0x67, 0x46, 0xe8, 0x68, 0xe8, 0xff, 0xd8, - 0xa0, 0x8c, 0x3e, 0x0a, 0xd5, 0x58, 0x2c, 0x37, 0x21, 0x23, 0xd7, 0x8a, 0x35, 0x2a, 0xf1, 0xb6, - 0x05, 0x7b, 0x15, 0xff, 0xb0, 0xa2, 0x89, 0xfe, 0xb6, 0x05, 0xa3, 0xad, 0xb4, 0x99, 0x50, 0x88, - 0xc3, 0xe2, 0x78, 0x40, 0xc6, 0x0c, 0xc9, 0xad, 0x2d, 0x99, 0x42, 0x9c, 0xed, 0x05, 0xe5, 0x80, - 0x7a, 0x05, 0x2f, 0xb7, 0xb8, 0xc9, 0x72, 0x40, 0x73, 0xc0, 0xf9, 0x2c, 0x10, 0x77, 0xe2, 0xa3, - 0x15, 0x38, 0x45, 0x7b, 0xb7, 0xcb, 0xd5, 0x4f, 0x29, 0x5e, 0x62, 0x26, 0x0c, 0xab, 0x33, 0x8f, - 0x88, 0x15, 0xc2, 0xee, 0x3a, 0xb2, 0x38, 0x38, 0xb7, 0x26, 0xfa, 0x43, 0x0b, 0x1e, 0xf1, 0x98, - 0x18, 0x30, 0x0d, 0xf6, 0x5a, 0x22, 0x88, 0x8b, 0x76, 0x52, 0x28, 0xaf, 0xe8, 0x26, 0x7e, 0x66, - 0x7e, 0x54, 0x7c, 0xc1, 0x23, 0x0b, 0xfb, 0x74, 0x09, 0xef, 0xdb, 0x61, 0xf4, 0x93, 0x30, 0x2c, - 0xf7, 0xc5, 0x0a, 0x65, 0xc1, 0x4c, 0xd0, 0xd6, 0x66, 0xc6, 0x6e, 0xef, 0x4d, 0x0c, 0xaf, 0x99, - 0x00, 0x9c, 0xc6, 0xb3, 0xff, 0x6d, 0x39, 0x75, 0x4b, 0xa4, 0x6c, 0x98, 0x8c, 0xdd, 0xb8, 0xd2, - 0xfe, 0x23, 0xb9, 0x67, 0xa1, 0xec, 0x46, 0x59, 0x97, 0x34, 0xbb, 0x51, 0x45, 0x31, 0x36, 0x88, - 0x53, 0xa5, 0x74, 0xcc, 0xc9, 0x5a, 0x4a, 0x05, 0x07, 0x7c, 0xb9, 0xc8, 0x2e, 0x75, 0xde, 0xe9, - 0x9d, 0x11, 0x5d, 0x1b, 0xeb, 0x00, 0xe1, 0xce, 0x2e, 0xa1, 0x8f, 0x40, 0x2d, 0x52, 0x9e, 0x2d, - 0xe5, 0x22, 0x8e, 0x6a, 0x72, 0xd9, 0x88, 0xee, 0xa8, 0x0b, 0x20, 0xed, 0xc3, 0xa2, 0x29, 0xda, - 0x7f, 0x90, 0xbe, 0x18, 0x33, 0x78, 0x47, 0x0f, 0x97, 0x7e, 0x9f, 0xb7, 0x60, 0x30, 0x0a, 0x7d, - 0xdf, 0x0b, 0x1a, 0x94, 0xcf, 0x09, 0x61, 0xfd, 0x81, 0x63, 0x91, 0x97, 0x82, 0xa1, 0x31, 0xcd, - 0x1a, 0x6b, 0x9a, 0xd8, 0xec, 0x80, 0xfd, 0xa7, 0x16, 0x8c, 0x77, 0xe3, 0xc7, 0x88, 0xc0, 0x5b, - 0x25, 0xb3, 0x51, 0x43, 0xb1, 0x1c, 0xcc, 0x11, 0x9f, 0x28, 0xb3, 0x79, 0x75, 0xe6, 0x71, 0xf1, - 0x99, 0x6f, 0x5d, 0xe9, 0x8e, 0x8a, 0xf7, 0x6b, 0x07, 0xbd, 0x04, 0x27, 0x8c, 0xef, 0x8a, 0xd5, - 0xc0, 0xd4, 0x66, 0x26, 0xa9, 0x02, 0x34, 0x9d, 0x81, 0xdd, 0xd9, 0x9b, 0x78, 0x28, 0x5b, 0x26, - 0x04, 0x46, 0x47, 0x3b, 0xf6, 0xaf, 0x97, 0xb2, 0xb3, 0xa5, 0x64, 0xfd, 0x1b, 0x56, 0x87, 0x35, - 0xe1, 0x7d, 0xc7, 0x21, 0x5f, 0x99, 0xdd, 0x41, 0xb9, 0x61, 0x74, 0xc7, 0xb9, 0x8f, 0xd7, 0xf6, - 0xf6, 0xbf, 0xeb, 0x83, 0x7d, 0x7a, 0xd6, 0x83, 0xf2, 0x7e, 0xe8, 0x7b, 0xd4, 0xcf, 0x5a, 0xea, - 0xc2, 0x8c, 0xef, 0xe1, 0xfa, 0x71, 0x8d, 0x3d, 0x3f, 0x3f, 0xc5, 0xdc, 0x75, 0x44, 0x59, 0xd1, - 0xd3, 0x57, 0x73, 0xe8, 0xab, 0x56, 0xfa, 0xca, 0x8f, 0x3b, 0x35, 0x7a, 0xc7, 0xd6, 0x27, 0xe3, - 0x1e, 0x91, 0x77, 0x4c, 0xdf, 0x3e, 0x75, 0xbb, 0x61, 0x9c, 0x04, 0xd8, 0xf0, 0x02, 0xc7, 0xf7, - 0x5e, 0xa3, 0xa7, 0xa3, 0x0a, 0x13, 0xf0, 0x4c, 0x63, 0xba, 0xa8, 0x4a, 0xb1, 0x81, 0x71, 0xf6, - 0xaf, 0xc3, 0xa0, 0xf1, 0xe5, 0x39, 0x1e, 0x2f, 0xa7, 0x4c, 0x8f, 0x97, 0x9a, 0xe1, 0xa8, 0x72, - 0xf6, 0x3d, 0x70, 0x22, 0xdb, 0xc1, 0xc3, 0xd4, 0xb7, 0xff, 0xf7, 0x40, 0xf6, 0x0e, 0x6e, 0x8d, - 0x44, 0x4d, 0xda, 0xb5, 0x37, 0x0d, 0x5b, 0x6f, 0x1a, 0xb6, 0xde, 0x34, 0x6c, 0x99, 0x77, 0x13, - 0xc2, 0x68, 0x33, 0x70, 0x8f, 0x8c, 0x36, 0x29, 0x33, 0x54, 0xb5, 0x70, 0x33, 0x94, 0xfd, 0xa9, - 0x0e, 0xcb, 0xfd, 0x5a, 0x44, 0x08, 0x0a, 0xa1, 0x12, 0x84, 0x75, 0x22, 0x75, 0xdc, 0xcb, 0xc5, - 0x28, 0x6c, 0x57, 0xc3, 0xba, 0xe1, 0x2e, 0x4e, 0xff, 0xc5, 0x98, 0xd3, 0xb1, 0x6f, 0x57, 0x20, - 0xa5, 0x4e, 0xf2, 0x79, 0xff, 0x71, 0x18, 0x88, 0x48, 0x2b, 0xbc, 0x86, 0x17, 0x85, 0x2c, 0xd3, - 0x11, 0x25, 0xbc, 0x18, 0x4b, 0x38, 0x95, 0x79, 0x2d, 0x27, 0xd9, 0x14, 0xc2, 0x4c, 0xc9, 0xbc, - 0x15, 0x27, 0xd9, 0xc4, 0x0c, 0x82, 0xde, 0x03, 0x23, 0x49, 0xea, 0x2a, 0x5c, 0x5c, 0xf9, 0x3e, - 0x24, 0x70, 0x47, 0xd2, 0x17, 0xe5, 0x38, 0x83, 0x8d, 0x5e, 0x85, 0xbe, 0x4d, 0xe2, 0x37, 0xc5, - 0xd4, 0xaf, 0x16, 0x27, 0x6b, 0xd8, 0xb7, 0x5e, 0x22, 0x7e, 0x93, 0x73, 0x42, 0xfa, 0x0b, 0x33, - 0x52, 0x74, 0xdd, 0xd7, 0xb6, 0xda, 0x71, 0x12, 0x36, 0xbd, 0xd7, 0xa4, 0xa5, 0xf3, 0x7d, 0x05, - 0x13, 0xbe, 0x22, 0xdb, 0xe7, 0x26, 0x25, 0xf5, 0x17, 0x6b, 0xca, 0xac, 0x1f, 0x75, 0x2f, 0x62, - 0x4b, 0x66, 0x57, 0x18, 0x2c, 0x8b, 0xee, 0xc7, 0x9c, 0x6c, 0x9f, 0xf7, 0x43, 0xfd, 0xc5, 0x9a, - 0x32, 0xda, 0x55, 0xfb, 0x6f, 0x90, 0xf5, 0xe1, 0x5a, 0xc1, 0x7d, 0xe0, 0x7b, 0x2f, 0x77, 0x1f, - 0x3e, 0x0e, 0x15, 0x77, 0xd3, 0x89, 0x92, 0xf1, 0x21, 0xb6, 0x68, 0xd4, 0x2a, 0x9e, 0xa5, 0x85, - 0x98, 0xc3, 0xd0, 0xa3, 0x50, 0x8e, 0xc8, 0x06, 0xf3, 0x4e, 0x36, 0xfc, 0xa2, 0x30, 0xd9, 0xc0, - 0xb4, 0xdc, 0xfe, 0xd5, 0x52, 0x5a, 0x6d, 0x4b, 0x7f, 0x37, 0x5f, 0xed, 0x6e, 0x3b, 0x8a, 0xa5, - 0xf9, 0xcb, 0x58, 0xed, 0xac, 0x18, 0x4b, 0x38, 0xfa, 0xb8, 0x05, 0x03, 0x37, 0xe3, 0x30, 0x08, - 0x48, 0x22, 0x44, 0xe4, 0xf5, 0x82, 0x87, 0xe2, 0x32, 0x6f, 0x5d, 0xf7, 0x41, 0x14, 0x60, 0x49, - 0x97, 0x76, 0x97, 0xec, 0xb8, 0x7e, 0xbb, 0xde, 0xe1, 0xea, 0x72, 0x81, 0x17, 0x63, 0x09, 0xa7, - 0xa8, 0x5e, 0xc0, 0x51, 0xfb, 0xd2, 0xa8, 0x0b, 0x81, 0x40, 0x15, 0x70, 0xfb, 0xfb, 0x03, 0x70, - 0x3a, 0x77, 0x73, 0x50, 0x85, 0x8a, 0xa9, 0x2c, 0x17, 0x3d, 0x9f, 0x48, 0x27, 0x2f, 0xa6, 0x50, - 0x5d, 0x57, 0xa5, 0xd8, 0xc0, 0x40, 0x3f, 0x07, 0xd0, 0x72, 0x22, 0xa7, 0x49, 0x94, 0x79, 0xfa, - 0xc8, 0x7a, 0x0b, 0xed, 0xc7, 0x8a, 0x6c, 0x53, 0x1f, 0xd1, 0x55, 0x51, 0x8c, 0x0d, 0x92, 0xe8, - 0x39, 0x18, 0x8c, 0x88, 0x4f, 0x9c, 0x98, 0x39, 0xb7, 0x67, 0x23, 0x75, 0xb0, 0x06, 0x61, 0x13, - 0x0f, 0x3d, 0xa1, 0xfc, 0xe1, 0x32, 0x7e, 0x41, 0x69, 0x9f, 0x38, 0xf4, 0xba, 0x05, 0x23, 0x1b, - 0x9e, 0x4f, 0x34, 0x75, 0x11, 0x57, 0xb3, 0x7c, 0xf4, 0x8f, 0xbc, 0x68, 0xb6, 0xab, 0x39, 0x64, - 0xaa, 0x38, 0xc6, 0x19, 0xf2, 0x74, 0x9a, 0xb7, 0x49, 0xc4, 0x58, 0x6b, 0x7f, 0x7a, 0x9a, 0xaf, - 0xf3, 0x62, 0x2c, 0xe1, 0x68, 0x1a, 0x46, 0x5b, 0x4e, 0x1c, 0xcf, 0x46, 0xa4, 0x4e, 0x82, 0xc4, - 0x73, 0x7c, 0x1e, 0xf5, 0x52, 0xd5, 0xce, 0xe2, 0x2b, 0x69, 0x30, 0xce, 0xe2, 0xa3, 0xf7, 0xc3, - 0xc3, 0xdc, 0xfe, 0xb3, 0xe4, 0xc5, 0xb1, 0x17, 0x34, 0xf4, 0x32, 0x10, 0x66, 0xb0, 0x09, 0xd1, - 0xd4, 0xc3, 0x0b, 0xf9, 0x68, 0xb8, 0x5b, 0x7d, 0xf4, 0x14, 0x54, 0xe3, 0x2d, 0xaf, 0x35, 0x1b, - 0xd5, 0x63, 0x76, 0xf7, 0x53, 0xd5, 0x46, 0xd7, 0x55, 0x51, 0x8e, 0x15, 0x06, 0x72, 0x61, 0x88, - 0x4f, 0x09, 0x77, 0xe8, 0x13, 0xfc, 0xf1, 0xe9, 0xae, 0x62, 0x5a, 0x04, 0x71, 0x4e, 0x62, 0xe7, - 0xd6, 0x05, 0x79, 0x13, 0xc5, 0x2f, 0x4e, 0xae, 0x1b, 0xcd, 0xe0, 0x54, 0xa3, 0xe9, 0x13, 0xdb, - 0x60, 0x0f, 0x27, 0xb6, 0xe7, 0x60, 0x70, 0xab, 0xbd, 0x4e, 0xc4, 0xc8, 0x0b, 0xb6, 0xa5, 0x56, - 0xdf, 0x15, 0x0d, 0xc2, 0x26, 0x1e, 0xf3, 0xa5, 0x6c, 0x79, 0xe2, 0x5f, 0x3c, 0x3e, 0x6c, 0xf8, - 0x52, 0xae, 0x2c, 0xc8, 0x62, 0x6c, 0xe2, 0xd0, 0xae, 0xd1, 0xb1, 0x58, 0x23, 0x31, 0x0b, 0x95, - 0xa0, 0xc3, 0xa5, 0xba, 0xb6, 0x2a, 0x01, 0x58, 0xe3, 0xd8, 0xbf, 0x5c, 0x4a, 0x5b, 0x31, 0x4c, - 0x86, 0x83, 0x62, 0xca, 0x56, 0x92, 0xeb, 0x4e, 0x24, 0x95, 0x8f, 0x23, 0x06, 0x1a, 0x89, 0x76, - 0xaf, 0x3b, 0x91, 0xc9, 0xa0, 0x18, 0x01, 0x2c, 0x29, 0xa1, 0x9b, 0xd0, 0x97, 0xf8, 0x4e, 0x41, - 0x91, 0x89, 0x06, 0x45, 0x6d, 0x54, 0x5a, 0x9c, 0x8e, 0x31, 0xa3, 0x81, 0x1e, 0xa1, 0x27, 0xa9, - 0x75, 0x79, 0xeb, 0x25, 0x0e, 0x3f, 0xeb, 0x31, 0x66, 0xa5, 0xf6, 0x9f, 0x0d, 0xe6, 0xc8, 0x08, - 0x25, 0x94, 0xd1, 0x79, 0x00, 0x3a, 0xc5, 0x2b, 0x11, 0xd9, 0xf0, 0x76, 0x84, 0x52, 0xa4, 0xf8, - 0xd0, 0x55, 0x05, 0xc1, 0x06, 0x96, 0xac, 0xb3, 0xda, 0xde, 0xa0, 0x75, 0x4a, 0x9d, 0x75, 0x38, - 0x04, 0x1b, 0x58, 0xe8, 0x59, 0xe8, 0xf7, 0x9a, 0x4e, 0x43, 0x39, 0xe5, 0x3e, 0x42, 0x19, 0xd0, - 0x02, 0x2b, 0xb9, 0xb3, 0x37, 0x31, 0xa2, 0x3a, 0xc4, 0x8a, 0xb0, 0xc0, 0x45, 0xbf, 0x6e, 0xc1, - 0x90, 0x1b, 0x36, 0x9b, 0x61, 0xc0, 0x8f, 0xb2, 0xe2, 0x5c, 0x7e, 0xf3, 0xb8, 0x54, 0x96, 0xc9, - 0x59, 0x83, 0x18, 0x3f, 0x98, 0xab, 0x10, 0x4a, 0x13, 0x84, 0x53, 0xbd, 0x32, 0xf9, 0x54, 0xe5, - 0x00, 0x3e, 0xf5, 0x1b, 0x16, 0x8c, 0xf1, 0xba, 0xc6, 0x09, 0x5b, 0x44, 0x0b, 0x86, 0xc7, 0xfc, - 0x59, 0x1d, 0x46, 0x07, 0x65, 0x78, 0xed, 0x80, 0xe3, 0xce, 0x4e, 0xa2, 0x79, 0x18, 0xdb, 0x08, - 0x23, 0x97, 0x98, 0x03, 0x21, 0x98, 0xac, 0x6a, 0xe8, 0x62, 0x16, 0x01, 0x77, 0xd6, 0x41, 0xd7, - 0xe1, 0x21, 0xa3, 0xd0, 0x1c, 0x07, 0xce, 0x67, 0x1f, 0x13, 0xad, 0x3d, 0x74, 0x31, 0x17, 0x0b, - 0x77, 0xa9, 0x9d, 0x66, 0x69, 0xb5, 0x1e, 0x58, 0xda, 0x2b, 0x70, 0xc6, 0xed, 0x1c, 0x99, 0xed, - 0xb8, 0xbd, 0x1e, 0x73, 0xae, 0x5b, 0x9d, 0xf9, 0x11, 0xd1, 0xc0, 0x99, 0xd9, 0x6e, 0x88, 0xb8, - 0x7b, 0x1b, 0xe8, 0xc3, 0x50, 0x8d, 0x08, 0x9b, 0x95, 0x58, 0x84, 0xce, 0x1d, 0xd1, 0xf2, 0xa0, - 0xb5, 0x69, 0xde, 0xac, 0x96, 0x23, 0xa2, 0x20, 0xc6, 0x8a, 0x22, 0xba, 0x05, 0x03, 0x2d, 0x27, - 0x71, 0x37, 0x45, 0xc0, 0xdc, 0x91, 0xed, 0xe4, 0x8a, 0x38, 0xbb, 0xd6, 0x30, 0x42, 0xec, 0x39, - 0x11, 0x2c, 0xa9, 0x51, 0xcd, 0xca, 0x0d, 0x9b, 0xad, 0x30, 0x20, 0x41, 0x22, 0x59, 0xfe, 0x08, - 0xbf, 0x7b, 0x90, 0xa5, 0xd8, 0xc0, 0x40, 0x2b, 0x70, 0x8a, 0xd9, 0xe1, 0x6e, 0x78, 0xc9, 0x66, - 0xd8, 0x4e, 0xe4, 0xb1, 0x52, 0xf0, 0x7e, 0x75, 0xfb, 0xb4, 0x98, 0x83, 0x83, 0x73, 0x6b, 0x66, - 0x85, 0xd5, 0xe8, 0xdd, 0x09, 0xab, 0x13, 0x07, 0x0b, 0xab, 0xb3, 0xef, 0x85, 0xb1, 0x0e, 0xa6, - 0x71, 0x28, 0x63, 0xdb, 0x1c, 0x3c, 0x94, 0xbf, 0x3d, 0x0f, 0x65, 0x72, 0xfb, 0xe7, 0x19, 0x9f, - 0x6b, 0xe3, 0xf8, 0xd1, 0x83, 0xf9, 0xd6, 0x81, 0x32, 0x09, 0xb6, 0x85, 0xb4, 0xba, 0x78, 0xb4, - 0x55, 0x72, 0x21, 0xd8, 0xe6, 0xdc, 0x85, 0xd9, 0xa8, 0x2e, 0x04, 0xdb, 0x98, 0xb6, 0x8d, 0xbe, - 0x68, 0xa5, 0xd4, 0x67, 0x6e, 0xf4, 0xfd, 0xe0, 0xb1, 0x9c, 0xb7, 0x7a, 0xd6, 0xa8, 0xed, 0x7f, - 0x5f, 0x82, 0x73, 0x07, 0x35, 0xd2, 0xc3, 0xf0, 0x3d, 0x0e, 0xfd, 0x31, 0xf3, 0xa2, 0x10, 0xec, - 0x7f, 0x90, 0xee, 0x0a, 0xee, 0x57, 0xf1, 0x0a, 0x16, 0x20, 0xe4, 0x43, 0xb9, 0xe9, 0xb4, 0x84, - 0x2d, 0x70, 0xe1, 0xa8, 0xb1, 0x69, 0xf4, 0xbf, 0xe3, 0x2f, 0x39, 0x2d, 0xbe, 0x3c, 0x8d, 0x02, - 0x4c, 0xc9, 0xa0, 0x04, 0x2a, 0x4e, 0x14, 0x39, 0xf2, 0xca, 0xfe, 0x4a, 0x31, 0xf4, 0xa6, 0x69, - 0x93, 0xfc, 0xc6, 0x33, 0x55, 0x84, 0x39, 0x31, 0xfb, 0xb3, 0x03, 0xa9, 0x40, 0x26, 0xe6, 0x87, - 0x11, 0x43, 0xbf, 0x30, 0x01, 0x5a, 0x45, 0x87, 0x04, 0xf2, 0x48, 0x61, 0x76, 0xba, 0x16, 0xf9, - 0x16, 0x04, 0x29, 0xf4, 0x19, 0x8b, 0x65, 0x35, 0x90, 0xd1, 0x61, 0xe2, 0x4c, 0x7b, 0x3c, 0x49, - 0x16, 0xcc, 0x5c, 0x09, 0xb2, 0x10, 0x9b, 0xd4, 0x45, 0x76, 0x12, 0xa6, 0xcb, 0x77, 0x66, 0x27, - 0x61, 0xba, 0xb9, 0x84, 0xa3, 0x9d, 0x1c, 0x7f, 0x8b, 0x02, 0x22, 0xe3, 0x7b, 0xf0, 0xb0, 0xf8, - 0xaa, 0x05, 0x63, 0x5e, 0xf6, 0xe2, 0x5c, 0x9c, 0x00, 0x6f, 0x14, 0x63, 0xaf, 0xeb, 0xbc, 0x97, - 0x57, 0x8a, 0x43, 0x07, 0x08, 0x77, 0x76, 0x06, 0xd5, 0xa1, 0xcf, 0x0b, 0x36, 0x42, 0xa1, 0x2e, - 0xcd, 0x1c, 0xad, 0x53, 0x0b, 0xc1, 0x46, 0xa8, 0x77, 0x33, 0xfd, 0x87, 0x59, 0xeb, 0x68, 0x11, - 0x4e, 0xc9, 0x58, 0x96, 0x4b, 0x5e, 0x9c, 0x84, 0xd1, 0xee, 0xa2, 0xd7, 0xf4, 0x12, 0xa6, 0xea, - 0x94, 0x67, 0xc6, 0xa9, 0x24, 0xc2, 0x39, 0x70, 0x9c, 0x5b, 0x0b, 0xbd, 0x06, 0x03, 0xf2, 0xb2, - 0xba, 0x5a, 0xc4, 0x69, 0xba, 0x73, 0xfd, 0xab, 0xc5, 0xb4, 0x2a, 0x6e, 0xab, 0x25, 0x41, 0xfb, - 0xf5, 0x41, 0xe8, 0xbc, 0x53, 0x4f, 0x5f, 0xa0, 0x5b, 0xf7, 0xfa, 0x02, 0x9d, 0x1e, 0x8d, 0x62, - 0x7d, 0xf7, 0x5d, 0xc0, 0xda, 0x16, 0x54, 0xf5, 0xbd, 0xe6, 0x6e, 0xe0, 0x62, 0x46, 0x03, 0x45, - 0xd0, 0xbf, 0x49, 0x1c, 0x3f, 0xd9, 0x2c, 0xe6, 0x0a, 0xe6, 0x12, 0x6b, 0x2b, 0x1b, 0x80, 0xc6, - 0x4b, 0xb1, 0xa0, 0x84, 0x76, 0x60, 0x60, 0x93, 0x2f, 0x00, 0x71, 0x5a, 0x59, 0x3a, 0xea, 0xe0, - 0xa6, 0x56, 0x95, 0x9e, 0x6e, 0x51, 0x80, 0x25, 0x39, 0xe6, 0xac, 0x65, 0xb8, 0x93, 0xf0, 0xad, - 0x5b, 0x5c, 0xec, 0x5d, 0xef, 0xbe, 0x24, 0x1f, 0x82, 0xa1, 0x88, 0xb8, 0x61, 0xe0, 0x7a, 0x3e, - 0xa9, 0x4f, 0xcb, 0xeb, 0x95, 0xc3, 0x84, 0x5c, 0x31, 0xeb, 0x05, 0x36, 0xda, 0xc0, 0xa9, 0x16, - 0xd1, 0xa7, 0x2d, 0x18, 0x51, 0x61, 0xd8, 0x74, 0x42, 0x88, 0x30, 0xa3, 0x2f, 0x16, 0x14, 0xf4, - 0xcd, 0xda, 0x9c, 0x41, 0xb7, 0xf7, 0x26, 0x46, 0xd2, 0x65, 0x38, 0x43, 0x17, 0xbd, 0x04, 0x10, - 0xae, 0x73, 0x8f, 0xac, 0xe9, 0x44, 0xd8, 0xd4, 0x0f, 0xf3, 0xa9, 0x23, 0x3c, 0x74, 0x53, 0xb6, - 0x80, 0x8d, 0xd6, 0xd0, 0x15, 0x00, 0xbe, 0x6d, 0xd6, 0x76, 0x5b, 0xf2, 0x48, 0x23, 0x63, 0xe6, - 0x60, 0x55, 0x41, 0xee, 0xec, 0x4d, 0x74, 0xda, 0x38, 0x99, 0xdb, 0x89, 0x51, 0x1d, 0xfd, 0x2c, - 0x0c, 0xc4, 0xed, 0x66, 0xd3, 0x51, 0x16, 0xf7, 0x02, 0x83, 0x41, 0x79, 0xbb, 0x06, 0x2b, 0xe2, - 0x05, 0x58, 0x52, 0x44, 0x37, 0x29, 0x53, 0x8d, 0x85, 0xf1, 0x95, 0xed, 0x22, 0xae, 0x13, 0x70, - 0xcb, 0xd3, 0x3b, 0xa5, 0x8a, 0x8f, 0x73, 0x70, 0xee, 0xec, 0x4d, 0x3c, 0x94, 0x2e, 0x5f, 0x0c, - 0x45, 0x78, 0x66, 0x6e, 0x9b, 0xe8, 0xb2, 0xcc, 0xca, 0x44, 0x3f, 0x5b, 0x26, 0x0b, 0x79, 0x52, - 0x67, 0x65, 0x62, 0xc5, 0xdd, 0xc7, 0xcc, 0xac, 0x8c, 0x96, 0xe0, 0xa4, 0x1b, 0x06, 0x49, 0x14, - 0xfa, 0x3e, 0xcf, 0x4a, 0xc6, 0x4f, 0x97, 0xdc, 0x22, 0xff, 0x56, 0xd1, 0xed, 0x93, 0xb3, 0x9d, - 0x28, 0x38, 0xaf, 0x9e, 0x1d, 0xa4, 0x6f, 0xc7, 0xc4, 0xe0, 0x3c, 0x0b, 0x43, 0x64, 0x27, 0x21, - 0x51, 0xe0, 0xf8, 0xd7, 0xf0, 0xa2, 0xb4, 0x45, 0xb3, 0x3d, 0x70, 0xc1, 0x28, 0xc7, 0x29, 0x2c, - 0x64, 0x2b, 0x93, 0x8a, 0x11, 0x72, 0xcc, 0x4d, 0x2a, 0xd2, 0x80, 0x62, 0x7f, 0xa3, 0x9c, 0x52, - 0xc8, 0xee, 0xcb, 0x5d, 0x1c, 0xcb, 0x6d, 0x23, 0x93, 0x00, 0x31, 0x80, 0x38, 0x68, 0x14, 0x49, - 0x59, 0xe5, 0xb6, 0x59, 0x36, 0x09, 0xe1, 0x34, 0x5d, 0xb4, 0x05, 0x95, 0xcd, 0x30, 0x4e, 0xe4, - 0xf1, 0xe3, 0x88, 0x27, 0x9d, 0x4b, 0x61, 0x9c, 0x30, 0x2d, 0x42, 0x7d, 0x36, 0x2d, 0x89, 0x31, - 0xa7, 0x41, 0xcf, 0xa0, 0xf1, 0xa6, 0x13, 0xd5, 0xe3, 0x59, 0x96, 0x20, 0xa0, 0x8f, 0xa9, 0x0f, - 0x4a, 0x59, 0x5c, 0xd5, 0x20, 0x6c, 0xe2, 0xd9, 0x7f, 0x6e, 0xa5, 0x2e, 0x2c, 0x6e, 0x30, 0x6f, - 0xef, 0x6d, 0x12, 0x50, 0x6e, 0x60, 0xfa, 0x97, 0xfd, 0x64, 0x26, 0x76, 0xf6, 0x6d, 0xdd, 0x72, - 0xf5, 0xdd, 0xa2, 0x2d, 0x4c, 0xb2, 0x26, 0x0c, 0x57, 0xb4, 0x8f, 0x59, 0xe9, 0x20, 0xe8, 0x52, - 0x11, 0xe7, 0x12, 0x33, 0x11, 0xc0, 0x81, 0xf1, 0xd4, 0xf6, 0x17, 0x2d, 0x18, 0x98, 0x71, 0xdc, - 0xad, 0x70, 0x63, 0x03, 0x3d, 0x05, 0xd5, 0x7a, 0x3b, 0x32, 0xe3, 0xb1, 0x95, 0x65, 0x63, 0x4e, - 0x94, 0x63, 0x85, 0x41, 0x97, 0xfe, 0x86, 0xe3, 0xca, 0x74, 0x00, 0x65, 0xbe, 0xf4, 0x2f, 0xb2, - 0x12, 0x2c, 0x20, 0x74, 0xf8, 0x9b, 0xce, 0x8e, 0xac, 0x9c, 0xbd, 0x2d, 0x59, 0xd2, 0x20, 0x6c, - 0xe2, 0xd9, 0xff, 0xda, 0x82, 0xf1, 0x19, 0x27, 0xf6, 0xdc, 0xe9, 0x76, 0xb2, 0x39, 0xe3, 0x25, - 0xeb, 0x6d, 0x77, 0x8b, 0x24, 0x3c, 0x6d, 0x04, 0xed, 0x65, 0x3b, 0xa6, 0x3b, 0x50, 0x1d, 0x07, - 0x55, 0x2f, 0xaf, 0x89, 0x72, 0xac, 0x30, 0xd0, 0x6b, 0x30, 0xd8, 0x72, 0xe2, 0xf8, 0x56, 0x18, - 0xd5, 0x31, 0xd9, 0x28, 0x26, 0xb1, 0xcc, 0x2a, 0x71, 0x23, 0x92, 0x60, 0xb2, 0x21, 0x3c, 0x0b, - 0x74, 0xfb, 0xd8, 0x24, 0x66, 0xff, 0x92, 0x05, 0xa7, 0x66, 0x88, 0x13, 0x91, 0x88, 0xe5, 0xa1, - 0x51, 0x1f, 0x82, 0x5e, 0x85, 0x6a, 0x42, 0x4b, 0x68, 0x8f, 0xac, 0x62, 0x7b, 0xc4, 0x7c, 0x02, - 0xd6, 0x44, 0xe3, 0x58, 0x91, 0xb1, 0x3f, 0x6f, 0xc1, 0x99, 0xbc, 0xbe, 0xcc, 0xfa, 0x61, 0xbb, - 0x7e, 0x3f, 0x3a, 0xf4, 0x77, 0x2c, 0x18, 0x62, 0xf7, 0xac, 0x73, 0x24, 0x71, 0x3c, 0xbf, 0x23, - 0x07, 0x9e, 0xd5, 0x63, 0x0e, 0xbc, 0x73, 0xd0, 0xb7, 0x19, 0x36, 0x49, 0xd6, 0x47, 0xe0, 0x52, - 0xd8, 0x24, 0x98, 0x41, 0xd0, 0x33, 0x74, 0x11, 0x7a, 0x41, 0xe2, 0xd0, 0xed, 0x28, 0x6d, 0xdf, - 0xa3, 0x7c, 0x01, 0xaa, 0x62, 0x6c, 0xe2, 0xd8, 0xff, 0xaa, 0x06, 0x03, 0xc2, 0xa1, 0xa5, 0xe7, - 0x34, 0x26, 0xd2, 0x44, 0x51, 0xea, 0x6a, 0xa2, 0x88, 0xa1, 0xdf, 0x65, 0xc9, 0x38, 0x85, 0x26, - 0x7c, 0xa5, 0x10, 0x0f, 0x28, 0x9e, 0xdf, 0x53, 0x77, 0x8b, 0xff, 0xc7, 0x82, 0x14, 0xfa, 0x82, - 0x05, 0xa3, 0x6e, 0x18, 0x04, 0xc4, 0xd5, 0x6a, 0x5a, 0x5f, 0x11, 0x8e, 0x2e, 0xb3, 0xe9, 0x46, - 0xf5, 0x25, 0x5f, 0x06, 0x80, 0xb3, 0xe4, 0xd1, 0x0b, 0x30, 0xcc, 0xc7, 0xec, 0x7a, 0xca, 0x60, - 0xaf, 0x53, 0xa3, 0x99, 0x40, 0x9c, 0xc6, 0x45, 0x93, 0xfc, 0xe2, 0x43, 0x24, 0x21, 0xeb, 0xd7, - 0x76, 0x4d, 0x23, 0xfd, 0x98, 0x81, 0x81, 0x22, 0x40, 0x11, 0xd9, 0x88, 0x48, 0xbc, 0x29, 0x1c, - 0x7e, 0x98, 0x8a, 0x38, 0x70, 0x77, 0x09, 0x08, 0x70, 0x47, 0x4b, 0x38, 0xa7, 0x75, 0xb4, 0x25, - 0xce, 0xc8, 0xd5, 0x22, 0xf8, 0xb9, 0x98, 0xe6, 0xae, 0x47, 0xe5, 0x09, 0xa8, 0x30, 0xd1, 0xc5, - 0x54, 0xd3, 0x32, 0x0f, 0x7a, 0x63, 0x82, 0x0d, 0xf3, 0x72, 0x34, 0x07, 0x27, 0x32, 0x89, 0xdd, - 0x62, 0x61, 0x58, 0x57, 0x01, 0x4e, 0x99, 0x94, 0x70, 0x31, 0xee, 0xa8, 0x61, 0xda, 0x4f, 0x06, - 0x0f, 0xb0, 0x9f, 0xec, 0x2a, 0xb7, 0x52, 0x6e, 0xf2, 0x7e, 0xb1, 0x90, 0x01, 0xe8, 0xc9, 0x87, - 0xf4, 0x73, 0x19, 0x1f, 0xd2, 0x61, 0xd6, 0x81, 0xeb, 0xc5, 0x74, 0xe0, 0xf0, 0x0e, 0xa3, 0xf7, - 0xd3, 0x01, 0xf4, 0x7f, 0x59, 0x20, 0xe7, 0x75, 0xd6, 0x71, 0x37, 0x09, 0x5d, 0x32, 0xe8, 0x3d, - 0x30, 0xa2, 0xac, 0x00, 0x5c, 0x25, 0xb2, 0xd8, 0xaa, 0x51, 0xde, 0x00, 0x38, 0x05, 0xc5, 0x19, - 0x6c, 0x34, 0x05, 0x35, 0x3a, 0x4e, 0xbc, 0x2a, 0x97, 0xfb, 0xca, 0xd2, 0x30, 0xbd, 0xb2, 0x20, - 0x6a, 0x69, 0x1c, 0x14, 0xc2, 0x98, 0xef, 0xc4, 0x09, 0xeb, 0xc1, 0xea, 0x6e, 0xe0, 0xde, 0x65, - 0xfa, 0x0f, 0x16, 0x45, 0xb3, 0x98, 0x6d, 0x08, 0x77, 0xb6, 0x6d, 0xff, 0x87, 0x0a, 0x0c, 0xa7, - 0x38, 0xe3, 0x21, 0x15, 0x86, 0xa7, 0xa0, 0x2a, 0x65, 0x78, 0x36, 0xcf, 0x91, 0x12, 0xf4, 0x0a, - 0x83, 0x0a, 0xad, 0x75, 0x2d, 0x55, 0xb3, 0x0a, 0x8e, 0x21, 0x70, 0xb1, 0x89, 0xc7, 0x98, 0x72, - 0xe2, 0xc7, 0xb3, 0xbe, 0x47, 0x82, 0x84, 0x77, 0xb3, 0x18, 0xa6, 0xbc, 0xb6, 0xb8, 0x6a, 0x36, - 0xaa, 0x99, 0x72, 0x06, 0x80, 0xb3, 0xe4, 0xd1, 0x27, 0x2d, 0x18, 0x76, 0x6e, 0xc5, 0x3a, 0x63, - 0xb4, 0xf0, 0x16, 0x3d, 0xa2, 0x90, 0x4a, 0x25, 0xa1, 0xe6, 0x56, 0xeb, 0x54, 0x11, 0x4e, 0x13, - 0x45, 0x6f, 0x58, 0x80, 0xc8, 0x0e, 0x71, 0xa5, 0x3f, 0xab, 0xe8, 0x4b, 0x7f, 0x11, 0x87, 0xe5, - 0x0b, 0x1d, 0xed, 0x72, 0xae, 0xde, 0x59, 0x8e, 0x73, 0xfa, 0x80, 0x2e, 0x03, 0xaa, 0x7b, 0xb1, - 0xb3, 0xee, 0x93, 0xd9, 0xb0, 0x29, 0x23, 0x3f, 0xc5, 0xe5, 0xeb, 0x59, 0x31, 0xce, 0x68, 0xae, - 0x03, 0x03, 0xe7, 0xd4, 0x62, 0xab, 0x2c, 0x0a, 0x77, 0x76, 0xaf, 0x45, 0x3e, 0x93, 0x12, 0xe6, - 0x2a, 0x13, 0xe5, 0x58, 0x61, 0xd8, 0x7f, 0x51, 0x56, 0x5b, 0x59, 0x3b, 0x6f, 0x3b, 0x86, 0x13, - 0xa9, 0x75, 0xf7, 0x4e, 0xa4, 0xda, 0x09, 0xa6, 0x33, 0x9e, 0x39, 0x15, 0xfe, 0x58, 0xba, 0x4f, - 0xe1, 0x8f, 0x3f, 0x6f, 0xa5, 0x72, 0x89, 0x0d, 0x9e, 0x7f, 0xa9, 0x58, 0xc7, 0xf1, 0x49, 0xee, - 0xa0, 0x93, 0x91, 0x2b, 0x19, 0xbf, 0xac, 0xa7, 0xa0, 0xba, 0xe1, 0x3b, 0x2c, 0x03, 0x06, 0xdb, - 0xa8, 0x86, 0xf3, 0xd0, 0x45, 0x51, 0x8e, 0x15, 0x06, 0xe5, 0xfa, 0x46, 0xa3, 0x87, 0xe2, 0xda, - 0xff, 0xa9, 0x0c, 0x83, 0x86, 0xc4, 0xcf, 0x55, 0xdf, 0xac, 0x07, 0x4c, 0x7d, 0x2b, 0x1d, 0x42, - 0x7d, 0xfb, 0x39, 0xa8, 0xb9, 0x52, 0x1a, 0x15, 0x93, 0x1b, 0x3d, 0x2b, 0xe3, 0xb4, 0x40, 0x52, - 0x45, 0x58, 0xd3, 0x44, 0xf3, 0xa9, 0x10, 0xbb, 0x94, 0x5d, 0x20, 0x2f, 0x06, 0x4e, 0x48, 0xb4, - 0xce, 0x3a, 0xd9, 0x7b, 0xea, 0xca, 0xc1, 0xf7, 0xd4, 0xf6, 0x77, 0x2c, 0x35, 0xb9, 0xf7, 0x20, - 0x97, 0xca, 0xcd, 0x74, 0x2e, 0x95, 0x0b, 0x85, 0x0c, 0x73, 0x97, 0x24, 0x2a, 0x57, 0x61, 0x60, - 0x36, 0x6c, 0x36, 0x9d, 0xa0, 0x8e, 0x7e, 0x0c, 0x06, 0x5c, 0xfe, 0x53, 0xd8, 0xd0, 0xd8, 0x4d, - 0xac, 0x80, 0x62, 0x09, 0x43, 0x8f, 0x40, 0x9f, 0x13, 0x35, 0xa4, 0xdd, 0x8c, 0x79, 0x4c, 0x4d, - 0x47, 0x8d, 0x18, 0xb3, 0x52, 0xfb, 0x9f, 0xf5, 0x01, 0x73, 0x54, 0x70, 0x22, 0x52, 0x5f, 0x0b, - 0x59, 0x4a, 0xd3, 0x63, 0xbd, 0xbf, 0xd4, 0x87, 0xba, 0x07, 0xf9, 0x0e, 0xd3, 0xb8, 0xc7, 0x2a, - 0xdf, 0xe3, 0x7b, 0xac, 0x2e, 0x57, 0x93, 0x7d, 0x0f, 0xd0, 0xd5, 0xa4, 0xfd, 0x59, 0x0b, 0x90, - 0xf2, 0x6e, 0xd1, 0xbe, 0x03, 0x53, 0x50, 0x53, 0x7e, 0x2e, 0x42, 0x01, 0xd4, 0x2c, 0x42, 0x02, - 0xb0, 0xc6, 0xe9, 0xe1, 0x24, 0xff, 0xb8, 0xe4, 0xdf, 0xe5, 0xb4, 0xe3, 0x38, 0xe3, 0xfa, 0x82, - 0x9d, 0xdb, 0xbf, 0x5b, 0x82, 0x87, 0xb8, 0xea, 0xb0, 0xe4, 0x04, 0x4e, 0x83, 0x34, 0x69, 0xaf, - 0x7a, 0xf5, 0x06, 0x71, 0xe9, 0x11, 0xd2, 0x93, 0x8e, 0xe0, 0x47, 0xdd, 0xbb, 0x7c, 0xcf, 0xf1, - 0x5d, 0xb6, 0x10, 0x78, 0x09, 0x66, 0x8d, 0xa3, 0x18, 0xaa, 0xf2, 0xe1, 0x10, 0xc1, 0x8b, 0x0b, - 0x22, 0xa4, 0xd8, 0x92, 0x90, 0xb2, 0x04, 0x2b, 0x42, 0x54, 0x94, 0xfa, 0xa1, 0xbb, 0x85, 0x49, - 0x2b, 0xcc, 0x8a, 0xd2, 0x45, 0x51, 0x8e, 0x15, 0x86, 0xdd, 0x84, 0x51, 0x39, 0x86, 0xad, 0x2b, - 0x64, 0x17, 0x93, 0x0d, 0x2a, 0x7f, 0x5c, 0x59, 0x64, 0xbc, 0x65, 0xa2, 0xe4, 0xcf, 0xac, 0x09, - 0xc4, 0x69, 0x5c, 0x99, 0xe5, 0xb4, 0x94, 0x9f, 0xe5, 0xd4, 0xfe, 0x5d, 0x0b, 0xb2, 0x02, 0xd0, - 0xc8, 0xe9, 0x68, 0xed, 0x9b, 0xd3, 0xf1, 0x10, 0x59, 0x11, 0x7f, 0x06, 0x06, 0x9d, 0x84, 0x6a, - 0x38, 0xdc, 0x1a, 0x51, 0xbe, 0xbb, 0x0b, 0xab, 0xa5, 0xb0, 0xee, 0x6d, 0x78, 0xcc, 0x0a, 0x61, - 0x36, 0x67, 0xff, 0x55, 0x1f, 0x8c, 0x75, 0x44, 0x69, 0xa1, 0xe7, 0x61, 0x48, 0x0d, 0x85, 0xb4, - 0xf3, 0xd5, 0x4c, 0xd7, 0x4a, 0x0d, 0xc3, 0x29, 0xcc, 0x1e, 0xf6, 0xc3, 0x02, 0x9c, 0x8c, 0xc8, - 0xab, 0x6d, 0xd2, 0x26, 0xd3, 0x1b, 0x09, 0x89, 0x56, 0x89, 0x1b, 0x06, 0x75, 0x9e, 0x79, 0xb4, - 0x3c, 0xf3, 0xf0, 0xed, 0xbd, 0x89, 0x93, 0xb8, 0x13, 0x8c, 0xf3, 0xea, 0xa0, 0x16, 0x0c, 0xfb, - 0xa6, 0x82, 0x2a, 0xce, 0x45, 0x77, 0xa5, 0xdb, 0xaa, 0x25, 0x91, 0x2a, 0xc6, 0x69, 0x02, 0x69, - 0x2d, 0xb7, 0x72, 0x9f, 0xb4, 0xdc, 0x4f, 0x68, 0x2d, 0x97, 0x7b, 0x56, 0x7c, 0xa0, 0xe0, 0x28, - 0xbd, 0x5e, 0xd4, 0xdc, 0xa3, 0x28, 0xae, 0x2f, 0x42, 0x55, 0x7a, 0x9d, 0xf5, 0xe4, 0xad, 0x65, - 0xb6, 0xd3, 0x85, 0x81, 0x3e, 0x01, 0x3f, 0x7a, 0x21, 0x8a, 0x8c, 0xc1, 0xbc, 0x1a, 0x26, 0xd3, - 0xbe, 0x1f, 0xde, 0xa2, 0x3a, 0xc1, 0xb5, 0x98, 0x08, 0xc3, 0x93, 0x7d, 0xa7, 0x04, 0x39, 0x67, - 0x38, 0xba, 0x1f, 0xb5, 0x22, 0x92, 0xda, 0x8f, 0x87, 0x53, 0x46, 0xd0, 0x0e, 0xf7, 0xcc, 0xe3, - 0x22, 0xf7, 0xfd, 0x45, 0x9f, 0x41, 0xb5, 0xb3, 0x9e, 0x62, 0x47, 0xca, 0x61, 0xef, 0x3c, 0x80, - 0xd6, 0x1f, 0x45, 0xe8, 0x88, 0xba, 0xf8, 0xd7, 0x6a, 0x26, 0x36, 0xb0, 0xd0, 0x73, 0x30, 0xe8, - 0x05, 0x71, 0xe2, 0xf8, 0xfe, 0x25, 0x2f, 0x48, 0x84, 0x6d, 0x55, 0xe9, 0x16, 0x0b, 0x1a, 0x84, - 0x4d, 0xbc, 0xb3, 0xef, 0x34, 0xe6, 0xef, 0x30, 0xf3, 0xbe, 0x09, 0x67, 0xe6, 0xbd, 0x44, 0x05, - 0x3c, 0xa9, 0xf5, 0x46, 0xd5, 0x43, 0x15, 0xc0, 0x67, 0x75, 0x0d, 0xe0, 0x33, 0x02, 0x8e, 0x4a, - 0xe9, 0xf8, 0xa8, 0x6c, 0xc0, 0x91, 0xfd, 0x3c, 0x9c, 0x9a, 0xf7, 0x92, 0x8b, 0x9e, 0x4f, 0x0e, - 0x49, 0xc4, 0xfe, 0x9d, 0x7e, 0x18, 0x32, 0x43, 0x77, 0x0f, 0x13, 0x83, 0xf8, 0x79, 0xaa, 0x01, - 0x8a, 0xaf, 0xf3, 0xd4, 0xb5, 0xe9, 0x8d, 0x23, 0xc7, 0x11, 0xe7, 0x8f, 0x98, 0xa1, 0x04, 0x6a, - 0x9a, 0xd8, 0xec, 0x00, 0xba, 0x05, 0x95, 0x0d, 0x16, 0x10, 0x53, 0x2e, 0xc2, 0xb7, 0x24, 0x6f, - 0x44, 0xf5, 0x76, 0xe4, 0x21, 0x35, 0x9c, 0x1e, 0x15, 0xdc, 0x51, 0x3a, 0xca, 0xd2, 0x70, 0x7c, - 0x16, 0xf1, 0x95, 0x0a, 0xa3, 0x9b, 0x48, 0xa8, 0xdc, 0x85, 0x48, 0x48, 0x31, 0xe8, 0xfe, 0xfb, - 0xc4, 0xa0, 0x59, 0x70, 0x53, 0xb2, 0xc9, 0xd4, 0x4a, 0x11, 0xa9, 0x31, 0xc0, 0x06, 0xc1, 0x08, - 0x6e, 0x4a, 0x81, 0x71, 0x16, 0x1f, 0x7d, 0x54, 0xb1, 0xf8, 0x6a, 0x11, 0x66, 0x69, 0x73, 0x45, - 0x1f, 0x37, 0x77, 0xff, 0x6c, 0x09, 0x46, 0xe6, 0x83, 0xf6, 0xca, 0xfc, 0x4a, 0x7b, 0xdd, 0xf7, - 0xdc, 0x2b, 0x64, 0x97, 0xb2, 0xf0, 0x2d, 0xb2, 0xbb, 0x30, 0x27, 0x76, 0x90, 0x5a, 0x33, 0x57, - 0x68, 0x21, 0xe6, 0x30, 0xca, 0x8c, 0x36, 0xbc, 0xa0, 0x41, 0xa2, 0x56, 0xe4, 0x09, 0x8b, 0xb1, - 0xc1, 0x8c, 0x2e, 0x6a, 0x10, 0x36, 0xf1, 0x68, 0xdb, 0xe1, 0xad, 0x80, 0x44, 0x59, 0xfd, 0x7a, - 0x99, 0x16, 0x62, 0x0e, 0xa3, 0x48, 0x49, 0xd4, 0x16, 0x06, 0x19, 0x03, 0x69, 0x8d, 0x16, 0x62, - 0x0e, 0xa3, 0x3b, 0x3d, 0x6e, 0xaf, 0x33, 0xd7, 0x9d, 0x4c, 0x58, 0xc8, 0x2a, 0x2f, 0xc6, 0x12, - 0x4e, 0x51, 0xb7, 0xc8, 0xee, 0x1c, 0x3d, 0x8c, 0x67, 0x22, 0xdd, 0xae, 0xf0, 0x62, 0x2c, 0xe1, - 0x2c, 0x37, 0x6a, 0x7a, 0x38, 0x7e, 0xe0, 0x72, 0xa3, 0xa6, 0xbb, 0xdf, 0xe5, 0x58, 0xff, 0x6b, - 0x16, 0x0c, 0x99, 0x0e, 0x77, 0xa8, 0x91, 0xd1, 0x85, 0x97, 0x3b, 0x52, 0x6b, 0xbf, 0x3b, 0xef, - 0xd9, 0xc9, 0x86, 0x97, 0x84, 0xad, 0xf8, 0x69, 0x12, 0x34, 0xbc, 0x80, 0x30, 0x87, 0x08, 0xee, - 0xa8, 0x97, 0xf2, 0xe6, 0x9b, 0x0d, 0xeb, 0xe4, 0x2e, 0x94, 0x69, 0xfb, 0x06, 0x8c, 0x75, 0x84, - 0x37, 0xf6, 0xa0, 0x82, 0x1c, 0x18, 0x5c, 0x6e, 0x63, 0x18, 0xa4, 0x0d, 0xcb, 0xfc, 0x5c, 0xb3, - 0x30, 0xc6, 0x37, 0x12, 0xa5, 0xb4, 0xea, 0x6e, 0x92, 0xa6, 0x0a, 0x59, 0x65, 0xd7, 0x13, 0xd7, - 0xb3, 0x40, 0xdc, 0x89, 0x6f, 0x7f, 0xce, 0x82, 0xe1, 0x54, 0xc4, 0x69, 0x41, 0xca, 0x12, 0xdb, - 0x69, 0x21, 0xf3, 0xff, 0x64, 0x4e, 0xf0, 0x65, 0x26, 0x4c, 0xf5, 0x4e, 0xd3, 0x20, 0x6c, 0xe2, - 0xd9, 0x5f, 0x2c, 0x41, 0x55, 0xfa, 0xd0, 0xf4, 0xd0, 0x95, 0xcf, 0x58, 0x30, 0xac, 0xae, 0x84, - 0x98, 0x0d, 0xaf, 0x54, 0x44, 0x48, 0x0d, 0xed, 0x81, 0xb2, 0x02, 0x04, 0x1b, 0xa1, 0xd6, 0xdc, - 0xb1, 0x49, 0x0c, 0xa7, 0x69, 0xa3, 0xeb, 0x00, 0xf1, 0x6e, 0x9c, 0x90, 0xa6, 0x61, 0x4d, 0xb4, - 0x8d, 0x1d, 0x37, 0xe9, 0x86, 0x11, 0xa1, 0xfb, 0xeb, 0x6a, 0x58, 0x27, 0xab, 0x0a, 0x53, 0xab, - 0x50, 0xba, 0x0c, 0x1b, 0x2d, 0xd9, 0xff, 0xa4, 0x04, 0x27, 0xb2, 0x5d, 0x42, 0x1f, 0x80, 0x21, - 0x49, 0xdd, 0x38, 0x75, 0x4a, 0x0f, 0xa0, 0x21, 0x6c, 0xc0, 0xee, 0xec, 0x4d, 0x4c, 0x74, 0x3e, - 0x61, 0x3a, 0x69, 0xa2, 0xe0, 0x54, 0x63, 0xfc, 0x5e, 0x4e, 0x5c, 0x20, 0xcf, 0xec, 0x4e, 0xb7, - 0x5a, 0xe2, 0x72, 0xcd, 0xb8, 0x97, 0x33, 0xa1, 0x38, 0x83, 0x8d, 0x56, 0xe0, 0x94, 0x51, 0x72, - 0x95, 0x78, 0x8d, 0xcd, 0xf5, 0x30, 0x92, 0x27, 0xb0, 0x47, 0xb4, 0x6b, 0x5f, 0x27, 0x0e, 0xce, - 0xad, 0x49, 0xa5, 0xbd, 0xeb, 0xb4, 0x1c, 0xd7, 0x4b, 0x76, 0x85, 0x79, 0x54, 0xf1, 0xa6, 0x59, - 0x51, 0x8e, 0x15, 0x86, 0xbd, 0x04, 0x7d, 0x3d, 0xae, 0xa0, 0x9e, 0x34, 0xff, 0x17, 0xa1, 0x4a, - 0x9b, 0x93, 0xea, 0x5d, 0x11, 0x4d, 0x86, 0x50, 0x95, 0x0f, 0x42, 0x21, 0x1b, 0xca, 0x9e, 0x23, - 0xaf, 0x3e, 0xd5, 0x67, 0x2d, 0xc4, 0x71, 0x9b, 0x1d, 0xa6, 0x29, 0x10, 0x3d, 0x0e, 0x65, 0xb2, - 0xd3, 0xca, 0xde, 0x71, 0x5e, 0xd8, 0x69, 0x79, 0x11, 0x89, 0x29, 0x12, 0xd9, 0x69, 0xa1, 0xb3, - 0x50, 0xf2, 0xea, 0x42, 0x48, 0x81, 0xc0, 0x29, 0x2d, 0xcc, 0xe1, 0x92, 0x57, 0xb7, 0x77, 0xa0, - 0xa6, 0x5e, 0xa0, 0x42, 0x5b, 0x92, 0x77, 0x5b, 0x45, 0x38, 0xbd, 0xc9, 0x76, 0xbb, 0x70, 0xed, - 0x36, 0x80, 0x0e, 0x57, 0x2d, 0x8a, 0xbf, 0x9c, 0x83, 0x3e, 0x37, 0x14, 0x69, 0x01, 0xaa, 0xba, - 0x19, 0xc6, 0xb4, 0x19, 0xc4, 0xbe, 0x01, 0x23, 0x57, 0x82, 0xf0, 0x16, 0x7b, 0x28, 0x82, 0xe5, - 0x45, 0xa4, 0x0d, 0x6f, 0xd0, 0x1f, 0x59, 0x15, 0x81, 0x41, 0x31, 0x87, 0xa9, 0x8c, 0x6d, 0xa5, - 0x6e, 0x19, 0xdb, 0xec, 0x8f, 0x59, 0x30, 0xa4, 0xe2, 0xde, 0xe6, 0xb7, 0xb7, 0x68, 0xbb, 0x8d, - 0x28, 0x6c, 0xb7, 0xb2, 0xed, 0xb2, 0xc7, 0xee, 0x30, 0x87, 0x99, 0x01, 0xa1, 0xa5, 0x03, 0x02, - 0x42, 0xcf, 0x41, 0xdf, 0x96, 0x17, 0xd4, 0xb3, 0x8f, 0x1e, 0x5d, 0xf1, 0x82, 0x3a, 0x66, 0x10, - 0xda, 0x85, 0x13, 0xaa, 0x0b, 0x52, 0x20, 0x3c, 0x0f, 0x43, 0xeb, 0x6d, 0xcf, 0xaf, 0xcb, 0x84, - 0x8f, 0x19, 0x8b, 0xca, 0x8c, 0x01, 0xc3, 0x29, 0x4c, 0x7a, 0xae, 0x5b, 0xf7, 0x02, 0x27, 0xda, - 0x5d, 0xd1, 0x12, 0x48, 0x31, 0xa5, 0x19, 0x05, 0xc1, 0x06, 0x96, 0xfd, 0x7a, 0x19, 0x46, 0xd2, - 0xd1, 0x7f, 0x3d, 0x1c, 0xaf, 0x1e, 0x87, 0x0a, 0x0b, 0x08, 0xcc, 0x4e, 0x2d, 0xcf, 0x91, 0xc8, - 0x61, 0x28, 0x86, 0x7e, 0x9e, 0x16, 0xa5, 0x98, 0x07, 0xc3, 0x54, 0x27, 0x95, 0x1d, 0x86, 0xb9, - 0x06, 0x8a, 0x4c, 0x2c, 0x82, 0x14, 0xfa, 0xa4, 0x05, 0x03, 0x61, 0xcb, 0xcc, 0xf4, 0xf5, 0xfe, - 0x22, 0x23, 0x23, 0x45, 0xb8, 0x94, 0xd0, 0x88, 0xd5, 0xd4, 0xcb, 0xe9, 0x90, 0xa4, 0xcf, 0xbe, - 0x0b, 0x86, 0x4c, 0xcc, 0x83, 0x94, 0xe2, 0xaa, 0xa9, 0x14, 0x7f, 0xc6, 0x5c, 0x14, 0x22, 0xf6, - 0xb3, 0x87, 0xed, 0x76, 0x0d, 0x2a, 0xae, 0xf2, 0x9f, 0xb8, 0xab, 0x34, 0xc1, 0x2a, 0x4f, 0x09, - 0xbb, 0x9b, 0xe2, 0xad, 0xd9, 0xdf, 0xb1, 0x8c, 0xf5, 0x81, 0x49, 0xbc, 0x50, 0x47, 0x11, 0x94, - 0x1b, 0xdb, 0x5b, 0x42, 0x15, 0xbd, 0x5c, 0xd0, 0xf0, 0xce, 0x6f, 0x6f, 0xe9, 0x35, 0x6e, 0x96, - 0x62, 0x4a, 0xac, 0x07, 0x63, 0x61, 0x2a, 0x44, 0xb8, 0x7c, 0x70, 0x88, 0xb0, 0xfd, 0x46, 0x09, - 0xc6, 0x3a, 0x16, 0x15, 0x7a, 0x0d, 0x2a, 0x11, 0xfd, 0x4a, 0xf1, 0x79, 0x8b, 0x85, 0x05, 0xf5, - 0xc6, 0x0b, 0x75, 0x2d, 0x77, 0xd3, 0xe5, 0x98, 0x93, 0x44, 0x97, 0x01, 0x69, 0x2f, 0x1f, 0x65, - 0xa9, 0xe4, 0x9f, 0xac, 0x5c, 0x01, 0xa6, 0x3b, 0x30, 0x70, 0x4e, 0x2d, 0xf4, 0x42, 0xd6, 0xe0, - 0x59, 0x4e, 0x9b, 0xb3, 0xf7, 0xb3, 0x5d, 0xda, 0xbf, 0x55, 0x82, 0xe1, 0x54, 0xe2, 0x35, 0xe4, - 0x43, 0x95, 0xf8, 0xec, 0xae, 0x41, 0x0a, 0x9b, 0xa3, 0xa6, 0x51, 0x57, 0x02, 0xf2, 0x82, 0x68, - 0x17, 0x2b, 0x0a, 0x0f, 0x86, 0x87, 0xc0, 0xf3, 0x30, 0x24, 0x3b, 0xf4, 0x7e, 0xa7, 0xe9, 0x8b, - 0x01, 0x54, 0x6b, 0xf4, 0x82, 0x01, 0xc3, 0x29, 0x4c, 0xfb, 0xf7, 0xca, 0x30, 0xce, 0x2f, 0x67, - 0xea, 0x6a, 0xe5, 0x2d, 0xc9, 0xf3, 0xd6, 0xdf, 0xd0, 0xe9, 0x11, 0xad, 0x22, 0xde, 0x0a, 0xed, - 0x46, 0xa8, 0x27, 0xc7, 0xb6, 0xaf, 0x64, 0x1c, 0xdb, 0xb8, 0xda, 0xdd, 0x38, 0xa6, 0x1e, 0xfd, - 0x60, 0x79, 0xba, 0xfd, 0xc3, 0x12, 0x8c, 0x66, 0x9e, 0x84, 0x41, 0xaf, 0xa7, 0xb3, 0x88, 0x5b, - 0x45, 0xd8, 0xd4, 0xf7, 0x7d, 0x25, 0xe4, 0x70, 0xb9, 0xc4, 0xef, 0xd3, 0x56, 0xb1, 0xbf, 0x5d, - 0x82, 0x91, 0xf4, 0x5b, 0x36, 0x0f, 0xe0, 0x48, 0xbd, 0x1d, 0x6a, 0xec, 0xb9, 0x06, 0xf6, 0x04, - 0x33, 0x37, 0xc9, 0xf3, 0xcc, 0xf8, 0xb2, 0x10, 0x6b, 0xf8, 0x03, 0x91, 0xa2, 0xdd, 0xfe, 0xc7, - 0x16, 0x9c, 0xe6, 0x5f, 0x99, 0x5d, 0x87, 0x7f, 0x33, 0x6f, 0x74, 0x5f, 0x2e, 0xb6, 0x83, 0x99, - 0xb4, 0x9e, 0x07, 0x8d, 0x2f, 0x7b, 0x31, 0x55, 0xf4, 0x36, 0xbd, 0x14, 0x1e, 0xc0, 0xce, 0x1e, - 0x6a, 0x31, 0xd8, 0xdf, 0x2e, 0x83, 0x7e, 0x24, 0x16, 0x79, 0x22, 0xca, 0xb5, 0x90, 0xf4, 0xa6, - 0xab, 0xbb, 0x81, 0xab, 0x9f, 0xa3, 0xad, 0x66, 0x82, 0x5c, 0x7f, 0xd1, 0x82, 0x41, 0x2f, 0xf0, - 0x12, 0xcf, 0x61, 0xc7, 0xe8, 0x62, 0x5e, 0x7a, 0x54, 0xe4, 0x16, 0x78, 0xcb, 0x61, 0x64, 0xde, - 0xe3, 0x28, 0x62, 0xd8, 0xa4, 0x8c, 0x3e, 0x24, 0x7c, 0xcf, 0xcb, 0x85, 0xc5, 0x67, 0x57, 0x33, - 0x0e, 0xe7, 0x2d, 0xaa, 0x78, 0x25, 0x51, 0x41, 0x69, 0x0d, 0x30, 0x6d, 0x4a, 0x65, 0xca, 0x56, - 0xaa, 0x2d, 0x2b, 0xc6, 0x9c, 0x90, 0x1d, 0x03, 0xea, 0x1c, 0x8b, 0x43, 0xfa, 0xf5, 0x4e, 0x41, - 0xcd, 0x69, 0x27, 0x61, 0x93, 0x0e, 0x93, 0xb8, 0x6a, 0xd2, 0x9e, 0xcb, 0x12, 0x80, 0x35, 0x8e, - 0xfd, 0x7a, 0x05, 0x32, 0x61, 0xa7, 0x68, 0xc7, 0x7c, 0xe0, 0xd8, 0x2a, 0xf6, 0x81, 0x63, 0xd5, - 0x99, 0xbc, 0x47, 0x8e, 0x51, 0x03, 0x2a, 0xad, 0x4d, 0x27, 0x96, 0x6a, 0xf5, 0x8b, 0xea, 0x1c, - 0x47, 0x0b, 0xef, 0xec, 0x4d, 0xfc, 0x74, 0x6f, 0x56, 0x57, 0xba, 0x56, 0xa7, 0x78, 0xaa, 0x1c, - 0x4d, 0x9a, 0xb5, 0x81, 0x79, 0xfb, 0x87, 0x79, 0xeb, 0xf2, 0xe3, 0xe2, 0x5d, 0x0a, 0x4c, 0xe2, - 0xb6, 0x9f, 0x88, 0xd5, 0xf0, 0x62, 0x81, 0xbb, 0x8c, 0x37, 0xac, 0x13, 0x26, 0xf0, 0xff, 0xd8, - 0x20, 0x8a, 0x3e, 0x00, 0xb5, 0x38, 0x71, 0xa2, 0xe4, 0x2e, 0x43, 0x9c, 0x75, 0x4a, 0x33, 0xd9, - 0x08, 0xd6, 0xed, 0xa1, 0x97, 0x58, 0xb6, 0x67, 0x2f, 0xde, 0xbc, 0xcb, 0x90, 0x11, 0x99, 0x19, - 0x5a, 0xb4, 0x80, 0x8d, 0xd6, 0xd0, 0x79, 0x00, 0xb6, 0xb6, 0xb9, 0xff, 0x61, 0x95, 0x59, 0x99, - 0x14, 0x2b, 0xc4, 0x0a, 0x82, 0x0d, 0x2c, 0xfb, 0x27, 0x20, 0x9d, 0xf1, 0x03, 0x4d, 0xc8, 0x04, - 0x23, 0xdc, 0x0a, 0xcd, 0x42, 0x3f, 0x52, 0xb9, 0x40, 0x7e, 0xc3, 0x02, 0x33, 0x2d, 0x09, 0x7a, - 0x95, 0xe7, 0x3f, 0xb1, 0x8a, 0xb8, 0x39, 0x34, 0xda, 0x9d, 0x5c, 0x72, 0x5a, 0x99, 0x2b, 0x6c, - 0x99, 0x04, 0xe5, 0xec, 0x3b, 0xa1, 0x2a, 0xa1, 0x87, 0x52, 0xea, 0x3e, 0x0a, 0x27, 0x65, 0x18, - 0xa9, 0xb4, 0x9b, 0x8a, 0x5b, 0xa7, 0x83, 0x4d, 0x3f, 0xd2, 0x9e, 0x53, 0xea, 0x66, 0xcf, 0xe9, - 0xe1, 0x99, 0xeb, 0xdf, 0xb4, 0xe0, 0x5c, 0xb6, 0x03, 0xf1, 0x52, 0x18, 0x78, 0x49, 0x18, 0xad, - 0x92, 0x24, 0xf1, 0x82, 0x06, 0x4b, 0xfb, 0x76, 0xcb, 0x89, 0x64, 0x1a, 0x7e, 0xc6, 0x28, 0x6f, - 0x38, 0x51, 0x80, 0x59, 0x29, 0xda, 0x85, 0x7e, 0xee, 0xa4, 0x26, 0xb4, 0xf5, 0x23, 0xee, 0x8d, - 0x9c, 0xe1, 0xd0, 0xc7, 0x05, 0xee, 0x20, 0x87, 0x05, 0x41, 0xfb, 0x7b, 0x16, 0xa0, 0xe5, 0x6d, - 0x12, 0x45, 0x5e, 0xdd, 0x70, 0xab, 0x63, 0xef, 0x3b, 0x19, 0xef, 0x38, 0x99, 0x41, 0xce, 0x99, - 0xf7, 0x9d, 0x8c, 0x7f, 0xf9, 0xef, 0x3b, 0x95, 0x0e, 0xf7, 0xbe, 0x13, 0x5a, 0x86, 0xd3, 0x4d, - 0x7e, 0xdc, 0xe0, 0x6f, 0xa6, 0xf0, 0xb3, 0x87, 0x8a, 0xc7, 0x3b, 0x73, 0x7b, 0x6f, 0xe2, 0xf4, - 0x52, 0x1e, 0x02, 0xce, 0xaf, 0x67, 0xbf, 0x13, 0x10, 0xf7, 0xa6, 0x9b, 0xcd, 0xf3, 0x55, 0xea, - 0x6a, 0x7e, 0xb1, 0xbf, 0x5c, 0x81, 0xd1, 0x4c, 0x92, 0x66, 0x7a, 0xd4, 0xeb, 0x74, 0x8e, 0x3a, - 0xb2, 0xfc, 0xee, 0xec, 0x5e, 0x4f, 0xee, 0x56, 0x01, 0x54, 0xbc, 0xa0, 0xd5, 0x4e, 0x8a, 0x09, - 0x07, 0xe6, 0x9d, 0x58, 0xa0, 0x0d, 0x1a, 0xe6, 0x62, 0xfa, 0x17, 0x73, 0x32, 0x45, 0x3a, 0x6f, - 0xa5, 0x94, 0xf1, 0xbe, 0xfb, 0x64, 0x0e, 0xf8, 0xb8, 0x76, 0xa5, 0xaa, 0x14, 0x61, 0x58, 0xcc, - 0x2c, 0x96, 0xe3, 0xbe, 0x6a, 0xff, 0x46, 0x09, 0x06, 0x8d, 0x49, 0x43, 0xbf, 0x9a, 0x4e, 0xda, - 0x65, 0x15, 0xf7, 0x49, 0xac, 0xfd, 0x49, 0x9d, 0x96, 0x8b, 0x7f, 0xd2, 0x13, 0x9d, 0xf9, 0xba, - 0xee, 0xec, 0x4d, 0x9c, 0xc8, 0x64, 0xe4, 0x4a, 0xe5, 0xf0, 0x3a, 0xfb, 0x11, 0x18, 0xcd, 0x34, - 0x93, 0xf3, 0xc9, 0x6b, 0xe6, 0x27, 0x1f, 0xd9, 0x2c, 0x65, 0x0e, 0xd9, 0xd7, 0xe9, 0x90, 0x89, - 0x28, 0xc4, 0xd0, 0x27, 0x3d, 0xd8, 0x60, 0x33, 0xc1, 0xc6, 0xa5, 0x1e, 0x83, 0x8d, 0x9f, 0x84, - 0x6a, 0x2b, 0xf4, 0x3d, 0xd7, 0x53, 0x39, 0x34, 0x59, 0x78, 0xf3, 0x8a, 0x28, 0xc3, 0x0a, 0x8a, - 0x6e, 0x41, 0xed, 0xe6, 0xad, 0x84, 0xdf, 0xfe, 0x08, 0xfb, 0x76, 0x51, 0x97, 0x3e, 0x4a, 0x69, - 0x51, 0xd7, 0x4b, 0x58, 0xd3, 0x42, 0x36, 0xf4, 0x33, 0x21, 0x28, 0x23, 0x12, 0x98, 0xed, 0x9d, - 0x49, 0xc7, 0x18, 0x0b, 0x88, 0xfd, 0xb5, 0x1a, 0x9c, 0xca, 0xcb, 0x94, 0x8f, 0x3e, 0x0c, 0xfd, - 0xbc, 0x8f, 0xc5, 0x3c, 0xc6, 0x92, 0x47, 0x63, 0x9e, 0x35, 0x28, 0xba, 0xc5, 0x7e, 0x63, 0x41, - 0x53, 0x50, 0xf7, 0x9d, 0x75, 0xb1, 0x42, 0x8e, 0x87, 0xfa, 0xa2, 0xa3, 0xa9, 0x2f, 0x3a, 0x9c, - 0xba, 0xef, 0xac, 0xa3, 0x1d, 0xa8, 0x34, 0xbc, 0x84, 0x38, 0xc2, 0x88, 0x70, 0xe3, 0x58, 0x88, - 0x13, 0x87, 0x6b, 0x69, 0xec, 0x27, 0xe6, 0x04, 0xd1, 0x57, 0x2d, 0x18, 0x5d, 0x4f, 0x67, 0x39, - 0x10, 0xcc, 0xd3, 0x39, 0x86, 0xd7, 0x10, 0xd2, 0x84, 0xf8, 0x03, 0x67, 0x99, 0x42, 0x9c, 0xed, - 0x0e, 0xfa, 0x84, 0x05, 0x03, 0x1b, 0x9e, 0x6f, 0x24, 0xa4, 0x3e, 0x86, 0xc9, 0xb9, 0xc8, 0x08, - 0xe8, 0x13, 0x07, 0xff, 0x1f, 0x63, 0x49, 0xb9, 0x9b, 0xa4, 0xea, 0x3f, 0xaa, 0xa4, 0x1a, 0xb8, - 0x4f, 0x92, 0xea, 0xd3, 0x16, 0xd4, 0xd4, 0x48, 0x8b, 0x68, 0xf1, 0x0f, 0x1c, 0xe3, 0x94, 0x73, - 0xcb, 0x89, 0xfa, 0x8b, 0x35, 0x71, 0xf4, 0x05, 0x0b, 0x06, 0x9d, 0xd7, 0xda, 0x11, 0xa9, 0x93, - 0xed, 0xb0, 0x15, 0x8b, 0xd7, 0x51, 0x5f, 0x2e, 0xbe, 0x33, 0xd3, 0x94, 0xc8, 0x1c, 0xd9, 0x5e, - 0x6e, 0xc5, 0x22, 0x5a, 0x4a, 0x17, 0x60, 0xb3, 0x0b, 0xf6, 0x5e, 0x09, 0x26, 0x0e, 0x68, 0x01, - 0x3d, 0x0f, 0x43, 0x61, 0xd4, 0x70, 0x02, 0xef, 0x35, 0x33, 0x6d, 0x89, 0xd2, 0xb2, 0x96, 0x0d, - 0x18, 0x4e, 0x61, 0x9a, 0xf1, 0xec, 0xa5, 0x03, 0xe2, 0xd9, 0xcf, 0x41, 0x5f, 0x44, 0x5a, 0x61, - 0xf6, 0xb0, 0xc0, 0x22, 0x15, 0x18, 0x04, 0x3d, 0x0a, 0x65, 0xa7, 0xe5, 0x09, 0x47, 0x34, 0x75, - 0x06, 0x9a, 0x5e, 0x59, 0xc0, 0xb4, 0x3c, 0x95, 0x5e, 0xa3, 0x72, 0x4f, 0xd2, 0x6b, 0x50, 0x31, - 0x20, 0xee, 0x2e, 0xfa, 0xb5, 0x18, 0x48, 0xdf, 0x29, 0xd8, 0x6f, 0x94, 0xe1, 0xd1, 0x7d, 0xd7, - 0x8b, 0xf6, 0xc3, 0xb3, 0xf6, 0xf1, 0xc3, 0x93, 0xc3, 0x53, 0x3a, 0x68, 0x78, 0xca, 0x5d, 0x86, - 0xe7, 0x13, 0x74, 0x1b, 0xc8, 0x74, 0x2f, 0xc5, 0xbc, 0x6f, 0xd9, 0x2d, 0x7b, 0x8c, 0xd8, 0x01, - 0x12, 0x8a, 0x35, 0x5d, 0x7a, 0x06, 0x48, 0xc5, 0x72, 0x57, 0x8a, 0x10, 0x03, 0x5d, 0x53, 0xae, - 0xf0, 0xb5, 0xdf, 0x2d, 0x40, 0xdc, 0xfe, 0xed, 0x3e, 0x78, 0xbc, 0x07, 0xee, 0x6d, 0xae, 0x62, - 0xab, 0xc7, 0x55, 0xfc, 0x03, 0x3e, 0x4d, 0x9f, 0xca, 0x9d, 0x26, 0x5c, 0xfc, 0x34, 0xed, 0x3f, - 0x43, 0xe8, 0x29, 0xa8, 0x7a, 0x41, 0x4c, 0xdc, 0x76, 0xc4, 0x7d, 0x92, 0x8d, 0x30, 0xa6, 0x05, - 0x51, 0x8e, 0x15, 0x06, 0x3d, 0xd3, 0xb9, 0x0e, 0xdd, 0xfe, 0x03, 0x05, 0xc5, 0xee, 0x9a, 0x11, - 0x51, 0x5c, 0xa5, 0x98, 0x9d, 0xa6, 0x1c, 0x80, 0x93, 0xb1, 0xff, 0x96, 0x05, 0x67, 0xbb, 0x8b, - 0x58, 0xf4, 0x0c, 0x0c, 0xae, 0x47, 0x4e, 0xe0, 0x6e, 0xb2, 0x97, 0x8d, 0xe5, 0xd2, 0x61, 0xdf, - 0xab, 0x8b, 0xb1, 0x89, 0x83, 0x66, 0x61, 0x8c, 0x7b, 0x6e, 0x18, 0x18, 0x32, 0xf2, 0xf7, 0xf6, - 0xde, 0xc4, 0xd8, 0x5a, 0x16, 0x88, 0x3b, 0xf1, 0xed, 0xef, 0x97, 0xf3, 0xbb, 0xc5, 0x55, 0xb1, - 0xc3, 0xac, 0x66, 0xb1, 0x56, 0x4b, 0x3d, 0x70, 0xdc, 0xf2, 0xbd, 0xe6, 0xb8, 0x7d, 0xdd, 0x38, - 0x2e, 0x9a, 0x83, 0x13, 0xc6, 0xd3, 0x53, 0x3c, 0x9a, 0x9b, 0xbb, 0x25, 0xab, 0x54, 0x2c, 0x2b, - 0x19, 0x38, 0xee, 0xa8, 0xf1, 0x80, 0x2f, 0xbd, 0x5f, 0x2b, 0xc1, 0x99, 0xae, 0xda, 0xef, 0x3d, - 0x92, 0x28, 0xe6, 0xf4, 0xf7, 0xdd, 0x9b, 0xe9, 0x37, 0x27, 0xa5, 0x72, 0xd0, 0xa4, 0xd8, 0x7f, - 0x5c, 0xea, 0xba, 0x11, 0xe8, 0x49, 0xe8, 0x87, 0x76, 0x94, 0x5e, 0x80, 0x61, 0xa7, 0xd5, 0xe2, - 0x78, 0xcc, 0x8b, 0x36, 0x93, 0xfa, 0x69, 0xda, 0x04, 0xe2, 0x34, 0x6e, 0x4f, 0x3a, 0xcd, 0x9f, - 0x58, 0x50, 0xc3, 0x64, 0x83, 0x73, 0x23, 0x74, 0x53, 0x0c, 0x91, 0x55, 0x44, 0x9e, 0x5b, 0x3a, - 0xb0, 0xb1, 0xc7, 0xf2, 0xbf, 0xe6, 0x0d, 0x76, 0xe7, 0x53, 0x64, 0xa5, 0x43, 0x3d, 0x45, 0xa6, - 0x1e, 0xa3, 0x2a, 0x77, 0x7f, 0x8c, 0xca, 0xfe, 0xee, 0x00, 0xfd, 0xbc, 0x56, 0x38, 0x1b, 0x91, - 0x7a, 0x4c, 0xe7, 0xb7, 0x1d, 0xf9, 0x62, 0x91, 0xa8, 0xf9, 0xbd, 0x86, 0x17, 0x31, 0x2d, 0x4f, - 0x5d, 0x90, 0x95, 0x0e, 0x95, 0xf8, 0xa6, 0x7c, 0x60, 0xe2, 0x9b, 0x17, 0x60, 0x38, 0x8e, 0x37, - 0x57, 0x22, 0x6f, 0xdb, 0x49, 0xc8, 0x15, 0xb2, 0x2b, 0x74, 0x5f, 0x9d, 0x04, 0x62, 0xf5, 0x92, - 0x06, 0xe2, 0x34, 0x2e, 0x9a, 0x87, 0x31, 0x9d, 0x7e, 0x86, 0x44, 0x09, 0x8b, 0xb9, 0xe0, 0x2b, - 0x41, 0x45, 0x7c, 0xeb, 0x84, 0x35, 0x02, 0x01, 0x77, 0xd6, 0xa1, 0xfc, 0x34, 0x55, 0x48, 0x3b, - 0xd2, 0x9f, 0xe6, 0xa7, 0xa9, 0x76, 0x68, 0x5f, 0x3a, 0x6a, 0xa0, 0x25, 0x38, 0xc9, 0x17, 0xc6, - 0x74, 0xab, 0x65, 0x7c, 0xd1, 0x40, 0x3a, 0xbf, 0xe8, 0x7c, 0x27, 0x0a, 0xce, 0xab, 0x87, 0x9e, - 0x83, 0x41, 0x55, 0xbc, 0x30, 0x27, 0xee, 0x76, 0x94, 0x6d, 0x49, 0x35, 0xb3, 0x50, 0xc7, 0x26, - 0x1e, 0x7a, 0x3f, 0x3c, 0xac, 0xff, 0xf2, 0xc0, 0x3c, 0x7e, 0xe1, 0x39, 0x27, 0x32, 0x7b, 0xa9, - 0xa7, 0x8f, 0xe6, 0x73, 0xd1, 0xea, 0xb8, 0x5b, 0x7d, 0xb4, 0x0e, 0x67, 0x15, 0xe8, 0x42, 0x90, - 0xb0, 0x28, 0x9b, 0x98, 0xcc, 0x38, 0x31, 0xb9, 0x16, 0xf9, 0xe2, 0x09, 0x6d, 0xf5, 0x3a, 0xee, - 0xbc, 0x97, 0x5c, 0xca, 0xc3, 0xc4, 0x8b, 0x78, 0x9f, 0x56, 0xd0, 0x14, 0xd4, 0x48, 0xe0, 0xac, - 0xfb, 0x64, 0x79, 0x76, 0x81, 0x65, 0x08, 0x33, 0xee, 0x57, 0x2f, 0x48, 0x00, 0xd6, 0x38, 0xca, - 0xef, 0x77, 0xa8, 0xeb, 0x4b, 0xcd, 0x2b, 0x70, 0xaa, 0xe1, 0xb6, 0xa8, 0x46, 0xe8, 0xb9, 0x64, - 0xda, 0x65, 0x6e, 0x8e, 0x74, 0x62, 0x78, 0xe2, 0x57, 0xe5, 0xd4, 0x3e, 0x3f, 0xbb, 0xd2, 0x81, - 0x83, 0x73, 0x6b, 0x32, 0x77, 0xd8, 0x28, 0xdc, 0xd9, 0x1d, 0x3f, 0x99, 0x71, 0x87, 0xa5, 0x85, - 0x98, 0xc3, 0xd0, 0x65, 0x40, 0x2c, 0x42, 0xe2, 0x52, 0x92, 0xb4, 0x94, 0x0a, 0x3a, 0x7e, 0x2a, - 0x9d, 0xe7, 0xe7, 0x62, 0x07, 0x06, 0xce, 0xa9, 0x45, 0x35, 0x9a, 0x20, 0x64, 0xad, 0x8f, 0x3f, - 0x9c, 0xd6, 0x68, 0xae, 0xf2, 0x62, 0x2c, 0xe1, 0xf6, 0x7f, 0xb6, 0x60, 0x58, 0x6d, 0xed, 0x7b, - 0x10, 0x4e, 0xe4, 0xa7, 0xc3, 0x89, 0xe6, 0x8f, 0xce, 0x1c, 0x59, 0xcf, 0xbb, 0xf8, 0xa4, 0x7f, - 0x63, 0x10, 0x40, 0x33, 0x50, 0x25, 0xbb, 0xac, 0xae, 0xb2, 0xeb, 0x81, 0x65, 0x5e, 0x79, 0x19, - 0x79, 0x2a, 0xf7, 0x37, 0x23, 0xcf, 0x2a, 0x9c, 0x96, 0x9a, 0x05, 0xbf, 0xec, 0xbb, 0x14, 0xc6, - 0x8a, 0x17, 0x56, 0x67, 0x1e, 0x15, 0x0d, 0x9d, 0x5e, 0xc8, 0x43, 0xc2, 0xf9, 0x75, 0x53, 0x0a, - 0xcd, 0xc0, 0x81, 0x5a, 0xa6, 0xda, 0xfe, 0x8b, 0x1b, 0xf2, 0x09, 0xa1, 0xcc, 0xf6, 0x5f, 0xbc, - 0xb8, 0x8a, 0x35, 0x4e, 0xbe, 0x0c, 0xa8, 0x15, 0x24, 0x03, 0xe0, 0xd0, 0x32, 0x40, 0x72, 0xa3, - 0xc1, 0xae, 0xdc, 0x48, 0x5e, 0x2a, 0x0c, 0x75, 0xbd, 0x54, 0x78, 0x0f, 0x8c, 0x78, 0xc1, 0x26, - 0x89, 0xbc, 0x84, 0xd4, 0xd9, 0x5e, 0x60, 0x9c, 0xaa, 0xaa, 0x35, 0x80, 0x85, 0x14, 0x14, 0x67, - 0xb0, 0xd3, 0x2c, 0x74, 0xa4, 0x07, 0x16, 0xda, 0x45, 0x70, 0x8d, 0x16, 0x23, 0xb8, 0x4e, 0x1c, - 0x5d, 0x70, 0x8d, 0x1d, 0xab, 0xe0, 0x42, 0x85, 0x08, 0xae, 0x9e, 0x64, 0x82, 0x71, 0x32, 0x3d, - 0x75, 0xc0, 0xc9, 0xb4, 0x9b, 0xd4, 0x3a, 0x7d, 0xd7, 0x52, 0x2b, 0x5f, 0x20, 0x3d, 0x74, 0xdc, - 0x02, 0xe9, 0xd3, 0x25, 0x38, 0xad, 0x59, 0x36, 0xdd, 0x28, 0xde, 0x06, 0x65, 0x5a, 0xec, 0xc1, - 0x3a, 0x7e, 0x47, 0x67, 0x04, 0xc2, 0xe9, 0x98, 0x3a, 0x05, 0xc1, 0x06, 0x16, 0x8b, 0x27, 0x23, - 0x11, 0xcb, 0x7e, 0x9d, 0xe5, 0xe7, 0xb3, 0xa2, 0x1c, 0x2b, 0x0c, 0xba, 0x14, 0xe9, 0x6f, 0x11, - 0xa3, 0x9b, 0xcd, 0xab, 0x38, 0xab, 0x41, 0xd8, 0xc4, 0x43, 0x4f, 0x72, 0x22, 0x8c, 0x97, 0x50, - 0x9e, 0x3e, 0x24, 0x5e, 0x05, 0x97, 0xec, 0x43, 0x41, 0x65, 0x77, 0x58, 0xe0, 0x60, 0xa5, 0xb3, - 0x3b, 0xcc, 0xdd, 0x4d, 0x61, 0xd8, 0xff, 0xd3, 0x82, 0x33, 0xb9, 0x43, 0x71, 0x0f, 0xe4, 0xf4, - 0x4e, 0x5a, 0x4e, 0xaf, 0x16, 0x75, 0x88, 0x31, 0xbe, 0xa2, 0x8b, 0xcc, 0xfe, 0x8f, 0x16, 0x8c, - 0x68, 0xfc, 0x7b, 0xf0, 0xa9, 0x5e, 0xfa, 0x53, 0x8b, 0x3b, 0xaf, 0xd5, 0x3a, 0xbe, 0xed, 0xf7, - 0x4a, 0xa0, 0x72, 0x9d, 0x4e, 0xbb, 0x32, 0x93, 0xf4, 0x01, 0xb7, 0xc6, 0xbb, 0xd0, 0xcf, 0x2e, - 0xbd, 0xe3, 0x62, 0x1c, 0x7a, 0xd2, 0xf4, 0xd9, 0x05, 0xba, 0x76, 0x28, 0x60, 0x7f, 0x63, 0x2c, - 0x08, 0xb2, 0xdc, 0xec, 0x3c, 0x8d, 0x64, 0x5d, 0x84, 0xe0, 0xe9, 0xdc, 0xec, 0xa2, 0x1c, 0x2b, - 0x0c, 0x2a, 0x49, 0x3c, 0x37, 0x0c, 0x66, 0x7d, 0x27, 0x96, 0x2f, 0xce, 0x2a, 0x49, 0xb2, 0x20, - 0x01, 0x58, 0xe3, 0xb0, 0xfb, 0x70, 0x2f, 0x6e, 0xf9, 0xce, 0xae, 0x71, 0x2a, 0x37, 0x72, 0x51, - 0x28, 0x10, 0x36, 0xf1, 0xec, 0x26, 0x8c, 0xa7, 0x3f, 0x62, 0x8e, 0x6c, 0x30, 0x67, 0xd4, 0x9e, - 0x86, 0x73, 0x0a, 0x6a, 0x0e, 0xab, 0xb5, 0xd8, 0x76, 0x04, 0x4f, 0xd0, 0x2e, 0x99, 0x12, 0x80, - 0x35, 0x8e, 0xfd, 0x8f, 0x2c, 0x38, 0x99, 0x33, 0x68, 0x05, 0x86, 0x38, 0x26, 0x9a, 0xdb, 0xe4, - 0xe9, 0x00, 0x3f, 0x0e, 0x03, 0x75, 0xb2, 0xe1, 0x48, 0x77, 0x47, 0x83, 0x7b, 0xce, 0xf1, 0x62, - 0x2c, 0xe1, 0xf6, 0x6f, 0x95, 0x60, 0x34, 0xdd, 0xd7, 0x98, 0x85, 0x0d, 0xf1, 0x61, 0xf2, 0x62, - 0x37, 0xdc, 0x26, 0xd1, 0x2e, 0xfd, 0x72, 0x2b, 0x13, 0x36, 0xd4, 0x81, 0x81, 0x73, 0x6a, 0xb1, - 0x4c, 0xc7, 0x75, 0x35, 0xda, 0x72, 0x45, 0x5e, 0x2f, 0x72, 0x45, 0xea, 0xc9, 0x34, 0x5d, 0x23, - 0x14, 0x49, 0x6c, 0xd2, 0xa7, 0xba, 0x08, 0xf3, 0xc3, 0x9e, 0x69, 0x7b, 0x7e, 0xe2, 0x05, 0xe2, - 0x93, 0xc5, 0x5a, 0x55, 0xba, 0xc8, 0x52, 0x27, 0x0a, 0xce, 0xab, 0x67, 0x7f, 0xaf, 0x0f, 0x54, - 0x48, 0x35, 0x73, 0x5d, 0x2b, 0xc8, 0xf1, 0xef, 0xb0, 0xc1, 0x67, 0x6a, 0x6d, 0xf5, 0xed, 0xe7, - 0x4b, 0xc2, 0x4d, 0x39, 0xa6, 0x3d, 0x57, 0x0d, 0xd8, 0x9a, 0x06, 0x61, 0x13, 0x8f, 0xf6, 0xc4, - 0xf7, 0xb6, 0x09, 0xaf, 0xd4, 0x9f, 0xee, 0xc9, 0xa2, 0x04, 0x60, 0x8d, 0x43, 0x7b, 0x52, 0xf7, - 0x36, 0x36, 0x84, 0x5d, 0x42, 0xf5, 0x84, 0x8e, 0x0e, 0x66, 0x10, 0x9e, 0x0b, 0x3f, 0xdc, 0x12, - 0xfa, 0xb7, 0x91, 0x0b, 0x3f, 0xdc, 0xc2, 0x0c, 0x42, 0x67, 0x29, 0x08, 0xa3, 0xa6, 0xe3, 0x7b, - 0xaf, 0x91, 0xba, 0xa2, 0x22, 0xf4, 0x6e, 0x35, 0x4b, 0x57, 0x3b, 0x51, 0x70, 0x5e, 0x3d, 0xba, - 0xa0, 0x5b, 0x11, 0xa9, 0x7b, 0x6e, 0x62, 0xb6, 0x06, 0xe9, 0x05, 0xbd, 0xd2, 0x81, 0x81, 0x73, - 0x6a, 0xa1, 0x69, 0x18, 0x95, 0x21, 0xf1, 0x32, 0xe1, 0xd1, 0x60, 0x3a, 0xc1, 0x0a, 0x4e, 0x83, - 0x71, 0x16, 0x9f, 0x32, 0xc9, 0xa6, 0xc8, 0x89, 0xc6, 0xd4, 0x74, 0x83, 0x49, 0xca, 0x5c, 0x69, - 0x58, 0x61, 0xd8, 0x1f, 0x2f, 0x53, 0xa1, 0xde, 0x25, 0xf5, 0xe0, 0x3d, 0x73, 0x34, 0x4d, 0xaf, - 0xc8, 0xbe, 0x1e, 0x56, 0xe4, 0xb3, 0x30, 0x74, 0x33, 0x0e, 0x03, 0xe5, 0xc4, 0x59, 0xe9, 0xea, - 0xc4, 0x69, 0x60, 0xe5, 0x3b, 0x71, 0xf6, 0x17, 0xe5, 0xc4, 0x39, 0x70, 0x97, 0x4e, 0x9c, 0x7f, - 0x50, 0x01, 0xf5, 0xae, 0xd0, 0x55, 0x92, 0xdc, 0x0a, 0xa3, 0x2d, 0x2f, 0x68, 0xb0, 0x54, 0x02, - 0x5f, 0xb5, 0x60, 0x88, 0xef, 0x97, 0x45, 0x33, 0x08, 0x6f, 0xa3, 0xa0, 0x07, 0x6b, 0x52, 0xc4, - 0x26, 0xd7, 0x0c, 0x42, 0x99, 0x37, 0x87, 0x4d, 0x10, 0x4e, 0xf5, 0x08, 0x7d, 0x04, 0x40, 0x1a, - 0x71, 0x37, 0x24, 0x07, 0x5e, 0x28, 0xa6, 0x7f, 0x98, 0x6c, 0x68, 0x95, 0x7a, 0x4d, 0x11, 0xc1, - 0x06, 0x41, 0xf4, 0x69, 0x1d, 0xa0, 0xc8, 0xa3, 0x3d, 0x3e, 0x74, 0x2c, 0x63, 0xd3, 0x4b, 0x78, - 0x22, 0x86, 0x01, 0x2f, 0x68, 0xd0, 0x75, 0x22, 0x9c, 0xdd, 0xde, 0x96, 0x97, 0x86, 0x63, 0x31, - 0x74, 0xea, 0x33, 0x8e, 0xef, 0x04, 0x2e, 0x89, 0x16, 0x38, 0xba, 0x96, 0xa0, 0xa2, 0x00, 0xcb, - 0x86, 0x3a, 0x5e, 0x64, 0xaa, 0xf4, 0xf2, 0x22, 0xd3, 0xd9, 0xf7, 0xc2, 0x58, 0xc7, 0x64, 0x1e, - 0x2a, 0x1a, 0xf1, 0xee, 0x03, 0x19, 0xed, 0xdf, 0xee, 0xd7, 0x42, 0xeb, 0x6a, 0x58, 0xe7, 0x0f, - 0xfc, 0x44, 0x7a, 0x46, 0x85, 0xca, 0x5c, 0xe0, 0x12, 0x51, 0x62, 0xc6, 0x28, 0xc4, 0x26, 0x49, - 0xba, 0x46, 0x5b, 0x4e, 0x44, 0x82, 0xe3, 0x5e, 0xa3, 0x2b, 0x8a, 0x08, 0x36, 0x08, 0xa2, 0xcd, - 0x54, 0x38, 0xd2, 0xc5, 0xa3, 0x87, 0x23, 0xb1, 0x04, 0x65, 0x79, 0xef, 0x60, 0x7c, 0xc1, 0x82, - 0x91, 0x20, 0xb5, 0x72, 0x8b, 0xf1, 0x40, 0xce, 0xdf, 0x15, 0xfc, 0x59, 0xba, 0x74, 0x19, 0xce, - 0xd0, 0xcf, 0x13, 0x69, 0x95, 0x43, 0x8a, 0x34, 0xfd, 0xc0, 0x58, 0x7f, 0xb7, 0x07, 0xc6, 0x50, - 0xa0, 0x5e, 0x58, 0x1c, 0x28, 0xfc, 0x85, 0x45, 0xc8, 0x79, 0x5d, 0xf1, 0x06, 0xd4, 0xdc, 0x88, - 0x38, 0xc9, 0x5d, 0x3e, 0xb6, 0xc7, 0x7c, 0x3b, 0x66, 0x65, 0x03, 0x58, 0xb7, 0x65, 0xff, 0x9f, - 0x3e, 0x38, 0x21, 0x47, 0x44, 0x46, 0x2f, 0x50, 0xf9, 0xc8, 0xe9, 0x6a, 0x5d, 0x59, 0xc9, 0xc7, - 0x4b, 0x12, 0x80, 0x35, 0x0e, 0xd5, 0xc7, 0xda, 0x31, 0x59, 0x6e, 0x91, 0x60, 0xd1, 0x5b, 0x8f, - 0xc5, 0x65, 0xac, 0xda, 0x28, 0xd7, 0x34, 0x08, 0x9b, 0x78, 0x54, 0xb7, 0x77, 0x0c, 0xa5, 0xd5, - 0xd0, 0xed, 0xa5, 0xa2, 0x2a, 0xe1, 0xe8, 0x97, 0x73, 0x73, 0x21, 0x17, 0x13, 0xf3, 0xd7, 0x11, - 0xb4, 0x71, 0xc8, 0xf7, 0x59, 0xff, 0xbe, 0x05, 0xa7, 0x79, 0xa9, 0x1c, 0xc9, 0x6b, 0xad, 0xba, - 0x93, 0x90, 0xb8, 0x98, 0x37, 0x14, 0x72, 0xfa, 0xa7, 0xcd, 0xcb, 0x79, 0x64, 0x71, 0x7e, 0x6f, - 0xd0, 0xeb, 0x16, 0x8c, 0x6e, 0xa5, 0xd2, 0xc5, 0x48, 0xd1, 0x71, 0xd4, 0x4c, 0x0e, 0xa9, 0x46, - 0xf5, 0x56, 0x4b, 0x97, 0xc7, 0x38, 0x4b, 0xdd, 0xfe, 0x1f, 0x16, 0x98, 0x6c, 0xf4, 0xde, 0x67, - 0x99, 0x39, 0xbc, 0x2a, 0x28, 0xb5, 0xcb, 0x4a, 0x57, 0xed, 0xf2, 0x51, 0x28, 0xb7, 0xbd, 0xba, - 0x38, 0x5f, 0xe8, 0x2b, 0xe2, 0x85, 0x39, 0x4c, 0xcb, 0xed, 0x7f, 0x59, 0xd1, 0x66, 0x10, 0x11, - 0x52, 0xf7, 0x43, 0xf1, 0xd9, 0x1b, 0x2a, 0x4f, 0x1d, 0xff, 0xf2, 0xab, 0x1d, 0x79, 0xea, 0x7e, - 0xea, 0xf0, 0x11, 0x93, 0x7c, 0x80, 0xba, 0xa5, 0xa9, 0x1b, 0x38, 0x20, 0x5c, 0xf2, 0x26, 0x54, - 0xe9, 0x11, 0x8c, 0xd9, 0x33, 0xab, 0xa9, 0x4e, 0x55, 0x2f, 0x89, 0xf2, 0x3b, 0x7b, 0x13, 0xef, - 0x3a, 0x7c, 0xb7, 0x64, 0x6d, 0xac, 0xda, 0x47, 0x31, 0xd4, 0xe8, 0x6f, 0x16, 0xd9, 0x29, 0x0e, - 0x77, 0xd7, 0x14, 0xcf, 0x94, 0x80, 0x42, 0xc2, 0x46, 0x35, 0x1d, 0x14, 0x40, 0x8d, 0x3d, 0x65, - 0xcd, 0x88, 0xf2, 0x33, 0xe0, 0x8a, 0x8a, 0xaf, 0x94, 0x80, 0x3b, 0x7b, 0x13, 0x2f, 0x1c, 0x9e, - 0xa8, 0xaa, 0x8e, 0x35, 0x09, 0xfb, 0x8b, 0x7d, 0x7a, 0xed, 0x8a, 0xf4, 0x84, 0x3f, 0x14, 0x6b, - 0xf7, 0xf9, 0xcc, 0xda, 0x3d, 0xd7, 0xb1, 0x76, 0x47, 0xf4, 0x93, 0xcb, 0xa9, 0xd5, 0x78, 0xaf, - 0x15, 0x81, 0x83, 0xed, 0x0d, 0x4c, 0x03, 0x7a, 0xb5, 0xed, 0x45, 0x24, 0x5e, 0x89, 0xda, 0x81, - 0x17, 0x34, 0xd8, 0x72, 0xac, 0x9a, 0x1a, 0x50, 0x0a, 0x8c, 0xb3, 0xf8, 0xf4, 0x50, 0x4f, 0xe7, - 0xfc, 0x86, 0xb3, 0xcd, 0x57, 0x95, 0x91, 0xb1, 0x6d, 0x55, 0x94, 0x63, 0x85, 0x61, 0x7f, 0x9d, - 0xdd, 0xa2, 0x1b, 0x21, 0xe5, 0x74, 0x4d, 0xf8, 0xec, 0xed, 0x70, 0x9e, 0xee, 0x4d, 0xad, 0x09, - 0xfe, 0x60, 0x38, 0x87, 0xa1, 0x5b, 0x30, 0xb0, 0xce, 0x5f, 0xc1, 0x2c, 0x26, 0xe3, 0xbe, 0x78, - 0x52, 0x93, 0xbd, 0x2f, 0x24, 0xdf, 0xd7, 0xbc, 0xa3, 0x7f, 0x62, 0x49, 0xcd, 0xfe, 0x56, 0x05, - 0x46, 0x33, 0xaf, 0x4b, 0xa7, 0x12, 0xed, 0x96, 0x0e, 0x4c, 0xb4, 0xfb, 0x41, 0x80, 0x3a, 0x69, - 0xf9, 0xe1, 0x2e, 0x53, 0xc7, 0xfa, 0x0e, 0xad, 0x8e, 0x29, 0x0d, 0x7e, 0x4e, 0xb5, 0x82, 0x8d, - 0x16, 0x45, 0x8e, 0x3b, 0x9e, 0xb7, 0x37, 0x93, 0xe3, 0xce, 0x78, 0x97, 0xa3, 0xff, 0xde, 0xbe, - 0xcb, 0xe1, 0xc1, 0x28, 0xef, 0xa2, 0x0a, 0xdc, 0xbe, 0x8b, 0xf8, 0x6c, 0x16, 0xfa, 0x32, 0x97, - 0x6e, 0x06, 0x67, 0xdb, 0xbd, 0x9f, 0x8f, 0xc7, 0xa3, 0xb7, 0x43, 0x4d, 0xce, 0x73, 0x3c, 0x5e, - 0xd3, 0xc9, 0x2f, 0xe4, 0x32, 0x60, 0x8f, 0xba, 0x8b, 0x9f, 0x1d, 0x39, 0x28, 0xe0, 0x7e, 0xe5, - 0xa0, 0xb0, 0x3f, 0x5f, 0xa2, 0x7a, 0x3c, 0xef, 0x97, 0x4a, 0xa7, 0xf4, 0x04, 0xf4, 0x3b, 0xed, - 0x64, 0x33, 0xec, 0x78, 0x47, 0x73, 0x9a, 0x95, 0x62, 0x01, 0x45, 0x8b, 0xd0, 0x57, 0xd7, 0x29, - 0x72, 0x0e, 0x33, 0x9f, 0xda, 0x24, 0xea, 0x24, 0x04, 0xb3, 0x56, 0xd0, 0x23, 0xd0, 0x97, 0x38, - 0x0d, 0x19, 0xad, 0xc7, 0x22, 0xb4, 0xd7, 0x9c, 0x46, 0x8c, 0x59, 0xa9, 0x29, 0xbe, 0xfb, 0x0e, - 0x10, 0xdf, 0x2f, 0xc0, 0x70, 0xec, 0x35, 0x02, 0x27, 0x69, 0x47, 0xc4, 0xb8, 0x35, 0xd4, 0x3e, - 0x23, 0x26, 0x10, 0xa7, 0x71, 0xed, 0xdf, 0x19, 0x82, 0x53, 0xab, 0xb3, 0x4b, 0x32, 0xf1, 0xfb, - 0xb1, 0x05, 0xdc, 0xe5, 0xd1, 0xb8, 0x77, 0x01, 0x77, 0x5d, 0xa8, 0xfb, 0x46, 0xc0, 0x9d, 0x6f, - 0x04, 0xdc, 0xa5, 0xa3, 0x9f, 0xca, 0x45, 0x44, 0x3f, 0xe5, 0xf5, 0xa0, 0x97, 0xe8, 0xa7, 0x63, - 0x8b, 0xc0, 0xdb, 0xb7, 0x43, 0x87, 0x8a, 0xc0, 0x53, 0xe1, 0x89, 0x85, 0xc4, 0xa5, 0x74, 0x99, - 0xaa, 0xdc, 0xf0, 0x44, 0x15, 0x1a, 0xc6, 0x63, 0xae, 0x04, 0xab, 0x7f, 0xb9, 0xf8, 0x0e, 0xf4, - 0x10, 0x1a, 0x26, 0xc2, 0xbe, 0xcc, 0x70, 0xc4, 0x81, 0x22, 0xc2, 0x11, 0xf3, 0xba, 0x73, 0x60, - 0x38, 0xe2, 0x0b, 0x30, 0xec, 0xfa, 0x61, 0x40, 0x56, 0xa2, 0x30, 0x09, 0xdd, 0x50, 0xbe, 0xe4, - 0xa7, 0x1f, 0xa2, 0x31, 0x81, 0x38, 0x8d, 0xdb, 0x2d, 0x96, 0xb1, 0x76, 0xd4, 0x58, 0x46, 0xb8, - 0x4f, 0xb1, 0x8c, 0xbf, 0xa0, 0xa3, 0xee, 0x07, 0xd9, 0x8c, 0x7c, 0xb0, 0xf8, 0x19, 0xe9, 0xe9, - 0xa9, 0xbe, 0x37, 0xf8, 0x43, 0x96, 0x54, 0x31, 0x9e, 0x0d, 0x9b, 0x54, 0xf1, 0x1b, 0x62, 0x43, - 0xf2, 0xca, 0x31, 0x2c, 0xd8, 0x1b, 0xab, 0x9a, 0x8c, 0x7a, 0xdc, 0x52, 0x17, 0xe1, 0x74, 0x47, - 0x8e, 0x92, 0x15, 0xe0, 0xcb, 0x25, 0xf8, 0x91, 0x03, 0xbb, 0x80, 0x6e, 0x01, 0x24, 0x4e, 0x43, - 0x2c, 0x54, 0x71, 0x61, 0x72, 0x44, 0xc7, 0xce, 0x35, 0xd9, 0x1e, 0x4f, 0x67, 0xa3, 0xfe, 0xb2, - 0xab, 0x08, 0xf9, 0x9b, 0xf9, 0x73, 0x86, 0x7e, 0x47, 0xd6, 0x4f, 0x1c, 0xfa, 0x04, 0x33, 0x08, - 0x15, 0xff, 0x11, 0x69, 0xe8, 0x57, 0xe0, 0xd5, 0xf4, 0x61, 0x56, 0x8a, 0x05, 0x14, 0x3d, 0x07, - 0x83, 0x8e, 0xef, 0xf3, 0xa0, 0x21, 0x12, 0x8b, 0x17, 0xa2, 0x74, 0xfa, 0x41, 0x0d, 0xc2, 0x26, - 0x9e, 0xfd, 0x97, 0x25, 0x98, 0x38, 0x80, 0xa7, 0x74, 0x04, 0x8b, 0x56, 0x7a, 0x0e, 0x16, 0x15, - 0x81, 0x14, 0xfd, 0x5d, 0x02, 0x29, 0x9e, 0x83, 0xc1, 0x84, 0x38, 0x4d, 0xe1, 0x0a, 0x26, 0x2c, - 0x01, 0xfa, 0x06, 0x58, 0x83, 0xb0, 0x89, 0x47, 0xb9, 0xd8, 0x88, 0xe3, 0xba, 0x24, 0x8e, 0x65, - 0xa4, 0x84, 0xb0, 0xa6, 0x16, 0x16, 0x86, 0xc1, 0x8c, 0xd4, 0xd3, 0x29, 0x12, 0x38, 0x43, 0x32, - 0x3b, 0xe0, 0xb5, 0x1e, 0x07, 0xfc, 0x6b, 0x25, 0x78, 0x74, 0x5f, 0xe9, 0xd6, 0x73, 0x10, 0x4b, - 0x3b, 0x26, 0x51, 0x76, 0xe1, 0x5c, 0x8b, 0x49, 0x84, 0x19, 0x84, 0x8f, 0x52, 0xab, 0x65, 0xbc, - 0xb2, 0x5f, 0x74, 0x44, 0x17, 0x1f, 0xa5, 0x14, 0x09, 0x9c, 0x21, 0x79, 0xb7, 0xcb, 0xf2, 0x5b, - 0x7d, 0xf0, 0x78, 0x0f, 0x3a, 0x40, 0x81, 0x91, 0x6f, 0xe9, 0x28, 0xcd, 0xf2, 0x7d, 0x8a, 0xd2, - 0xbc, 0xbb, 0xe1, 0x7a, 0x33, 0xb8, 0xb3, 0xa7, 0x08, 0xbb, 0xaf, 0x97, 0xe0, 0x6c, 0x77, 0x85, - 0x05, 0xbd, 0x1b, 0x46, 0x23, 0xe5, 0xfa, 0x66, 0x06, 0x78, 0x9e, 0xe4, 0xf6, 0x96, 0x14, 0x08, - 0x67, 0x71, 0xd1, 0x24, 0x40, 0xcb, 0x49, 0x36, 0xe3, 0x0b, 0x3b, 0x5e, 0x9c, 0x88, 0x34, 0x4f, - 0x23, 0xfc, 0x86, 0x4f, 0x96, 0x62, 0x03, 0x83, 0x92, 0x63, 0xff, 0xe6, 0xc2, 0xab, 0x61, 0xc2, - 0x2b, 0xf1, 0xc3, 0xd6, 0x49, 0xf9, 0x28, 0x8e, 0x01, 0xc2, 0x59, 0x5c, 0x4a, 0x8e, 0xdd, 0x21, - 0xf3, 0x8e, 0xf2, 0x53, 0x18, 0x23, 0xb7, 0xa8, 0x4a, 0xb1, 0x81, 0x91, 0x0d, 0x5d, 0xad, 0x1c, - 0x1c, 0xba, 0x6a, 0xff, 0x8b, 0x12, 0x9c, 0xe9, 0xaa, 0xf0, 0xf6, 0xc6, 0xa6, 0x1e, 0xbc, 0x70, - 0xd3, 0xbb, 0xdc, 0x61, 0x87, 0x0b, 0x53, 0xfc, 0x93, 0x2e, 0x2b, 0x4d, 0x84, 0x29, 0xde, 0x7d, - 0xf6, 0x85, 0x07, 0x6f, 0x3c, 0x3b, 0x22, 0x13, 0xfb, 0x0e, 0x11, 0x99, 0x98, 0x99, 0x8c, 0x4a, - 0x8f, 0xd2, 0xe1, 0xcf, 0xfa, 0xba, 0x0e, 0x2f, 0x3d, 0x20, 0xf7, 0x64, 0xcd, 0x9e, 0x83, 0x13, - 0x5e, 0xc0, 0x1e, 0x48, 0x5b, 0x6d, 0xaf, 0x8b, 0xcc, 0x3f, 0x3c, 0xbd, 0xa5, 0x0a, 0x7f, 0x58, - 0xc8, 0xc0, 0x71, 0x47, 0x8d, 0x07, 0x30, 0x52, 0xf4, 0xee, 0x86, 0xf4, 0x90, 0x9c, 0x7b, 0x19, - 0x4e, 0xcb, 0xa1, 0xd8, 0x74, 0x22, 0x52, 0x17, 0xc2, 0x36, 0x16, 0x01, 0x2f, 0x67, 0x78, 0xd0, - 0x4c, 0x0e, 0x02, 0xce, 0xaf, 0xc7, 0xde, 0xa4, 0x0a, 0x5b, 0x9e, 0x2b, 0x8e, 0x82, 0xfa, 0x4d, - 0x2a, 0x5a, 0x88, 0x39, 0x4c, 0xcb, 0x8b, 0xda, 0xbd, 0x91, 0x17, 0x1f, 0x84, 0x9a, 0x1a, 0x6f, - 0xee, 0xbb, 0xaf, 0x16, 0x79, 0x87, 0xef, 0xbe, 0x5a, 0xe1, 0x06, 0xd6, 0x41, 0x8f, 0xa6, 0xbe, - 0x03, 0x86, 0x94, 0xf5, 0xab, 0xd7, 0x97, 0xc1, 0xec, 0x3f, 0xef, 0x87, 0xe1, 0x54, 0xb6, 0xcf, - 0x94, 0xd9, 0xdb, 0x3a, 0xd0, 0xec, 0xcd, 0xc2, 0x36, 0xda, 0x81, 0x7c, 0x36, 0xd0, 0x08, 0xdb, - 0x68, 0x07, 0x04, 0x73, 0x18, 0x3d, 0x74, 0xd4, 0xa3, 0x5d, 0xdc, 0x0e, 0x84, 0x1f, 0xaa, 0x3a, - 0x74, 0xcc, 0xb1, 0x52, 0x2c, 0xa0, 0xe8, 0x63, 0x16, 0x0c, 0xc5, 0xec, 0x4e, 0x85, 0x5f, 0x1a, - 0x88, 0x45, 0x7e, 0xf9, 0xe8, 0xc9, 0x4c, 0x55, 0x66, 0x5b, 0xe6, 0xb7, 0x64, 0x96, 0xe0, 0x14, - 0x45, 0xf4, 0x49, 0x0b, 0x6a, 0xea, 0x75, 0x23, 0xf1, 0x06, 0xe8, 0x6a, 0xb1, 0xc9, 0x54, 0xb9, - 0xb5, 0x59, 0x5d, 0x4f, 0xa9, 0xac, 0x96, 0x58, 0x13, 0x46, 0xb1, 0xb2, 0xe8, 0x0f, 0x1c, 0x8f, - 0x45, 0x1f, 0x72, 0xac, 0xf9, 0x6f, 0x87, 0x5a, 0xd3, 0x09, 0xbc, 0x0d, 0x12, 0x27, 0xdc, 0xc8, - 0x2e, 0x73, 0x3c, 0xcb, 0x42, 0xac, 0xe1, 0x54, 0x01, 0x88, 0xd9, 0x87, 0x25, 0x86, 0x55, 0x9c, - 0x29, 0x00, 0xab, 0xba, 0x18, 0x9b, 0x38, 0xa6, 0x09, 0x1f, 0xee, 0xab, 0x09, 0x7f, 0xf0, 0x00, - 0x13, 0xfe, 0x2a, 0x9c, 0x76, 0xda, 0x49, 0x78, 0x89, 0x38, 0xfe, 0x34, 0x7f, 0xd0, 0x57, 0x3c, - 0x50, 0x3f, 0xc4, 0xcc, 0x42, 0xca, 0xd3, 0x62, 0x95, 0xf8, 0x1b, 0x1d, 0x48, 0x38, 0xbf, 0xae, - 0xfd, 0x4f, 0x2d, 0x38, 0x9d, 0xbb, 0x14, 0x1e, 0x5c, 0x1f, 0x57, 0xfb, 0x4b, 0x15, 0x38, 0x99, - 0x93, 0x0b, 0x18, 0xed, 0x9a, 0x9b, 0xc4, 0x2a, 0xc2, 0x5d, 0x24, 0xed, 0xfd, 0x20, 0xe7, 0x26, - 0x67, 0x67, 0x1c, 0xee, 0x56, 0x4e, 0xdf, 0x8c, 0x95, 0xef, 0xed, 0xcd, 0x98, 0xb1, 0xd6, 0xfb, - 0xee, 0xeb, 0x5a, 0xaf, 0x1c, 0xb0, 0xd6, 0xbf, 0x61, 0xc1, 0x78, 0xb3, 0xcb, 0x03, 0x14, 0xc2, - 0xc6, 0x7c, 0xfd, 0x78, 0x9e, 0xb7, 0x98, 0x79, 0xe4, 0xf6, 0xde, 0x44, 0xd7, 0x77, 0x3f, 0x70, - 0xd7, 0x5e, 0xd9, 0xdf, 0x2b, 0x03, 0x4b, 0x44, 0xcd, 0xf2, 0x3d, 0xee, 0xa2, 0x8f, 0x9a, 0x29, - 0xc5, 0xad, 0xa2, 0xd2, 0x5f, 0xf3, 0xc6, 0x55, 0x4a, 0x72, 0x3e, 0x82, 0x79, 0x19, 0xca, 0xb3, - 0x9c, 0xb0, 0xd4, 0x03, 0x27, 0xf4, 0x65, 0xee, 0xf6, 0x72, 0xf1, 0xb9, 0xdb, 0x6b, 0xd9, 0xbc, - 0xed, 0xfb, 0x4f, 0x71, 0xdf, 0x03, 0x39, 0xc5, 0xbf, 0x62, 0x71, 0xc6, 0x93, 0x99, 0x05, 0xad, - 0x6e, 0x58, 0xfb, 0xa8, 0x1b, 0x4f, 0x41, 0x35, 0x16, 0x9c, 0x59, 0xa8, 0x25, 0xda, 0x55, 0x41, - 0x94, 0x63, 0x85, 0xc1, 0x1e, 0x77, 0xf6, 0xfd, 0xf0, 0xd6, 0x85, 0x66, 0x2b, 0xd9, 0x15, 0x0a, - 0x8a, 0x7e, 0xdc, 0x59, 0x41, 0xb0, 0x81, 0x65, 0xff, 0xbd, 0x12, 0x5f, 0x81, 0xc2, 0xdf, 0xe5, - 0xf9, 0xcc, 0x73, 0x9c, 0xbd, 0xbb, 0x8a, 0x7c, 0x18, 0xc0, 0x0d, 0x9b, 0x2d, 0xaa, 0xbc, 0xae, - 0x85, 0xe2, 0xfa, 0xef, 0xd2, 0x91, 0x1f, 0xff, 0x17, 0xed, 0xe9, 0xcf, 0xd0, 0x65, 0xd8, 0xa0, - 0x97, 0xe2, 0xa5, 0xe5, 0x03, 0x79, 0x69, 0x8a, 0xad, 0xf4, 0xed, 0xcf, 0x56, 0xec, 0xbf, 0xb4, - 0x20, 0xa5, 0x66, 0xa1, 0x16, 0x54, 0x68, 0x77, 0x77, 0xc5, 0x0e, 0x5d, 0x2e, 0x4e, 0xa7, 0xa3, - 0xac, 0x51, 0x2c, 0x7b, 0xf6, 0x13, 0x73, 0x42, 0xc8, 0x17, 0x6e, 0x31, 0x7c, 0x54, 0xaf, 0x16, - 0x47, 0xf0, 0x52, 0x18, 0x6e, 0xf1, 0x3b, 0x6c, 0xed, 0x62, 0x63, 0x3f, 0x0f, 0x63, 0x1d, 0x9d, - 0x62, 0x2f, 0xef, 0x85, 0x54, 0xfa, 0x64, 0x96, 0x2b, 0x8b, 0x12, 0xc6, 0x1c, 0x66, 0x7f, 0xdd, - 0x82, 0x13, 0xd9, 0xe6, 0xd1, 0x1b, 0x16, 0x8c, 0xc5, 0xd9, 0xf6, 0x8e, 0x6b, 0xec, 0x94, 0x6b, - 0x6b, 0x07, 0x08, 0x77, 0x76, 0xc2, 0xfe, 0xbf, 0x62, 0xf1, 0xdf, 0xf0, 0x82, 0x7a, 0x78, 0x4b, - 0x29, 0x26, 0x56, 0x57, 0xc5, 0x84, 0xee, 0x47, 0x77, 0x93, 0xd4, 0xdb, 0x7e, 0x47, 0xcc, 0xf1, - 0xaa, 0x28, 0xc7, 0x0a, 0x83, 0x85, 0x58, 0xb6, 0xc5, 0xe3, 0x0e, 0x99, 0x45, 0x39, 0x27, 0xca, - 0xb1, 0xc2, 0x40, 0xcf, 0xc2, 0x90, 0xf1, 0x91, 0x72, 0x5d, 0x32, 0x2d, 0xdf, 0x10, 0x99, 0x31, - 0x4e, 0x61, 0xa1, 0x49, 0x00, 0xa5, 0xe4, 0x48, 0x11, 0xc9, 0xac, 0x5d, 0x8a, 0x13, 0xc5, 0xd8, - 0xc0, 0x60, 0x01, 0xcd, 0x7e, 0x3b, 0x66, 0xd7, 0x39, 0xfd, 0x3a, 0xe1, 0xf0, 0xac, 0x28, 0xc3, - 0x0a, 0x4a, 0xb9, 0x49, 0xd3, 0x09, 0xda, 0x8e, 0x4f, 0x47, 0x48, 0x9c, 0x5f, 0xd5, 0x36, 0x5c, - 0x52, 0x10, 0x6c, 0x60, 0xd1, 0x2f, 0x4e, 0xbc, 0x26, 0x79, 0x29, 0x0c, 0xa4, 0x4b, 0xa2, 0xbe, - 0xe1, 0x13, 0xe5, 0x58, 0x61, 0xd8, 0x7f, 0x61, 0xc1, 0xa8, 0xce, 0xa4, 0xc0, 0xdf, 0xd8, 0x37, - 0x8f, 0xdb, 0xd6, 0x81, 0xc7, 0xed, 0x74, 0xdc, 0x78, 0xa9, 0xa7, 0xb8, 0x71, 0x33, 0xa4, 0xbb, - 0xbc, 0x6f, 0x48, 0xf7, 0x8f, 0xe9, 0xf7, 0x9b, 0x79, 0xec, 0xf7, 0x60, 0xde, 0xdb, 0xcd, 0xc8, - 0x86, 0x7e, 0xd7, 0x51, 0x19, 0x87, 0x86, 0xf8, 0x81, 0x64, 0x76, 0x9a, 0x21, 0x09, 0x88, 0xbd, - 0x0c, 0x35, 0x75, 0xd1, 0x25, 0x4f, 0xbf, 0x56, 0xfe, 0xe9, 0xb7, 0xa7, 0xd0, 0xd2, 0x99, 0xf5, - 0x6f, 0x7e, 0xff, 0xb1, 0xb7, 0xfc, 0xd1, 0xf7, 0x1f, 0x7b, 0xcb, 0x77, 0xbf, 0xff, 0xd8, 0x5b, - 0x3e, 0x76, 0xfb, 0x31, 0xeb, 0x9b, 0xb7, 0x1f, 0xb3, 0xfe, 0xe8, 0xf6, 0x63, 0xd6, 0x77, 0x6f, - 0x3f, 0x66, 0x7d, 0xef, 0xf6, 0x63, 0xd6, 0x17, 0xfe, 0xeb, 0x63, 0x6f, 0x79, 0x29, 0xd7, 0x27, - 0x95, 0xfe, 0x78, 0xda, 0xad, 0x4f, 0x6d, 0x9f, 0x67, 0x6e, 0x91, 0x74, 0x7b, 0x4d, 0x19, 0x6b, - 0x6a, 0x4a, 0x6e, 0xaf, 0xff, 0x17, 0x00, 0x00, 0xff, 0xff, 0x45, 0x1c, 0x89, 0x97, 0xf1, 0xeb, - 0x00, 0x00, + 0x75, 0x98, 0x66, 0x17, 0x0b, 0xec, 0x3e, 0x7c, 0x91, 0x4d, 0xf2, 0x0e, 0xc7, 0xfb, 0x00, 0x3d, + 0x67, 0x9f, 0xce, 0xd1, 0x1d, 0xe0, 0xa3, 0xef, 0xe4, 0x8b, 0x4f, 0x1f, 0xc6, 0x07, 0x09, 0x82, + 0x04, 0x08, 0x5c, 0x2f, 0x48, 0x4a, 0x27, 0x9f, 0x4e, 0x83, 0xdd, 0xc6, 0x62, 0x88, 0xd9, 0x99, + 0xbd, 0x99, 0x59, 0x10, 0x7b, 0x96, 0x64, 0xc9, 0x92, 0x6c, 0xd9, 0xfa, 0x8c, 0x94, 0x2a, 0x9f, + 0x13, 0x4b, 0x91, 0x25, 0x25, 0x95, 0x54, 0x4a, 0x65, 0x25, 0xf9, 0x11, 0xa7, 0x6c, 0x97, 0x2b, + 0x76, 0xca, 0xa5, 0xc4, 0x49, 0xd9, 0x51, 0xa9, 0x2c, 0x25, 0xb6, 0x11, 0x89, 0x71, 0xca, 0xae, + 0xfc, 0x70, 0x55, 0x9c, 0xfc, 0x48, 0x31, 0xa9, 0x54, 0xaa, 0xbf, 0x7b, 0x66, 0x67, 0x81, 0x05, + 0x31, 0x00, 0x29, 0xf9, 0xfe, 0xed, 0xf6, 0x7b, 0xd3, 0xaf, 0xa7, 0xa7, 0xfb, 0xbd, 0xd7, 0xef, + 0xab, 0x61, 0xa9, 0xe1, 0xc6, 0x9b, 0xed, 0xf5, 0xa9, 0x5a, 0xd0, 0x9c, 0x76, 0xc2, 0x46, 0xd0, + 0x0a, 0x83, 0x9b, 0xec, 0xc7, 0xd3, 0xb5, 0xfa, 0xf4, 0xf6, 0xf9, 0xe9, 0xd6, 0x56, 0x63, 0xda, + 0x69, 0xb9, 0xd1, 0xb4, 0xd3, 0x6a, 0x79, 0x6e, 0xcd, 0x89, 0xdd, 0xc0, 0x9f, 0xde, 0x7e, 0xc6, + 0xf1, 0x5a, 0x9b, 0xce, 0x33, 0xd3, 0x0d, 0xe2, 0x93, 0xd0, 0x89, 0x49, 0x7d, 0xaa, 0x15, 0x06, + 0x71, 0x80, 0xde, 0xa6, 0x7b, 0x9b, 0x92, 0xbd, 0xb1, 0x1f, 0xaf, 0xd4, 0xea, 0x53, 0xdb, 0xe7, + 0xa7, 0x5a, 0x5b, 0x8d, 0x29, 0xda, 0xdb, 0x94, 0xd1, 0xdb, 0x94, 0xec, 0xed, 0xec, 0xd3, 0xc6, + 0x58, 0x1a, 0x41, 0x23, 0x98, 0x66, 0x9d, 0xae, 0xb7, 0x37, 0xd8, 0x3f, 0xf6, 0x87, 0xfd, 0xe2, + 0xc4, 0xce, 0xda, 0x5b, 0xcf, 0x47, 0x53, 0x6e, 0x40, 0x87, 0x37, 0x5d, 0x0b, 0x42, 0x32, 0xbd, + 0xdd, 0x35, 0xa0, 0xb3, 0x97, 0x34, 0x0e, 0xd9, 0x89, 0x89, 0x1f, 0xb9, 0x81, 0x1f, 0x3d, 0x4d, + 0x87, 0x40, 0xc2, 0x6d, 0x12, 0x9a, 0xaf, 0x67, 0x20, 0x64, 0xf5, 0xf4, 0xac, 0xee, 0xa9, 0xe9, + 0xd4, 0x36, 0x5d, 0x9f, 0x84, 0x1d, 0xfd, 0x78, 0x93, 0xc4, 0x4e, 0xd6, 0x53, 0xd3, 0xbd, 0x9e, + 0x0a, 0xdb, 0x7e, 0xec, 0x36, 0x49, 0xd7, 0x03, 0x6f, 0xdd, 0xef, 0x81, 0xa8, 0xb6, 0x49, 0x9a, + 0x4e, 0xd7, 0x73, 0x3f, 0xde, 0xeb, 0xb9, 0x76, 0xec, 0x7a, 0xd3, 0xae, 0x1f, 0x47, 0x71, 0x98, + 0x7e, 0xc8, 0xfe, 0x55, 0x0b, 0x46, 0x67, 0x6e, 0x54, 0x67, 0xda, 0xf1, 0xe6, 0x5c, 0xe0, 0x6f, + 0xb8, 0x0d, 0xf4, 0x1c, 0x0c, 0xd7, 0xbc, 0x76, 0x14, 0x93, 0xf0, 0xaa, 0xd3, 0x24, 0x13, 0xd6, + 0x39, 0xeb, 0xc9, 0xca, 0xec, 0xa9, 0x6f, 0xec, 0x4e, 0xbe, 0xe9, 0xf6, 0xee, 0xe4, 0xf0, 0x9c, + 0x06, 0x61, 0x13, 0x0f, 0xfd, 0x28, 0x0c, 0x85, 0x81, 0x47, 0x66, 0xf0, 0xd5, 0x89, 0x02, 0x7b, + 0x64, 0x5c, 0x3c, 0x32, 0x84, 0x79, 0x33, 0x96, 0x70, 0x8a, 0xda, 0x0a, 0x83, 0x0d, 0xd7, 0x23, + 0x13, 0xc5, 0x24, 0xea, 0x2a, 0x6f, 0xc6, 0x12, 0x6e, 0xff, 0x71, 0x01, 0x60, 0xa6, 0xd5, 0x5a, + 0x0d, 0x83, 0x9b, 0xa4, 0x16, 0xa3, 0xf7, 0x41, 0x99, 0x4e, 0x73, 0xdd, 0x89, 0x1d, 0x36, 0xb0, + 0xe1, 0xf3, 0x3f, 0x36, 0xc5, 0xdf, 0x7a, 0xca, 0x7c, 0x6b, 0xbd, 0xc8, 0x28, 0xf6, 0xd4, 0xf6, + 0x33, 0x53, 0x2b, 0xeb, 0xf4, 0xf9, 0x65, 0x12, 0x3b, 0xb3, 0x48, 0x10, 0x03, 0xdd, 0x86, 0x55, + 0xaf, 0xc8, 0x87, 0x81, 0xa8, 0x45, 0x6a, 0xec, 0x1d, 0x86, 0xcf, 0x2f, 0x4d, 0x1d, 0x66, 0x35, + 0x4f, 0xe9, 0x91, 0x57, 0x5b, 0xa4, 0x36, 0x3b, 0x22, 0x28, 0x0f, 0xd0, 0x7f, 0x98, 0xd1, 0x41, + 0xdb, 0x30, 0x18, 0xc5, 0x4e, 0xdc, 0x8e, 0xd8, 0x54, 0x0c, 0x9f, 0xbf, 0x9a, 0x1b, 0x45, 0xd6, + 0xeb, 0xec, 0x98, 0xa0, 0x39, 0xc8, 0xff, 0x63, 0x41, 0xcd, 0xfe, 0x33, 0x0b, 0xc6, 0x34, 0xf2, + 0x92, 0x1b, 0xc5, 0xe8, 0xa7, 0xbb, 0x26, 0x77, 0xaa, 0xbf, 0xc9, 0xa5, 0x4f, 0xb3, 0xa9, 0x3d, + 0x21, 0x88, 0x95, 0x65, 0x8b, 0x31, 0xb1, 0x4d, 0x28, 0xb9, 0x31, 0x69, 0x46, 0x13, 0x85, 0x73, + 0xc5, 0x27, 0x87, 0xcf, 0x5f, 0xca, 0xeb, 0x3d, 0x67, 0x47, 0x05, 0xd1, 0xd2, 0x22, 0xed, 0x1e, + 0x73, 0x2a, 0xf6, 0x5f, 0x8f, 0x9a, 0xef, 0x47, 0x27, 0x1c, 0x3d, 0x03, 0xc3, 0x51, 0xd0, 0x0e, + 0x6b, 0x04, 0x93, 0x56, 0x10, 0x4d, 0x58, 0xe7, 0x8a, 0x74, 0xe9, 0xd1, 0x45, 0x5d, 0xd5, 0xcd, + 0xd8, 0xc4, 0x41, 0x9f, 0xb6, 0x60, 0xa4, 0x4e, 0xa2, 0xd8, 0xf5, 0x19, 0x7d, 0x39, 0xf8, 0xb5, + 0x43, 0x0f, 0x5e, 0x36, 0xce, 0xeb, 0xce, 0x67, 0x4f, 0x8b, 0x17, 0x19, 0x31, 0x1a, 0x23, 0x9c, + 0xa0, 0x4f, 0x37, 0x67, 0x9d, 0x44, 0xb5, 0xd0, 0x6d, 0xd1, 0xff, 0x62, 0xfb, 0xa8, 0xcd, 0x39, + 0xaf, 0x41, 0xd8, 0xc4, 0x43, 0x3e, 0x94, 0xe8, 0xe6, 0x8b, 0x26, 0x06, 0xd8, 0xf8, 0x17, 0x0f, + 0x37, 0x7e, 0x31, 0xa9, 0x74, 0x5f, 0xeb, 0xd9, 0xa7, 0xff, 0x22, 0xcc, 0xc9, 0xa0, 0x4f, 0x59, + 0x30, 0x21, 0x98, 0x03, 0x26, 0x7c, 0x42, 0x6f, 0x6c, 0xba, 0x31, 0xf1, 0xdc, 0x28, 0x9e, 0x28, + 0xb1, 0x31, 0x4c, 0xf7, 0xb7, 0xb6, 0x16, 0xc2, 0xa0, 0xdd, 0xba, 0xe2, 0xfa, 0xf5, 0xd9, 0x73, + 0x82, 0xd2, 0xc4, 0x5c, 0x8f, 0x8e, 0x71, 0x4f, 0x92, 0xe8, 0xf3, 0x16, 0x9c, 0xf5, 0x9d, 0x26, + 0x89, 0x5a, 0x0e, 0xfd, 0xb4, 0x1c, 0x3c, 0xeb, 0x39, 0xb5, 0x2d, 0x36, 0xa2, 0xc1, 0xbb, 0x1b, + 0x91, 0x2d, 0x46, 0x74, 0xf6, 0x6a, 0xcf, 0xae, 0xf1, 0x1e, 0x64, 0xd1, 0x57, 0x2c, 0x38, 0x19, + 0x84, 0xad, 0x4d, 0xc7, 0x27, 0x75, 0x09, 0x8d, 0x26, 0x86, 0xd8, 0xd6, 0x7b, 0xef, 0xe1, 0x3e, + 0xd1, 0x4a, 0xba, 0xdb, 0xe5, 0xc0, 0x77, 0xe3, 0x20, 0xac, 0x92, 0x38, 0x76, 0xfd, 0x46, 0x34, + 0x7b, 0xe6, 0xf6, 0xee, 0xe4, 0xc9, 0x2e, 0x2c, 0xdc, 0x3d, 0x1e, 0xf4, 0x33, 0x30, 0x1c, 0x75, + 0xfc, 0xda, 0x0d, 0xd7, 0xaf, 0x07, 0xb7, 0xa2, 0x89, 0x72, 0x1e, 0xdb, 0xb7, 0xaa, 0x3a, 0x14, + 0x1b, 0x50, 0x13, 0xc0, 0x26, 0xb5, 0xec, 0x0f, 0xa7, 0x97, 0x52, 0x25, 0xef, 0x0f, 0xa7, 0x17, + 0xd3, 0x1e, 0x64, 0xd1, 0x2f, 0x58, 0x30, 0x1a, 0xb9, 0x0d, 0xdf, 0x89, 0xdb, 0x21, 0xb9, 0x42, + 0x3a, 0xd1, 0x04, 0xb0, 0x81, 0x5c, 0x3e, 0xe4, 0xac, 0x18, 0x5d, 0xce, 0x9e, 0x11, 0x63, 0x1c, + 0x35, 0x5b, 0x23, 0x9c, 0xa4, 0x9b, 0xb5, 0xd1, 0xf4, 0xb2, 0x1e, 0xce, 0x77, 0xa3, 0xe9, 0x45, + 0xdd, 0x93, 0x24, 0xfa, 0x29, 0x38, 0xc1, 0x9b, 0xd4, 0xcc, 0x46, 0x13, 0x23, 0x8c, 0xd1, 0x9e, + 0xbe, 0xbd, 0x3b, 0x79, 0xa2, 0x9a, 0x82, 0xe1, 0x2e, 0x6c, 0xf4, 0x2a, 0x4c, 0xb6, 0x48, 0xd8, + 0x74, 0xe3, 0x15, 0xdf, 0xeb, 0x48, 0xf6, 0x5d, 0x0b, 0x5a, 0xa4, 0x2e, 0x86, 0x13, 0x4d, 0x8c, + 0x9e, 0xb3, 0x9e, 0x2c, 0xcf, 0xbe, 0x59, 0x0c, 0x73, 0x72, 0x75, 0x6f, 0x74, 0xbc, 0x5f, 0x7f, + 0xe8, 0xf7, 0x2d, 0x38, 0x6b, 0x70, 0xd9, 0x2a, 0x09, 0xb7, 0xdd, 0x1a, 0x99, 0xa9, 0xd5, 0x82, + 0xb6, 0x1f, 0x47, 0x13, 0x63, 0x6c, 0x1a, 0xd7, 0x8f, 0x82, 0xe7, 0x27, 0x49, 0xe9, 0x75, 0xd9, + 0x13, 0x25, 0xc2, 0x7b, 0x8c, 0xd4, 0xfe, 0xb7, 0x05, 0x38, 0x91, 0xd6, 0x00, 0xd0, 0x3f, 0xb2, + 0x60, 0xfc, 0xe6, 0xad, 0x78, 0x2d, 0xd8, 0x22, 0x7e, 0x34, 0xdb, 0xa1, 0x7c, 0x9a, 0xc9, 0xbe, + 0xe1, 0xf3, 0xb5, 0x7c, 0x75, 0x8d, 0xa9, 0xcb, 0x49, 0x2a, 0x17, 0xfc, 0x38, 0xec, 0xcc, 0x3e, + 0x28, 0xde, 0x69, 0xfc, 0xf2, 0x8d, 0x35, 0x13, 0x8a, 0xd3, 0x83, 0x3a, 0xfb, 0x09, 0x0b, 0x4e, + 0x67, 0x75, 0x81, 0x4e, 0x40, 0x71, 0x8b, 0x74, 0xb8, 0x26, 0x8a, 0xe9, 0x4f, 0xf4, 0x32, 0x94, + 0xb6, 0x1d, 0xaf, 0x4d, 0x84, 0x9a, 0xb6, 0x70, 0xb8, 0x17, 0x51, 0x23, 0xc3, 0xbc, 0xd7, 0x9f, + 0x2c, 0x3c, 0x6f, 0xd9, 0x7f, 0x58, 0x84, 0x61, 0xe3, 0xa3, 0x1d, 0x83, 0xea, 0x19, 0x24, 0x54, + 0xcf, 0xe5, 0xdc, 0xd6, 0x5b, 0x4f, 0xdd, 0xf3, 0x56, 0x4a, 0xf7, 0x5c, 0xc9, 0x8f, 0xe4, 0x9e, + 0xca, 0x27, 0x8a, 0xa1, 0x12, 0xb4, 0xe8, 0x31, 0x84, 0xea, 0x30, 0x03, 0x79, 0x7c, 0xc2, 0x15, + 0xd9, 0xdd, 0xec, 0xe8, 0xed, 0xdd, 0xc9, 0x8a, 0xfa, 0x8b, 0x35, 0x21, 0xfb, 0xdb, 0x16, 0x9c, + 0x36, 0xc6, 0x38, 0x17, 0xf8, 0x75, 0x97, 0x7d, 0xda, 0x73, 0x30, 0x10, 0x77, 0x5a, 0xf2, 0xa8, + 0xa3, 0x66, 0x6a, 0xad, 0xd3, 0x22, 0x98, 0x41, 0xe8, 0x89, 0xa5, 0x49, 0xa2, 0xc8, 0x69, 0x90, + 0xf4, 0xe1, 0x66, 0x99, 0x37, 0x63, 0x09, 0x47, 0x21, 0x20, 0xcf, 0x89, 0xe2, 0xb5, 0xd0, 0xf1, + 0x23, 0xd6, 0xfd, 0x9a, 0xdb, 0x24, 0x62, 0x82, 0xff, 0x56, 0x7f, 0x2b, 0x86, 0x3e, 0x31, 0xfb, + 0xc0, 0xed, 0xdd, 0x49, 0xb4, 0xd4, 0xd5, 0x13, 0xce, 0xe8, 0xdd, 0xfe, 0xbc, 0x05, 0x0f, 0x64, + 0x33, 0x18, 0xf4, 0x04, 0x0c, 0xf2, 0x73, 0xae, 0x78, 0x3b, 0xfd, 0x49, 0x58, 0x2b, 0x16, 0x50, + 0x34, 0x0d, 0x15, 0x25, 0xf0, 0xc4, 0x3b, 0x9e, 0x14, 0xa8, 0x15, 0x2d, 0x25, 0x35, 0x0e, 0x9d, + 0x34, 0xfa, 0x47, 0xa8, 0xa0, 0x6a, 0xd2, 0xd8, 0xc1, 0x90, 0x41, 0xec, 0x6f, 0x59, 0xf0, 0xc3, + 0xfd, 0xb0, 0xbd, 0xa3, 0x1b, 0x63, 0x15, 0xce, 0xd4, 0xc9, 0x86, 0xd3, 0xf6, 0xe2, 0x24, 0x45, + 0x31, 0xe8, 0x47, 0xc5, 0xc3, 0x67, 0xe6, 0xb3, 0x90, 0x70, 0xf6, 0xb3, 0xf6, 0x7f, 0xb1, 0x60, + 0xdc, 0x78, 0xad, 0x63, 0x38, 0x3a, 0xf9, 0xc9, 0xa3, 0xd3, 0x62, 0x6e, 0xdb, 0xb4, 0xc7, 0xd9, + 0xe9, 0x53, 0x16, 0x9c, 0x35, 0xb0, 0x96, 0x9d, 0xb8, 0xb6, 0x79, 0x61, 0xa7, 0x15, 0x92, 0x28, + 0xa2, 0x4b, 0xea, 0x51, 0x83, 0x1d, 0xcf, 0x0e, 0x8b, 0x1e, 0x8a, 0x57, 0x48, 0x87, 0xf3, 0xe6, + 0xa7, 0xa0, 0xcc, 0xf7, 0x5c, 0x10, 0x8a, 0x8f, 0xa4, 0xde, 0x6d, 0x45, 0xb4, 0x63, 0x85, 0x81, + 0x6c, 0x18, 0x64, 0x3c, 0x97, 0xf2, 0x20, 0xaa, 0x26, 0x00, 0xfd, 0xee, 0xd7, 0x59, 0x0b, 0x16, + 0x10, 0x3b, 0x4a, 0x0c, 0x67, 0x35, 0x24, 0x6c, 0x3d, 0xd4, 0x2f, 0xba, 0xc4, 0xab, 0x47, 0xf4, + 0x58, 0xe7, 0xf8, 0x7e, 0x10, 0x8b, 0x13, 0x9a, 0x71, 0xac, 0x9b, 0xd1, 0xcd, 0xd8, 0xc4, 0xa1, + 0x44, 0x3d, 0x67, 0x9d, 0x78, 0x7c, 0x46, 0x05, 0xd1, 0x25, 0xd6, 0x82, 0x05, 0xc4, 0xbe, 0x5d, + 0x60, 0x07, 0x48, 0xc5, 0xd1, 0xc8, 0x71, 0x58, 0x1f, 0xc2, 0x84, 0x08, 0x58, 0xcd, 0x8f, 0x1f, + 0x93, 0xde, 0x16, 0x88, 0xd7, 0x52, 0x52, 0x00, 0xe7, 0x4a, 0x75, 0x6f, 0x2b, 0xc4, 0x87, 0x8a, + 0x30, 0x99, 0x7c, 0xa0, 0x4b, 0x88, 0xd0, 0x23, 0xaf, 0x41, 0x28, 0x6d, 0x8f, 0x32, 0xf0, 0xb1, + 0x89, 0xd7, 0x83, 0x0f, 0x17, 0x8e, 0x92, 0x0f, 0x9b, 0x62, 0xa2, 0xb8, 0x8f, 0x98, 0x78, 0x42, + 0xcd, 0xfa, 0x40, 0x8a, 0xe7, 0x25, 0x45, 0xe5, 0x39, 0x18, 0x88, 0x62, 0xd2, 0x9a, 0x28, 0x25, + 0xd9, 0x6c, 0x35, 0x26, 0x2d, 0xcc, 0x20, 0xe8, 0xed, 0x30, 0x1e, 0x3b, 0x61, 0x83, 0xc4, 0x21, + 0xd9, 0x76, 0x99, 0xed, 0x92, 0x9d, 0x67, 0x2b, 0xb3, 0xa7, 0xa8, 0xd6, 0xb5, 0xc6, 0x40, 0x58, + 0x82, 0x70, 0x1a, 0xd7, 0xfe, 0xef, 0x05, 0x78, 0x30, 0xf9, 0x09, 0xb4, 0x60, 0x7c, 0x67, 0x42, + 0x30, 0xbe, 0xc5, 0x14, 0x8c, 0x77, 0x76, 0x27, 0x1f, 0xee, 0xf1, 0xd8, 0xf7, 0x8d, 0xdc, 0x44, + 0x0b, 0xa9, 0x8f, 0x30, 0x9d, 0xfc, 0x08, 0x77, 0x76, 0x27, 0x1f, 0xed, 0xf1, 0x8e, 0xa9, 0xaf, + 0xf4, 0x04, 0x0c, 0x86, 0xc4, 0x89, 0x02, 0x5f, 0x7c, 0x27, 0xf5, 0x35, 0x31, 0x6b, 0xc5, 0x02, + 0x6a, 0x7f, 0xb3, 0x92, 0x9e, 0xec, 0x05, 0x6e, 0x8f, 0x0d, 0x42, 0xe4, 0xc2, 0x00, 0x3b, 0xb5, + 0x71, 0xce, 0x72, 0xe5, 0x70, 0xbb, 0x90, 0x4a, 0x11, 0xd5, 0xf5, 0x6c, 0x99, 0x7e, 0x35, 0xda, + 0x84, 0x19, 0x09, 0xb4, 0x03, 0xe5, 0x9a, 0x3c, 0x4c, 0x15, 0xf2, 0x30, 0x3b, 0x8a, 0xa3, 0x94, + 0xa6, 0x38, 0x42, 0xd9, 0xbd, 0x3a, 0x81, 0x29, 0x6a, 0x88, 0x40, 0xb1, 0xe1, 0xc6, 0xe2, 0xb3, + 0x1e, 0xf2, 0xb8, 0xbc, 0xe0, 0x1a, 0xaf, 0x38, 0x44, 0x65, 0xd0, 0x82, 0x1b, 0x63, 0xda, 0x3f, + 0xfa, 0x98, 0x05, 0xc3, 0x51, 0xad, 0xb9, 0x1a, 0x06, 0xdb, 0x6e, 0x9d, 0x84, 0x42, 0xc7, 0x3c, + 0x24, 0x67, 0xab, 0xce, 0x2d, 0xcb, 0x0e, 0x35, 0x5d, 0x6e, 0xbe, 0xd0, 0x10, 0x6c, 0xd2, 0xa5, + 0x67, 0xaf, 0x07, 0xc5, 0xbb, 0xcf, 0x93, 0x1a, 0xdb, 0x71, 0xf2, 0xcc, 0xcc, 0x56, 0xca, 0xa1, + 0x75, 0xee, 0xf9, 0x76, 0x6d, 0x8b, 0xee, 0x37, 0x3d, 0xa0, 0x87, 0x6f, 0xef, 0x4e, 0x3e, 0x38, + 0x97, 0x4d, 0x13, 0xf7, 0x1a, 0x0c, 0x9b, 0xb0, 0x56, 0xdb, 0xf3, 0x30, 0x79, 0xb5, 0x4d, 0x98, + 0x45, 0x2c, 0x87, 0x09, 0x5b, 0xd5, 0x1d, 0xa6, 0x26, 0xcc, 0x80, 0x60, 0x93, 0x2e, 0x7a, 0x15, + 0x06, 0x9b, 0x4e, 0x1c, 0xba, 0x3b, 0xc2, 0x0c, 0x76, 0xc8, 0x53, 0xd0, 0x32, 0xeb, 0x4b, 0x13, + 0x67, 0x82, 0x9e, 0x37, 0x62, 0x41, 0x08, 0x35, 0xa1, 0xd4, 0x24, 0x61, 0x83, 0x4c, 0x94, 0xf3, + 0x30, 0xf9, 0x2f, 0xd3, 0xae, 0x34, 0xc1, 0x0a, 0x55, 0xae, 0x58, 0x1b, 0xe6, 0x54, 0xd0, 0xcb, + 0x50, 0x8e, 0x88, 0x47, 0x6a, 0x54, 0x3d, 0xaa, 0x30, 0x8a, 0x3f, 0xde, 0xa7, 0xaa, 0x48, 0xf5, + 0x92, 0xaa, 0x78, 0x94, 0x6f, 0x30, 0xf9, 0x0f, 0xab, 0x2e, 0xe9, 0x04, 0xb6, 0xbc, 0x76, 0xc3, + 0xf5, 0x27, 0x20, 0x8f, 0x09, 0x5c, 0x65, 0x7d, 0xa5, 0x26, 0x90, 0x37, 0x62, 0x41, 0xc8, 0xfe, + 0x6f, 0x16, 0xa0, 0x24, 0x53, 0x3b, 0x06, 0x9d, 0xf8, 0xd5, 0xa4, 0x4e, 0xbc, 0x94, 0xa7, 0xd2, + 0xd2, 0x43, 0x2d, 0xfe, 0xcd, 0x0a, 0xa4, 0xc4, 0xc1, 0x55, 0x12, 0xc5, 0xa4, 0xfe, 0x06, 0x0b, + 0x7f, 0x83, 0x85, 0xbf, 0xc1, 0xc2, 0x15, 0x0b, 0x5f, 0x4f, 0xb1, 0xf0, 0x77, 0x18, 0xbb, 0x5e, + 0xfb, 0xd7, 0x5f, 0x51, 0x0e, 0x78, 0x73, 0x04, 0x06, 0x02, 0xe5, 0x04, 0x97, 0xab, 0x2b, 0x57, + 0x33, 0x79, 0xf6, 0x2b, 0x49, 0x9e, 0x7d, 0x58, 0x12, 0x7f, 0x13, 0xb8, 0xf4, 0xef, 0x5b, 0xf0, + 0xe6, 0x24, 0xf7, 0x92, 0x2b, 0x67, 0xb1, 0xe1, 0x07, 0x21, 0x99, 0x77, 0x37, 0x36, 0x48, 0x48, + 0xfc, 0x1a, 0x89, 0x94, 0x6d, 0xc7, 0xea, 0x65, 0xdb, 0x41, 0xcf, 0xc2, 0xc8, 0xcd, 0x28, 0xf0, + 0x57, 0x03, 0xd7, 0x17, 0x2c, 0x88, 0x9e, 0x38, 0x4e, 0xdc, 0xde, 0x9d, 0x1c, 0xa1, 0x33, 0x2a, + 0xdb, 0x71, 0x02, 0x0b, 0xcd, 0xc1, 0xc9, 0x9b, 0xaf, 0xae, 0x3a, 0xb1, 0x61, 0x4d, 0x90, 0xe7, + 0x7e, 0xe6, 0x8f, 0xba, 0xfc, 0x62, 0x0a, 0x88, 0xbb, 0xf1, 0xed, 0xbf, 0x5f, 0x80, 0x87, 0x52, + 0x2f, 0x12, 0x78, 0x5e, 0xd0, 0x8e, 0xe9, 0x99, 0x08, 0x7d, 0xd1, 0x82, 0x13, 0xcd, 0xa4, 0xc1, + 0x22, 0x12, 0xe6, 0xee, 0x77, 0xe5, 0x26, 0x23, 0x52, 0x16, 0x91, 0xd9, 0x09, 0x31, 0x43, 0x27, + 0x52, 0x80, 0x08, 0x77, 0x8d, 0x05, 0xbd, 0x0c, 0x95, 0xa6, 0xb3, 0x73, 0xad, 0x55, 0x77, 0x62, + 0x79, 0x1c, 0xed, 0x6d, 0x45, 0x68, 0xc7, 0xae, 0x37, 0xc5, 0x23, 0x37, 0xa6, 0x16, 0xfd, 0x78, + 0x25, 0xac, 0xc6, 0xa1, 0xeb, 0x37, 0xb8, 0x91, 0x73, 0x59, 0x76, 0x83, 0x75, 0x8f, 0xf6, 0x17, + 0xac, 0xb4, 0x90, 0x52, 0xb3, 0x13, 0x3a, 0x31, 0x69, 0x74, 0xd0, 0xfb, 0xa1, 0x44, 0xcf, 0x8d, + 0x72, 0x56, 0x6e, 0xe4, 0x29, 0x39, 0x8d, 0x2f, 0xa1, 0x85, 0x28, 0xfd, 0x17, 0x61, 0x4e, 0xd4, + 0xfe, 0x62, 0x25, 0xad, 0x2c, 0x30, 0xdf, 0xfc, 0x79, 0x80, 0x46, 0xb0, 0x46, 0x9a, 0x2d, 0x8f, + 0x4e, 0x8b, 0xc5, 0x1c, 0x3c, 0xca, 0x54, 0xb2, 0xa0, 0x20, 0xd8, 0xc0, 0x42, 0xbf, 0x68, 0x01, + 0x34, 0xe4, 0x9a, 0x97, 0x8a, 0xc0, 0xb5, 0x3c, 0x5f, 0x47, 0xef, 0x28, 0x3d, 0x16, 0x45, 0x10, + 0x1b, 0xc4, 0xd1, 0xcf, 0x59, 0x50, 0x8e, 0xe5, 0xf0, 0xb9, 0x68, 0x5c, 0xcb, 0x73, 0x24, 0xf2, + 0xa5, 0xb5, 0x4e, 0xa4, 0xa6, 0x44, 0xd1, 0x45, 0x3f, 0x6f, 0x01, 0x44, 0x1d, 0xbf, 0xb6, 0x1a, + 0x78, 0x6e, 0xad, 0x23, 0x24, 0xe6, 0xf5, 0x5c, 0xcd, 0x39, 0xaa, 0xf7, 0xd9, 0x31, 0x3a, 0x1b, + 0xfa, 0x3f, 0x36, 0x28, 0xa3, 0x0f, 0x42, 0x39, 0x12, 0xcb, 0x4d, 0xc8, 0xc8, 0xb5, 0x7c, 0x8d, + 0x4a, 0xbc, 0x6f, 0xc1, 0x5e, 0xc5, 0x3f, 0xac, 0x68, 0xa2, 0x5f, 0xb6, 0x60, 0xbc, 0x95, 0x34, + 0x13, 0x0a, 0x71, 0x98, 0x1f, 0x0f, 0x48, 0x99, 0x21, 0xb9, 0xb5, 0x25, 0xd5, 0x88, 0xd3, 0xa3, + 0xa0, 0x1c, 0x50, 0xaf, 0xe0, 0x95, 0x16, 0x37, 0x59, 0x0e, 0x69, 0x0e, 0xb8, 0x90, 0x06, 0xe2, + 0x6e, 0x7c, 0xb4, 0x0a, 0xa7, 0xe9, 0xe8, 0x3a, 0x5c, 0xfd, 0x94, 0xe2, 0x25, 0x62, 0xc2, 0xb0, + 0x3c, 0xfb, 0x88, 0x58, 0x21, 0xcc, 0xd7, 0x91, 0xc6, 0xc1, 0x99, 0x4f, 0xa2, 0x3f, 0xb4, 0xe0, + 0x11, 0x97, 0x89, 0x01, 0xd3, 0x60, 0xaf, 0x25, 0x82, 0x70, 0xb4, 0x93, 0x5c, 0x79, 0x45, 0x2f, + 0xf1, 0x33, 0xfb, 0xc3, 0xe2, 0x0d, 0x1e, 0x59, 0xdc, 0x63, 0x48, 0x78, 0xcf, 0x01, 0xa3, 0x9f, + 0x80, 0x51, 0xb9, 0x2f, 0x56, 0x29, 0x0b, 0x66, 0x82, 0xb6, 0x32, 0x7b, 0xf2, 0xf6, 0xee, 0xe4, + 0xe8, 0x9a, 0x09, 0xc0, 0x49, 0x3c, 0xfb, 0xdf, 0x15, 0x13, 0x5e, 0x22, 0x65, 0xc3, 0x64, 0xec, + 0xa6, 0x26, 0xed, 0x3f, 0x92, 0x7b, 0xe6, 0xca, 0x6e, 0x94, 0x75, 0x49, 0xb3, 0x1b, 0xd5, 0x14, + 0x61, 0x83, 0x38, 0x55, 0x4a, 0x4f, 0x3a, 0x69, 0x4b, 0xa9, 0xe0, 0x80, 0x2f, 0xe7, 0x39, 0xa4, + 0x6e, 0x9f, 0xde, 0x43, 0x62, 0x68, 0x27, 0xbb, 0x40, 0xb8, 0x7b, 0x48, 0xe8, 0x03, 0x50, 0x09, + 0x55, 0x64, 0x4b, 0x31, 0x8f, 0xa3, 0x9a, 0x5c, 0x36, 0x62, 0x38, 0xca, 0x01, 0xa4, 0x63, 0x58, + 0x34, 0x45, 0xfb, 0x0f, 0x92, 0x8e, 0x31, 0x83, 0x77, 0xf4, 0xe1, 0xf4, 0xfb, 0xb4, 0x05, 0xc3, + 0x61, 0xe0, 0x79, 0xae, 0xdf, 0xa0, 0x7c, 0x4e, 0x08, 0xeb, 0xf7, 0x1c, 0x89, 0xbc, 0x14, 0x0c, + 0x8d, 0x69, 0xd6, 0x58, 0xd3, 0xc4, 0xe6, 0x00, 0xec, 0x3f, 0xb3, 0x60, 0xa2, 0x17, 0x3f, 0x46, + 0x04, 0x1e, 0x96, 0xcc, 0x46, 0x4d, 0xc5, 0x8a, 0x3f, 0x4f, 0x3c, 0xa2, 0xcc, 0xe6, 0xe5, 0xd9, + 0xc7, 0xc5, 0x6b, 0x3e, 0xbc, 0xda, 0x1b, 0x15, 0xef, 0xd5, 0x0f, 0x7a, 0x09, 0x4e, 0x18, 0xef, + 0x15, 0xa9, 0x89, 0xa9, 0xcc, 0x4e, 0x51, 0x05, 0x68, 0x26, 0x05, 0xbb, 0xb3, 0x3b, 0xf9, 0x40, + 0xba, 0x4d, 0x08, 0x8c, 0xae, 0x7e, 0xec, 0xaf, 0x16, 0xd2, 0x5f, 0x4b, 0xc9, 0xfa, 0xd7, 0xad, + 0x2e, 0x6b, 0xc2, 0xbb, 0x8e, 0x42, 0xbe, 0x32, 0xbb, 0x83, 0x0a, 0xc3, 0xe8, 0x8d, 0x73, 0x0f, + 0xdd, 0xf6, 0xf6, 0xbf, 0x1f, 0x80, 0x3d, 0x46, 0xd6, 0x87, 0xf2, 0x7e, 0x60, 0x3f, 0xea, 0x27, + 0x2d, 0xe5, 0x30, 0xe3, 0x7b, 0xb8, 0x7e, 0x54, 0x73, 0xcf, 0xcf, 0x4f, 0x11, 0x0f, 0x1d, 0x51, + 0x56, 0xf4, 0xa4, 0x6b, 0x0e, 0x7d, 0xc9, 0x4a, 0xba, 0xfc, 0x78, 0x50, 0xa3, 0x7b, 0x64, 0x63, + 0x32, 0xfc, 0x88, 0x7c, 0x60, 0xda, 0xfb, 0xd4, 0xcb, 0xc3, 0x38, 0x05, 0xb0, 0xe1, 0xfa, 0x8e, + 0xe7, 0xbe, 0x46, 0x4f, 0x47, 0x25, 0x26, 0xe0, 0x99, 0xc6, 0x74, 0x51, 0xb5, 0x62, 0x03, 0xe3, + 0xec, 0xdf, 0x86, 0x61, 0xe3, 0xcd, 0x33, 0x22, 0x5e, 0x4e, 0x9b, 0x11, 0x2f, 0x15, 0x23, 0x50, + 0xe5, 0xec, 0x3b, 0xe0, 0x44, 0x7a, 0x80, 0x07, 0x79, 0xde, 0xfe, 0xdf, 0x43, 0x69, 0x1f, 0xdc, + 0x1a, 0x09, 0x9b, 0x74, 0x68, 0x6f, 0x18, 0xb6, 0xde, 0x30, 0x6c, 0xbd, 0x61, 0xd8, 0x32, 0x7d, + 0x13, 0xc2, 0x68, 0x33, 0x74, 0x4c, 0x46, 0x9b, 0x84, 0x19, 0xaa, 0x9c, 0xbb, 0x19, 0xca, 0xfe, + 0x58, 0x97, 0xe5, 0x7e, 0x2d, 0x24, 0x04, 0x05, 0x50, 0xf2, 0x83, 0x3a, 0x91, 0x3a, 0xee, 0xe5, + 0x7c, 0x14, 0xb6, 0xab, 0x41, 0xdd, 0x08, 0x17, 0xa7, 0xff, 0x22, 0xcc, 0xe9, 0xd8, 0xb7, 0x4b, + 0x90, 0x50, 0x27, 0xf9, 0x77, 0xff, 0x51, 0x18, 0x0a, 0x49, 0x2b, 0xb8, 0x86, 0x97, 0x84, 0x2c, + 0xd3, 0x19, 0x25, 0xbc, 0x19, 0x4b, 0x38, 0x95, 0x79, 0x2d, 0x27, 0xde, 0x14, 0xc2, 0x4c, 0xc9, + 0xbc, 0x55, 0x27, 0xde, 0xc4, 0x0c, 0x82, 0xde, 0x01, 0x63, 0x71, 0xc2, 0x15, 0x2e, 0x5c, 0xbe, + 0x0f, 0x08, 0xdc, 0xb1, 0xa4, 0xa3, 0x1c, 0xa7, 0xb0, 0xd1, 0xab, 0x30, 0xb0, 0x49, 0xbc, 0xa6, + 0xf8, 0xf4, 0xd5, 0xfc, 0x64, 0x0d, 0x7b, 0xd7, 0x4b, 0xc4, 0x6b, 0x72, 0x4e, 0x48, 0x7f, 0x61, + 0x46, 0x8a, 0xae, 0xfb, 0xca, 0x56, 0x3b, 0x8a, 0x83, 0xa6, 0xfb, 0x9a, 0xb4, 0x74, 0xbe, 0x2b, + 0x67, 0xc2, 0x57, 0x64, 0xff, 0xdc, 0xa4, 0xa4, 0xfe, 0x62, 0x4d, 0x99, 0x8d, 0xa3, 0xee, 0x86, + 0x6c, 0xc9, 0x74, 0x84, 0xc1, 0x32, 0xef, 0x71, 0xcc, 0xcb, 0xfe, 0xf9, 0x38, 0xd4, 0x5f, 0xac, + 0x29, 0xa3, 0x8e, 0xda, 0x7f, 0xc3, 0x6c, 0x0c, 0xd7, 0x72, 0x1e, 0x03, 0xdf, 0x7b, 0x99, 0xfb, + 0xf0, 0x71, 0x28, 0xd5, 0x36, 0x9d, 0x30, 0x9e, 0x18, 0x61, 0x8b, 0x46, 0xad, 0xe2, 0x39, 0xda, + 0x88, 0x39, 0x0c, 0x3d, 0x0a, 0xc5, 0x90, 0x6c, 0xb0, 0xe8, 0x64, 0x23, 0x2e, 0x0a, 0x93, 0x0d, + 0x4c, 0xdb, 0xed, 0x5f, 0x2b, 0x24, 0xd5, 0xb6, 0xe4, 0x7b, 0xf3, 0xd5, 0x5e, 0x6b, 0x87, 0x91, + 0x34, 0x7f, 0x19, 0xab, 0x9d, 0x35, 0x63, 0x09, 0x47, 0x1f, 0xb6, 0x60, 0xe8, 0x66, 0x14, 0xf8, + 0x3e, 0x89, 0x85, 0x88, 0xbc, 0x9e, 0xf3, 0x54, 0x5c, 0xe6, 0xbd, 0xeb, 0x31, 0x88, 0x06, 0x2c, + 0xe9, 0xd2, 0xe1, 0x92, 0x9d, 0x9a, 0xd7, 0xae, 0x77, 0x85, 0xba, 0x5c, 0xe0, 0xcd, 0x58, 0xc2, + 0x29, 0xaa, 0xeb, 0x73, 0xd4, 0x81, 0x24, 0xea, 0xa2, 0x2f, 0x50, 0x05, 0xdc, 0xfe, 0xde, 0x10, + 0x9c, 0xc9, 0xdc, 0x1c, 0x54, 0xa1, 0x62, 0x2a, 0xcb, 0x45, 0xd7, 0x23, 0x32, 0xc8, 0x8b, 0x29, + 0x54, 0xd7, 0x55, 0x2b, 0x36, 0x30, 0xd0, 0xcf, 0x02, 0xb4, 0x9c, 0xd0, 0x69, 0x12, 0x65, 0x9e, + 0x3e, 0xb4, 0xde, 0x42, 0xc7, 0xb1, 0x2a, 0xfb, 0xd4, 0x47, 0x74, 0xd5, 0x14, 0x61, 0x83, 0x24, + 0x7a, 0x0e, 0x86, 0x43, 0xe2, 0x11, 0x27, 0x62, 0xc1, 0xed, 0xe9, 0x4c, 0x1d, 0xac, 0x41, 0xd8, + 0xc4, 0x43, 0x4f, 0xa8, 0x78, 0xb8, 0x54, 0x5c, 0x50, 0x32, 0x26, 0x0e, 0x7d, 0xc6, 0x82, 0xb1, + 0x0d, 0xd7, 0x23, 0x9a, 0xba, 0xc8, 0xab, 0x59, 0x39, 0xfc, 0x4b, 0x5e, 0x34, 0xfb, 0xd5, 0x1c, + 0x32, 0xd1, 0x1c, 0xe1, 0x14, 0x79, 0xfa, 0x99, 0xb7, 0x49, 0xc8, 0x58, 0xeb, 0x60, 0xf2, 0x33, + 0x5f, 0xe7, 0xcd, 0x58, 0xc2, 0xd1, 0x0c, 0x8c, 0xb7, 0x9c, 0x28, 0x9a, 0x0b, 0x49, 0x9d, 0xf8, + 0xb1, 0xeb, 0x78, 0x3c, 0xeb, 0xa5, 0xac, 0x83, 0xc5, 0x57, 0x93, 0x60, 0x9c, 0xc6, 0x47, 0xef, + 0x86, 0x07, 0xb9, 0xfd, 0x67, 0xd9, 0x8d, 0x22, 0xd7, 0x6f, 0xe8, 0x65, 0x20, 0xcc, 0x60, 0x93, + 0xa2, 0xab, 0x07, 0x17, 0xb3, 0xd1, 0x70, 0xaf, 0xe7, 0xd1, 0x53, 0x50, 0x8e, 0xb6, 0xdc, 0xd6, + 0x5c, 0x58, 0x8f, 0x98, 0xef, 0xa7, 0xac, 0x8d, 0xae, 0x55, 0xd1, 0x8e, 0x15, 0x06, 0xaa, 0xc1, + 0x08, 0xff, 0x24, 0x3c, 0xa0, 0x4f, 0xf0, 0xc7, 0xa7, 0x7b, 0x8a, 0x69, 0x91, 0xc4, 0x39, 0x85, + 0x9d, 0x5b, 0x17, 0xa4, 0x27, 0x8a, 0x3b, 0x4e, 0xae, 0x1b, 0xdd, 0xe0, 0x44, 0xa7, 0xc9, 0x13, + 0xdb, 0x70, 0x1f, 0x27, 0xb6, 0xe7, 0x60, 0x78, 0xab, 0xbd, 0x4e, 0xc4, 0xcc, 0x0b, 0xb6, 0xa5, + 0x56, 0xdf, 0x15, 0x0d, 0xc2, 0x26, 0x1e, 0x8b, 0xa5, 0x6c, 0xb9, 0xe2, 0x5f, 0x34, 0x31, 0x6a, + 0xc4, 0x52, 0xae, 0x2e, 0xca, 0x66, 0x6c, 0xe2, 0xd0, 0xa1, 0xd1, 0xb9, 0x58, 0x23, 0x11, 0x4b, + 0x95, 0xa0, 0xd3, 0xa5, 0x86, 0x56, 0x95, 0x00, 0xac, 0x71, 0xec, 0x5f, 0x29, 0x24, 0xad, 0x18, + 0x26, 0xc3, 0x41, 0x11, 0x65, 0x2b, 0xf1, 0x75, 0x27, 0x94, 0xca, 0xc7, 0x21, 0x13, 0x8d, 0x44, + 0xbf, 0xd7, 0x9d, 0xd0, 0x64, 0x50, 0x8c, 0x00, 0x96, 0x94, 0xd0, 0x4d, 0x18, 0x88, 0x3d, 0x27, + 0xa7, 0xcc, 0x44, 0x83, 0xa2, 0x36, 0x2a, 0x2d, 0xcd, 0x44, 0x98, 0xd1, 0x40, 0x8f, 0xd0, 0x93, + 0xd4, 0xba, 0xf4, 0x7a, 0x89, 0xc3, 0xcf, 0x7a, 0x84, 0x59, 0xab, 0xfd, 0xe7, 0xc3, 0x19, 0x32, + 0x42, 0x09, 0x65, 0x74, 0x1e, 0x80, 0x7e, 0xe2, 0xd5, 0x90, 0x6c, 0xb8, 0x3b, 0x42, 0x29, 0x52, + 0x7c, 0xe8, 0xaa, 0x82, 0x60, 0x03, 0x4b, 0x3e, 0x53, 0x6d, 0x6f, 0xd0, 0x67, 0x0a, 0xdd, 0xcf, + 0x70, 0x08, 0x36, 0xb0, 0xd0, 0xb3, 0x30, 0xe8, 0x36, 0x9d, 0x86, 0x0a, 0xca, 0x7d, 0x84, 0x32, + 0xa0, 0x45, 0xd6, 0x72, 0x67, 0x77, 0x72, 0x4c, 0x0d, 0x88, 0x35, 0x61, 0x81, 0x8b, 0xbe, 0x6a, + 0xc1, 0x48, 0x2d, 0x68, 0x36, 0x03, 0x9f, 0x1f, 0x65, 0xc5, 0xb9, 0xfc, 0xe6, 0x51, 0xa9, 0x2c, + 0x53, 0x73, 0x06, 0x31, 0x7e, 0x30, 0x57, 0x29, 0x94, 0x26, 0x08, 0x27, 0x46, 0x65, 0xf2, 0xa9, + 0xd2, 0x3e, 0x7c, 0xea, 0x37, 0x2c, 0x38, 0xc9, 0x9f, 0x35, 0x4e, 0xd8, 0x22, 0x5b, 0x30, 0x38, + 0xe2, 0xd7, 0xea, 0x32, 0x3a, 0x28, 0xc3, 0x6b, 0x17, 0x1c, 0x77, 0x0f, 0x12, 0x2d, 0xc0, 0xc9, + 0x8d, 0x20, 0xac, 0x11, 0x73, 0x22, 0x04, 0x93, 0x55, 0x1d, 0x5d, 0x4c, 0x23, 0xe0, 0xee, 0x67, + 0xd0, 0x75, 0x78, 0xc0, 0x68, 0x34, 0xe7, 0x81, 0xf3, 0xd9, 0xc7, 0x44, 0x6f, 0x0f, 0x5c, 0xcc, + 0xc4, 0xc2, 0x3d, 0x9e, 0x4e, 0xb2, 0xb4, 0x4a, 0x1f, 0x2c, 0xed, 0x15, 0x78, 0xa8, 0xd6, 0x3d, + 0x33, 0xdb, 0x51, 0x7b, 0x3d, 0xe2, 0x5c, 0xb7, 0x3c, 0xfb, 0x43, 0xa2, 0x83, 0x87, 0xe6, 0x7a, + 0x21, 0xe2, 0xde, 0x7d, 0xa0, 0xf7, 0x43, 0x39, 0x24, 0xec, 0xab, 0x44, 0x22, 0x75, 0xee, 0x90, + 0x96, 0x07, 0xad, 0x4d, 0xf3, 0x6e, 0xb5, 0x1c, 0x11, 0x0d, 0x11, 0x56, 0x14, 0xd1, 0x2d, 0x18, + 0x6a, 0x39, 0x71, 0x6d, 0x53, 0x24, 0xcc, 0x1d, 0xda, 0x4e, 0xae, 0x88, 0x33, 0xb7, 0x86, 0x91, + 0x62, 0xcf, 0x89, 0x60, 0x49, 0x8d, 0x6a, 0x56, 0xb5, 0xa0, 0xd9, 0x0a, 0x7c, 0xe2, 0xc7, 0x92, + 0xe5, 0x8f, 0x71, 0xdf, 0x83, 0x6c, 0xc5, 0x06, 0x06, 0x5a, 0x85, 0xd3, 0xcc, 0x0e, 0x77, 0xc3, + 0x8d, 0x37, 0x83, 0x76, 0x2c, 0x8f, 0x95, 0x82, 0xf7, 0x2b, 0xef, 0xd3, 0x52, 0x06, 0x0e, 0xce, + 0x7c, 0x32, 0x2d, 0xac, 0xc6, 0xef, 0x4e, 0x58, 0x9d, 0xd8, 0x5f, 0x58, 0x9d, 0x7d, 0x27, 0x9c, + 0xec, 0x62, 0x1a, 0x07, 0x32, 0xb6, 0xcd, 0xc3, 0x03, 0xd9, 0xdb, 0xf3, 0x40, 0x26, 0xb7, 0x7f, + 0x91, 0x8a, 0xb9, 0x36, 0x8e, 0x1f, 0x7d, 0x98, 0x6f, 0x1d, 0x28, 0x12, 0x7f, 0x5b, 0x48, 0xab, + 0x8b, 0x87, 0x5b, 0x25, 0x17, 0xfc, 0x6d, 0xce, 0x5d, 0x98, 0x8d, 0xea, 0x82, 0xbf, 0x8d, 0x69, + 0xdf, 0xe8, 0x73, 0x56, 0x42, 0x7d, 0xe6, 0x46, 0xdf, 0xf7, 0x1e, 0xc9, 0x79, 0xab, 0x6f, 0x8d, + 0xda, 0xfe, 0x0f, 0x05, 0x38, 0xb7, 0x5f, 0x27, 0x7d, 0x4c, 0xdf, 0xe3, 0x30, 0x18, 0xb1, 0x28, + 0x0a, 0xc1, 0xfe, 0x87, 0xe9, 0xae, 0xe0, 0x71, 0x15, 0xaf, 0x60, 0x01, 0x42, 0x1e, 0x14, 0x9b, + 0x4e, 0x4b, 0xd8, 0x02, 0x17, 0x0f, 0x9b, 0x9b, 0x46, 0xff, 0x3b, 0xde, 0xb2, 0xd3, 0xe2, 0xcb, + 0xd3, 0x68, 0xc0, 0x94, 0x0c, 0x8a, 0xa1, 0xe4, 0x84, 0xa1, 0x23, 0x5d, 0xf6, 0x57, 0xf2, 0xa1, + 0x37, 0x43, 0xbb, 0xe4, 0x1e, 0xcf, 0x44, 0x13, 0xe6, 0xc4, 0xec, 0x5f, 0x2e, 0x27, 0x12, 0x99, + 0x58, 0x1c, 0x46, 0x04, 0x83, 0xc2, 0x04, 0x68, 0xe5, 0x9d, 0x12, 0xc8, 0x33, 0x85, 0xd9, 0xe9, + 0x5a, 0xd4, 0x5b, 0x10, 0xa4, 0xd0, 0x27, 0x2c, 0x56, 0xd5, 0x40, 0x66, 0x87, 0x89, 0x33, 0xed, + 0xd1, 0x14, 0x59, 0x30, 0x6b, 0x25, 0xc8, 0x46, 0x6c, 0x52, 0x17, 0xd5, 0x49, 0x98, 0x2e, 0xdf, + 0x5d, 0x9d, 0x84, 0xe9, 0xe6, 0x12, 0x8e, 0x76, 0x32, 0xe2, 0x2d, 0x72, 0xc8, 0x8c, 0xef, 0x23, + 0xc2, 0xe2, 0x4b, 0x16, 0x9c, 0x74, 0xd3, 0x8e, 0x73, 0x71, 0x02, 0xbc, 0x91, 0x8f, 0xbd, 0xae, + 0xdb, 0x2f, 0xaf, 0x14, 0x87, 0x2e, 0x10, 0xee, 0x1e, 0x0c, 0xaa, 0xc3, 0x80, 0xeb, 0x6f, 0x04, + 0x42, 0x5d, 0x9a, 0x3d, 0xdc, 0xa0, 0x16, 0xfd, 0x8d, 0x40, 0xef, 0x66, 0xfa, 0x0f, 0xb3, 0xde, + 0xd1, 0x12, 0x9c, 0x96, 0xb9, 0x2c, 0x97, 0xdc, 0x28, 0x0e, 0xc2, 0xce, 0x92, 0xdb, 0x74, 0x63, + 0xa6, 0xea, 0x14, 0x67, 0x27, 0xa8, 0x24, 0xc2, 0x19, 0x70, 0x9c, 0xf9, 0x14, 0x7a, 0x0d, 0x86, + 0xa4, 0xb3, 0xba, 0x9c, 0xc7, 0x69, 0xba, 0x7b, 0xfd, 0xab, 0xc5, 0x54, 0x15, 0xde, 0x6a, 0x49, + 0x10, 0x7d, 0xdc, 0x82, 0x31, 0xfe, 0xfb, 0x52, 0xa7, 0xce, 0xd3, 0xe7, 0x2a, 0x79, 0x44, 0xa4, + 0x57, 0x13, 0x7d, 0xce, 0x22, 0x7a, 0x94, 0x4f, 0xb6, 0xe1, 0x14, 0x5d, 0xfb, 0xab, 0x23, 0xd0, + 0xed, 0xde, 0x4f, 0xfa, 0xf2, 0xad, 0xe3, 0xf6, 0xe5, 0xd3, 0x53, 0x5a, 0xa4, 0xdd, 0xf0, 0x39, + 0x6c, 0x33, 0x41, 0x55, 0xbb, 0x58, 0x3b, 0x7e, 0x0d, 0x33, 0x1a, 0x28, 0x84, 0xc1, 0x4d, 0xe2, + 0x78, 0xf1, 0x66, 0x3e, 0xde, 0xa0, 0x4b, 0xac, 0xaf, 0x74, 0x2e, 0x1c, 0x6f, 0xc5, 0x82, 0x12, + 0xda, 0x81, 0xa1, 0x4d, 0xbe, 0x16, 0xc5, 0xc1, 0x69, 0xf9, 0xb0, 0x93, 0x9b, 0x58, 0xe0, 0x7a, + 0xe5, 0x89, 0x06, 0x2c, 0xc9, 0xb1, 0xb8, 0x31, 0x23, 0xb2, 0x85, 0x73, 0x91, 0xfc, 0xd2, 0x00, + 0xfb, 0x0f, 0x6b, 0x79, 0x1f, 0x8c, 0x84, 0xa4, 0x16, 0xf8, 0x35, 0xd7, 0x23, 0xf5, 0x19, 0xe9, + 0xe9, 0x39, 0x48, 0xf6, 0x17, 0x33, 0xa4, 0x60, 0xa3, 0x0f, 0x9c, 0xe8, 0x91, 0x6d, 0x32, 0x95, + 0x11, 0x4e, 0x3f, 0x08, 0x11, 0x16, 0xfd, 0xa5, 0x9c, 0xf2, 0xcf, 0x59, 0x9f, 0x7c, 0x93, 0x25, + 0xdb, 0x70, 0x8a, 0x2e, 0x7a, 0x09, 0x20, 0x58, 0xe7, 0xc1, 0x61, 0x33, 0xb1, 0x30, 0xef, 0x1f, + 0xe4, 0x55, 0xc7, 0x78, 0x16, 0xa9, 0xec, 0x01, 0x1b, 0xbd, 0xa1, 0x2b, 0x00, 0x7c, 0xdb, 0xac, + 0x75, 0x5a, 0xf2, 0x74, 0x25, 0xd3, 0xf7, 0xa0, 0xaa, 0x20, 0x77, 0x76, 0x27, 0xbb, 0xcd, 0xad, + 0x2c, 0x02, 0xc6, 0x78, 0x1c, 0xfd, 0x0c, 0x0c, 0x45, 0xed, 0x66, 0xd3, 0x51, 0xc6, 0xff, 0x1c, + 0xf3, 0x52, 0x79, 0xbf, 0x06, 0x57, 0xe4, 0x0d, 0x58, 0x52, 0x44, 0x37, 0x29, 0x7f, 0x17, 0xec, + 0x89, 0xef, 0x22, 0xae, 0x9e, 0x70, 0x23, 0xd8, 0x5b, 0xe5, 0x69, 0x03, 0x67, 0xe0, 0xdc, 0xd9, + 0x9d, 0x7c, 0x20, 0xd9, 0xbe, 0x14, 0x88, 0x4c, 0xd1, 0xcc, 0x3e, 0xd1, 0x65, 0x59, 0x20, 0x8a, + 0xbe, 0xb6, 0xac, 0x5b, 0xf2, 0xa4, 0x2e, 0x10, 0xc5, 0x9a, 0x7b, 0xcf, 0x99, 0xf9, 0x30, 0x5a, + 0x86, 0x53, 0xb5, 0xc0, 0x8f, 0xc3, 0xc0, 0xf3, 0x78, 0x81, 0x34, 0x7e, 0xd0, 0xe5, 0xce, 0x81, + 0x87, 0xc5, 0xb0, 0x4f, 0xcd, 0x75, 0xa3, 0xe0, 0xac, 0xe7, 0xa8, 0x42, 0x9e, 0x16, 0x0e, 0x63, + 0xb9, 0xf8, 0x8d, 0x13, 0x7d, 0x0a, 0x0e, 0xa5, 0x2c, 0xbe, 0xfb, 0x88, 0x09, 0x3f, 0xe9, 0x3d, + 0x14, 0x5f, 0xec, 0x59, 0x18, 0x21, 0x3b, 0x31, 0x09, 0x7d, 0xc7, 0xbb, 0x86, 0x97, 0xa4, 0xad, + 0x9e, 0x6d, 0xcc, 0x0b, 0x46, 0x3b, 0x4e, 0x60, 0x21, 0x5b, 0x99, 0x9c, 0x8c, 0x94, 0x6c, 0x6e, + 0x72, 0x92, 0x06, 0x26, 0xfb, 0xeb, 0xc5, 0x84, 0xc2, 0x7a, 0x4f, 0x7c, 0x95, 0xac, 0xf6, 0x8f, + 0x2c, 0x92, 0xc4, 0x00, 0xe2, 0x20, 0x96, 0x27, 0x65, 0x55, 0xfb, 0x67, 0xc5, 0x24, 0x84, 0x93, + 0x74, 0xd1, 0x16, 0x94, 0x36, 0x83, 0x28, 0x96, 0xc7, 0xb3, 0x43, 0x9e, 0x04, 0x2f, 0x05, 0x51, + 0xcc, 0xb4, 0x2c, 0xf5, 0xda, 0xb4, 0x25, 0xc2, 0x9c, 0x06, 0x3d, 0xa3, 0x47, 0x9b, 0x4e, 0x58, + 0x8f, 0xe6, 0x58, 0x01, 0x85, 0x01, 0xa6, 0x5e, 0x29, 0x65, 0xba, 0xaa, 0x41, 0xd8, 0xc4, 0xb3, + 0xff, 0xc2, 0x4a, 0x38, 0x74, 0x6e, 0xb0, 0x68, 0xf8, 0x6d, 0xe2, 0x53, 0x16, 0x65, 0xc6, 0xdf, + 0xfd, 0x44, 0x2a, 0xb7, 0xf8, 0xcd, 0xbd, 0x6a, 0x19, 0xde, 0xa2, 0x3d, 0x4c, 0xb1, 0x2e, 0x8c, + 0x50, 0xbd, 0x0f, 0x59, 0xc9, 0x24, 0xf1, 0x42, 0x1e, 0xe7, 0x36, 0xb3, 0x50, 0xc2, 0xbe, 0xf9, + 0xe6, 0xf6, 0xe7, 0x2c, 0x18, 0x9a, 0x75, 0x6a, 0x5b, 0xc1, 0xc6, 0x06, 0x7a, 0x0a, 0xca, 0xf5, + 0x76, 0x68, 0xe6, 0xab, 0x2b, 0xcb, 0xcf, 0xbc, 0x68, 0xc7, 0x0a, 0x83, 0x2e, 0xfd, 0x0d, 0xa7, + 0x26, 0xcb, 0x25, 0x14, 0xf9, 0xd2, 0xbf, 0xc8, 0x5a, 0xb0, 0x80, 0xd0, 0xe9, 0x6f, 0x3a, 0x3b, + 0xf2, 0xe1, 0xb4, 0x37, 0x69, 0x59, 0x83, 0xb0, 0x89, 0x67, 0xff, 0x1b, 0x0b, 0x26, 0x66, 0x9d, + 0xc8, 0xad, 0xcd, 0xb4, 0xe3, 0xcd, 0x59, 0x37, 0x5e, 0x6f, 0xd7, 0xb6, 0x48, 0xcc, 0xcb, 0x6a, + 0xd0, 0x51, 0xb6, 0x23, 0xba, 0x03, 0xd5, 0x71, 0x59, 0x8d, 0xf2, 0x9a, 0x68, 0xc7, 0x0a, 0x03, + 0xbd, 0x06, 0xc3, 0x2d, 0x27, 0x8a, 0x6e, 0x05, 0x61, 0x1d, 0x93, 0x8d, 0x7c, 0x0a, 0xef, 0x54, + 0x49, 0x2d, 0x24, 0x31, 0x26, 0x1b, 0x22, 0xf2, 0x42, 0xf7, 0x8f, 0x4d, 0x62, 0xf6, 0x2f, 0x5a, + 0x70, 0x7a, 0x96, 0x38, 0x21, 0x09, 0x59, 0x9d, 0x1e, 0xf5, 0x22, 0xe8, 0x55, 0x28, 0xc7, 0xb4, + 0x85, 0x8e, 0xc8, 0xca, 0x77, 0x44, 0x2c, 0x66, 0x62, 0x4d, 0x74, 0x8e, 0x15, 0x19, 0xfb, 0xd3, + 0x16, 0x3c, 0x94, 0x35, 0x96, 0x39, 0x2f, 0x68, 0xd7, 0xef, 0xc5, 0x80, 0xfe, 0x9e, 0x05, 0x23, + 0xcc, 0x0f, 0x3d, 0x4f, 0x62, 0xc7, 0xf5, 0xba, 0x6a, 0x04, 0x5a, 0x7d, 0xd6, 0x08, 0x3c, 0x07, + 0x03, 0x9b, 0x41, 0x93, 0xa4, 0x63, 0x28, 0x2e, 0x05, 0x4d, 0x82, 0x19, 0x04, 0x3d, 0x43, 0x17, + 0xa1, 0xeb, 0xc7, 0x0e, 0xdd, 0x8e, 0xd2, 0x37, 0x30, 0xce, 0x17, 0xa0, 0x6a, 0xc6, 0x26, 0x8e, + 0xfd, 0xaf, 0x2b, 0x30, 0x24, 0x02, 0x7e, 0xfa, 0x2e, 0xf3, 0x22, 0x4d, 0x38, 0x85, 0x9e, 0x26, + 0x9c, 0x08, 0x06, 0x6b, 0xac, 0x58, 0xa9, 0x50, 0xcf, 0xaf, 0xe4, 0x12, 0x21, 0xc6, 0xeb, 0x9f, + 0xea, 0x61, 0xf1, 0xff, 0x58, 0x90, 0x42, 0x9f, 0xb5, 0x60, 0xbc, 0x16, 0xf8, 0x3e, 0xa9, 0x69, + 0xdd, 0x71, 0x20, 0x8f, 0x40, 0xa0, 0xb9, 0x64, 0xa7, 0xda, 0x09, 0x9a, 0x02, 0xe0, 0x34, 0x79, + 0xf4, 0x02, 0x8c, 0xf2, 0x39, 0xbb, 0x9e, 0x70, 0x68, 0xe8, 0xd2, 0x71, 0x26, 0x10, 0x27, 0x71, + 0xd1, 0x14, 0x77, 0x0c, 0x89, 0x22, 0x6d, 0x83, 0xda, 0xee, 0x6b, 0x94, 0x67, 0x33, 0x30, 0x50, + 0x08, 0x28, 0x24, 0x1b, 0x21, 0x89, 0x36, 0x45, 0x40, 0x14, 0xd3, 0x5b, 0x87, 0xee, 0xae, 0x40, + 0x03, 0xee, 0xea, 0x09, 0x67, 0xf4, 0x8e, 0xb6, 0x84, 0x0d, 0xa1, 0x9c, 0x07, 0x3f, 0x17, 0x9f, + 0xb9, 0xa7, 0x29, 0x61, 0x12, 0x4a, 0x4c, 0x74, 0x31, 0x7d, 0xb9, 0xc8, 0x93, 0x02, 0x99, 0x60, + 0xc3, 0xbc, 0x1d, 0xcd, 0xc3, 0x89, 0x54, 0xe1, 0xbb, 0x48, 0x38, 0x1e, 0x54, 0x02, 0x58, 0xaa, + 0x64, 0x5e, 0x84, 0xbb, 0x9e, 0x30, 0xed, 0x4b, 0xc3, 0xfb, 0xd8, 0x97, 0x3a, 0x2a, 0xec, 0x96, + 0xbb, 0x04, 0x5e, 0xcc, 0x65, 0x02, 0xfa, 0x8a, 0xb1, 0xfd, 0x54, 0x2a, 0xc6, 0x76, 0x94, 0x0d, + 0xe0, 0x7a, 0x3e, 0x03, 0x38, 0x78, 0x40, 0xed, 0xbd, 0x0c, 0x90, 0xfd, 0x5f, 0x16, 0xc8, 0xef, + 0x3a, 0xe7, 0xd4, 0x36, 0x09, 0x5d, 0x32, 0xe8, 0x1d, 0x30, 0xa6, 0x4c, 0x13, 0x5c, 0x25, 0xb2, + 0xd8, 0xaa, 0x51, 0xba, 0x33, 0x4e, 0x40, 0x71, 0x0a, 0x1b, 0x4d, 0x43, 0x85, 0xce, 0x13, 0x7f, + 0x94, 0xcb, 0x7d, 0x65, 0xfe, 0x98, 0x59, 0x5d, 0x14, 0x4f, 0x69, 0x1c, 0x14, 0xc0, 0x49, 0xcf, + 0x89, 0x62, 0x36, 0x82, 0x6a, 0xc7, 0xaf, 0xdd, 0x65, 0x79, 0x14, 0x96, 0x65, 0xb4, 0x94, 0xee, + 0x08, 0x77, 0xf7, 0x6d, 0xff, 0xc7, 0x12, 0x8c, 0x26, 0x38, 0xe3, 0x01, 0x15, 0x86, 0xa7, 0xa0, + 0x2c, 0x65, 0x78, 0xba, 0x0e, 0x94, 0x12, 0xf4, 0x0a, 0x83, 0x0a, 0xad, 0x75, 0x2d, 0x55, 0xd3, + 0x0a, 0x8e, 0x21, 0x70, 0xb1, 0x89, 0xc7, 0x98, 0x72, 0xec, 0x45, 0x73, 0x9e, 0x4b, 0xfc, 0x98, + 0x0f, 0x33, 0x1f, 0xa6, 0xbc, 0xb6, 0x54, 0x35, 0x3b, 0xd5, 0x4c, 0x39, 0x05, 0xc0, 0x69, 0xf2, + 0xe8, 0xa3, 0x16, 0x8c, 0x3a, 0xb7, 0x22, 0x5d, 0x51, 0x5b, 0x44, 0xd3, 0x1e, 0x52, 0x48, 0x25, + 0x8a, 0x74, 0x73, 0xab, 0x7e, 0xa2, 0x09, 0x27, 0x89, 0xa2, 0xd7, 0x2d, 0x40, 0x64, 0x87, 0xd4, + 0x64, 0xbc, 0xaf, 0x18, 0xcb, 0x60, 0x1e, 0x27, 0xf8, 0x0b, 0x5d, 0xfd, 0x72, 0xae, 0xde, 0xdd, + 0x8e, 0x33, 0xc6, 0x80, 0x2e, 0x03, 0xaa, 0xbb, 0x91, 0xb3, 0xee, 0x91, 0xb9, 0xa0, 0x29, 0x33, + 0x63, 0x85, 0x73, 0xfa, 0xac, 0x98, 0x67, 0x34, 0xdf, 0x85, 0x81, 0x33, 0x9e, 0x62, 0xab, 0x2c, + 0x0c, 0x76, 0x3a, 0xd7, 0x42, 0x8f, 0x49, 0x09, 0x73, 0x95, 0x89, 0x76, 0xac, 0x30, 0xec, 0xbf, + 0x2c, 0xaa, 0xad, 0xac, 0x83, 0xdb, 0x1d, 0x23, 0xc8, 0xd6, 0xba, 0xfb, 0x20, 0x5b, 0x1d, 0x24, + 0xd4, 0x9d, 0xef, 0x9d, 0x48, 0x0f, 0x2d, 0xdc, 0xa3, 0xf4, 0xd0, 0x9f, 0xb3, 0x12, 0xb5, 0xd6, + 0x86, 0xcf, 0xbf, 0x94, 0x6f, 0x60, 0xfd, 0x14, 0x0f, 0x60, 0x4a, 0xc9, 0x95, 0x54, 0xdc, 0xda, + 0x53, 0x50, 0xde, 0xf0, 0x1c, 0x56, 0x21, 0x84, 0x6d, 0x54, 0x23, 0xb8, 0xea, 0xa2, 0x68, 0xc7, + 0x0a, 0x83, 0x72, 0x7d, 0xa3, 0xd3, 0x03, 0x71, 0xed, 0xff, 0x5c, 0x84, 0x61, 0x43, 0xe2, 0x67, + 0xaa, 0x6f, 0xd6, 0x7d, 0xa6, 0xbe, 0x15, 0x0e, 0xa0, 0xbe, 0xfd, 0x2c, 0x54, 0x6a, 0x52, 0x1a, + 0xe5, 0x53, 0x3b, 0x3e, 0x2d, 0xe3, 0xb4, 0x40, 0x52, 0x4d, 0x58, 0xd3, 0x44, 0x0b, 0x89, 0x14, + 0xc4, 0x84, 0x5d, 0x20, 0x2b, 0x47, 0x50, 0x48, 0xb4, 0xee, 0x67, 0xd2, 0x7e, 0xfc, 0xd2, 0xfe, + 0x7e, 0x7c, 0xfb, 0xdb, 0x96, 0xfa, 0xb8, 0xc7, 0x50, 0x6b, 0xe6, 0x66, 0xb2, 0xd6, 0xcc, 0x85, + 0x5c, 0xa6, 0xb9, 0x47, 0x91, 0x99, 0xab, 0x30, 0x34, 0x17, 0x34, 0x9b, 0x8e, 0x5f, 0x47, 0x3f, + 0x02, 0x43, 0x35, 0xfe, 0x53, 0xd8, 0xd0, 0x98, 0xa7, 0x5a, 0x40, 0xb1, 0x84, 0xa1, 0x47, 0x60, + 0xc0, 0x09, 0x1b, 0xd2, 0x6e, 0xc6, 0x22, 0xca, 0x66, 0xc2, 0x46, 0x84, 0x59, 0xab, 0xfd, 0xcf, + 0x07, 0x80, 0x05, 0x72, 0x38, 0x21, 0xa9, 0xaf, 0x05, 0xac, 0xe4, 0xeb, 0x91, 0xfa, 0x77, 0xf5, + 0xa1, 0xee, 0x7e, 0xf6, 0xf1, 0x1a, 0x7e, 0xbe, 0xe2, 0x71, 0xfb, 0xf9, 0xb2, 0x5d, 0xb7, 0x03, + 0xf7, 0x91, 0xeb, 0xd6, 0xfe, 0xa4, 0x05, 0x48, 0x45, 0xff, 0xe8, 0xd8, 0x8a, 0x69, 0xa8, 0xa8, + 0x38, 0x20, 0xa1, 0x00, 0x6a, 0x16, 0x21, 0x01, 0x58, 0xe3, 0xf4, 0x71, 0x92, 0x7f, 0x5c, 0xf2, + 0xef, 0x62, 0x32, 0xb0, 0x9e, 0x71, 0x7d, 0xc1, 0xce, 0xed, 0xdf, 0x2d, 0xc0, 0x03, 0x5c, 0x75, + 0x58, 0x76, 0x7c, 0xa7, 0x41, 0x9a, 0x74, 0x54, 0xfd, 0x46, 0xcb, 0xd4, 0xe8, 0x11, 0xd2, 0x95, + 0x81, 0xf2, 0x87, 0xdd, 0xbb, 0x7c, 0xcf, 0xf1, 0x5d, 0xb6, 0xe8, 0xbb, 0x31, 0x66, 0x9d, 0xa3, + 0x08, 0xca, 0xf2, 0x62, 0x15, 0xc1, 0x8b, 0x73, 0x22, 0xa4, 0xd8, 0x92, 0x90, 0xb2, 0x04, 0x2b, + 0x42, 0x54, 0x94, 0x7a, 0x41, 0x6d, 0x0b, 0x93, 0x56, 0x90, 0x16, 0xa5, 0x4b, 0xa2, 0x1d, 0x2b, + 0x0c, 0xbb, 0x09, 0xe3, 0x72, 0x0e, 0x5b, 0x57, 0x48, 0x07, 0x93, 0x0d, 0x2a, 0x7f, 0x6a, 0xb2, + 0xc9, 0xb8, 0xeb, 0x45, 0xc9, 0x9f, 0x39, 0x13, 0x88, 0x93, 0xb8, 0xb2, 0x0a, 0x6c, 0x21, 0xbb, + 0x0a, 0xac, 0xfd, 0xbb, 0x16, 0xa4, 0x05, 0xa0, 0x51, 0xf3, 0xd2, 0xda, 0xb3, 0xe6, 0xe5, 0x01, + 0xaa, 0x46, 0xfe, 0x34, 0x0c, 0x3b, 0x31, 0xd5, 0x70, 0xb8, 0x35, 0xa2, 0x78, 0x77, 0x5e, 0xb4, + 0xe5, 0xa0, 0xee, 0x6e, 0xb8, 0xcc, 0x0a, 0x61, 0x76, 0x67, 0xbf, 0x6e, 0x41, 0x65, 0x3e, 0xec, + 0x1c, 0x3c, 0x1f, 0xa9, 0x3b, 0xdb, 0xa8, 0x70, 0xa0, 0x6c, 0x23, 0x99, 0xcf, 0x54, 0xec, 0x95, + 0xcf, 0x64, 0xff, 0xf5, 0x00, 0x9c, 0xec, 0x4a, 0xb0, 0x43, 0xcf, 0xc3, 0x88, 0xfa, 0x4a, 0xd2, + 0x04, 0x59, 0x31, 0xa3, 0x62, 0x35, 0x0c, 0x27, 0x30, 0xfb, 0xd8, 0xaa, 0x8b, 0x70, 0x2a, 0x24, + 0xaf, 0xb6, 0x49, 0x9b, 0xcc, 0x6c, 0xc4, 0x24, 0xac, 0x92, 0x5a, 0xe0, 0xd7, 0x79, 0xd1, 0xd8, + 0xe2, 0xec, 0x83, 0xb7, 0x77, 0x27, 0x4f, 0xe1, 0x6e, 0x30, 0xce, 0x7a, 0x06, 0xb5, 0x60, 0xd4, + 0x33, 0x75, 0x67, 0x71, 0x64, 0xbb, 0x2b, 0xb5, 0x5b, 0xad, 0xd6, 0x44, 0x33, 0x4e, 0x12, 0x48, + 0x2a, 0xe0, 0xa5, 0x7b, 0xa4, 0x80, 0x7f, 0x44, 0x2b, 0xe0, 0x3c, 0x28, 0xe6, 0x3d, 0x39, 0x27, + 0x58, 0xf6, 0xa3, 0x81, 0x1f, 0x46, 0xa7, 0x7e, 0x11, 0xca, 0x32, 0x60, 0xb0, 0xaf, 0x40, 0x3b, + 0xb3, 0x9f, 0x1e, 0xbc, 0xfd, 0x09, 0xf8, 0xe1, 0x0b, 0x61, 0x68, 0x4c, 0xe6, 0xd5, 0x20, 0x9e, + 0xf1, 0xbc, 0xe0, 0x16, 0x55, 0x57, 0xae, 0x45, 0x44, 0xd8, 0xc4, 0xec, 0x3b, 0x05, 0xc8, 0x38, + 0x5e, 0xd2, 0x3d, 0xa9, 0x75, 0xa4, 0xc4, 0x9e, 0x3c, 0x98, 0x9e, 0x84, 0x76, 0x78, 0x50, 0x25, + 0xd7, 0x06, 0xde, 0x9d, 0xf7, 0xf1, 0x58, 0xc7, 0x59, 0x2a, 0x4e, 0xa9, 0x62, 0x2d, 0xcf, 0x03, + 0x68, 0xd5, 0x56, 0x64, 0xfd, 0xa8, 0x40, 0x09, 0xad, 0x01, 0x63, 0x03, 0x0b, 0x3d, 0x07, 0xc3, + 0xae, 0x1f, 0xc5, 0x8e, 0xe7, 0x5d, 0x72, 0xfd, 0x58, 0x98, 0x7d, 0x95, 0xda, 0xb3, 0xa8, 0x41, + 0xd8, 0xc4, 0x3b, 0xfb, 0x56, 0xe3, 0xfb, 0x1d, 0xe4, 0xbb, 0x6f, 0xc2, 0x43, 0x0b, 0x6e, 0xac, + 0x72, 0xd5, 0xd4, 0x7a, 0xa3, 0x9a, 0xab, 0xe2, 0x55, 0x56, 0xcf, 0xdc, 0x4b, 0x23, 0x57, 0xac, + 0x90, 0x4c, 0x6d, 0x4b, 0xe7, 0x8a, 0xd9, 0xcf, 0xc3, 0xe9, 0x05, 0x37, 0xbe, 0xe8, 0x7a, 0xe4, + 0x80, 0x44, 0xec, 0xdf, 0x19, 0x84, 0x11, 0x33, 0xeb, 0xfa, 0x20, 0xec, 0xfa, 0xd3, 0x54, 0x39, + 0x15, 0x6f, 0xe7, 0x2a, 0x8f, 0xee, 0x8d, 0x43, 0xa7, 0x80, 0x67, 0xcf, 0x98, 0xa1, 0x9f, 0x6a, + 0x9a, 0xd8, 0x1c, 0x00, 0xba, 0x05, 0xa5, 0x0d, 0x96, 0xcb, 0x54, 0xcc, 0x23, 0x16, 0x27, 0x6b, + 0x46, 0xf5, 0x76, 0xe4, 0xd9, 0x50, 0x9c, 0x1e, 0xd5, 0x29, 0xc2, 0x64, 0x82, 0xac, 0x11, 0xb3, + 0x2e, 0x84, 0x95, 0xc2, 0xe8, 0x25, 0x12, 0x4a, 0x77, 0x21, 0x12, 0x12, 0x0c, 0x7a, 0xf0, 0x1e, + 0x31, 0x68, 0x96, 0x97, 0x16, 0x6f, 0x32, 0x8d, 0x57, 0x24, 0xd9, 0x0c, 0xb1, 0x49, 0x30, 0xf2, + 0xd2, 0x12, 0x60, 0x9c, 0xc6, 0x47, 0x1f, 0x54, 0x2c, 0xbe, 0x9c, 0x87, 0xc5, 0xdc, 0x5c, 0xd1, + 0x47, 0xcd, 0xdd, 0x3f, 0x59, 0x80, 0xb1, 0x05, 0xbf, 0xbd, 0xba, 0xb0, 0xda, 0x5e, 0xf7, 0xdc, + 0xda, 0x15, 0xd2, 0xa1, 0x2c, 0x7c, 0x8b, 0x74, 0x16, 0xe7, 0xc5, 0x0e, 0x52, 0x6b, 0xe6, 0x0a, + 0x6d, 0xc4, 0x1c, 0x46, 0x99, 0xd1, 0x86, 0xeb, 0x37, 0x48, 0xd8, 0x0a, 0x5d, 0x61, 0xcc, 0x36, + 0x98, 0xd1, 0x45, 0x0d, 0xc2, 0x26, 0x1e, 0xed, 0x3b, 0xb8, 0xe5, 0x93, 0x30, 0xad, 0xfa, 0xaf, + 0xd0, 0x46, 0xcc, 0x61, 0x14, 0x29, 0x0e, 0xdb, 0xc2, 0x56, 0x64, 0x20, 0xad, 0xd1, 0x46, 0xcc, + 0x61, 0x74, 0xa7, 0x47, 0xed, 0x75, 0x16, 0xea, 0x94, 0xca, 0xe8, 0xa9, 0xf2, 0x66, 0x2c, 0xe1, + 0x14, 0x75, 0x8b, 0x74, 0xe6, 0x9d, 0xd8, 0x49, 0x27, 0x29, 0x5e, 0xe1, 0xcd, 0x58, 0xc2, 0x59, + 0x59, 0xdb, 0xe4, 0x74, 0x7c, 0xdf, 0x95, 0xb5, 0x4d, 0x0e, 0xbf, 0x87, 0xc5, 0xe1, 0xcb, 0x16, + 0x8c, 0x98, 0x01, 0x8a, 0xa8, 0x91, 0x52, 0xd3, 0x57, 0xba, 0xaa, 0xa2, 0xbf, 0x3d, 0xeb, 0xc6, + 0xd0, 0x86, 0x1b, 0x07, 0xad, 0xe8, 0x69, 0xe2, 0x37, 0x5c, 0x9f, 0xb0, 0x58, 0x0d, 0x1e, 0xd8, + 0x98, 0x88, 0x7e, 0x9c, 0x0b, 0xea, 0xe4, 0x2e, 0xf4, 0x7c, 0xfb, 0x06, 0x9c, 0xec, 0xca, 0x4c, + 0xed, 0x43, 0x05, 0xd9, 0xb7, 0x2e, 0x80, 0x8d, 0x61, 0x98, 0x76, 0x2c, 0x4b, 0xab, 0xcd, 0xc1, + 0x49, 0xbe, 0x91, 0x28, 0xa5, 0x6a, 0x6d, 0x93, 0x34, 0x55, 0xb6, 0x31, 0xf3, 0x9c, 0x5c, 0x4f, + 0x03, 0x71, 0x37, 0xbe, 0xfd, 0x29, 0x0b, 0x46, 0x13, 0xc9, 0xc2, 0x39, 0x29, 0x4b, 0x6c, 0xa7, + 0x05, 0x2c, 0x5e, 0x96, 0xe5, 0x2f, 0x14, 0x99, 0x30, 0xd5, 0x3b, 0x4d, 0x83, 0xb0, 0x89, 0x67, + 0x7f, 0xae, 0x00, 0x65, 0x19, 0xde, 0xd3, 0xc7, 0x50, 0x3e, 0x61, 0xc1, 0xa8, 0xf2, 0x56, 0x31, + 0xf3, 0x62, 0x21, 0x8f, 0x6c, 0x28, 0x3a, 0x02, 0x65, 0xa0, 0xf0, 0x37, 0x02, 0xad, 0xb9, 0x63, + 0x93, 0x18, 0x4e, 0xd2, 0x46, 0xd7, 0x01, 0xa2, 0x4e, 0x14, 0x93, 0xa6, 0x61, 0xe8, 0xb4, 0x8d, + 0x1d, 0x37, 0x55, 0x0b, 0x42, 0x42, 0xf7, 0xd7, 0xd5, 0xa0, 0x4e, 0xaa, 0x0a, 0x53, 0xab, 0x50, + 0xba, 0x0d, 0x1b, 0x3d, 0xd9, 0xbf, 0x5e, 0x80, 0x13, 0xe9, 0x21, 0xa1, 0xf7, 0xc0, 0x88, 0xa4, + 0x6e, 0x1c, 0x88, 0x65, 0x70, 0xd2, 0x08, 0x36, 0x60, 0x77, 0x76, 0x27, 0x27, 0xbb, 0x6f, 0x9f, + 0x9d, 0x32, 0x51, 0x70, 0xa2, 0x33, 0xee, 0x32, 0x14, 0xbe, 0xed, 0xd9, 0xce, 0x4c, 0xab, 0x25, + 0xfc, 0x7e, 0x86, 0xcb, 0xd0, 0x84, 0xe2, 0x14, 0x36, 0x5a, 0x85, 0xd3, 0x46, 0xcb, 0x55, 0xe2, + 0x36, 0x36, 0xd7, 0x83, 0x50, 0x9e, 0xc0, 0x1e, 0xd1, 0xa1, 0x90, 0xdd, 0x38, 0x38, 0xf3, 0x49, + 0x2a, 0xed, 0x6b, 0x4e, 0xcb, 0xa9, 0xb9, 0x71, 0x47, 0x58, 0x6e, 0x15, 0x6f, 0x9a, 0x13, 0xed, + 0x58, 0x61, 0xd8, 0x5f, 0x1e, 0x80, 0x13, 0x3c, 0xf6, 0x8f, 0xa8, 0xd0, 0x56, 0xf4, 0x1e, 0xa8, + 0x44, 0xb1, 0x13, 0xf2, 0xe3, 0xb7, 0x75, 0xe0, 0xe3, 0xb7, 0x4e, 0x15, 0x96, 0x9d, 0x60, 0xdd, + 0x1f, 0x7a, 0x89, 0x55, 0x51, 0x72, 0xa3, 0x4d, 0xd6, 0x7b, 0xe1, 0xee, 0x0e, 0xf7, 0x17, 0x55, + 0x0f, 0xd8, 0xe8, 0x0d, 0xbd, 0x0d, 0x4a, 0xad, 0x4d, 0x27, 0x92, 0x96, 0xa7, 0x27, 0xe4, 0x86, + 0x5b, 0xa5, 0x8d, 0x77, 0x76, 0x27, 0xcf, 0xa4, 0x5f, 0x95, 0x01, 0x30, 0x7f, 0xc8, 0x64, 0x5d, + 0x03, 0xfb, 0xdf, 0xf4, 0x51, 0x0f, 0x3b, 0xd5, 0x4b, 0x33, 0xe9, 0xbb, 0x21, 0xe6, 0x59, 0x2b, + 0x16, 0x50, 0xba, 0xb9, 0x37, 0x39, 0xc9, 0x3a, 0x45, 0x1e, 0x4c, 0x8a, 0xd1, 0x4b, 0x1a, 0x84, + 0x4d, 0x3c, 0xf4, 0xc9, 0xee, 0xc8, 0xd0, 0xa1, 0x23, 0x48, 0x1b, 0xe8, 0x37, 0x26, 0xf4, 0x02, + 0x54, 0xc4, 0x50, 0xd7, 0x02, 0xf4, 0x3c, 0x8c, 0x70, 0xc3, 0xc6, 0x6c, 0xe8, 0xf8, 0xb5, 0xcd, + 0xb4, 0x39, 0x62, 0xcd, 0x80, 0xe1, 0x04, 0xa6, 0xbd, 0x0c, 0x03, 0x7d, 0x72, 0xab, 0xbe, 0x4e, + 0x99, 0x2f, 0x42, 0x99, 0x76, 0x27, 0x8f, 0x12, 0x79, 0x74, 0x19, 0x40, 0x59, 0xde, 0x1b, 0x87, + 0x6c, 0x28, 0xba, 0x8e, 0x8c, 0x00, 0x50, 0x5b, 0x68, 0x31, 0x8a, 0xda, 0x6c, 0xd9, 0x51, 0x20, + 0x7a, 0x1c, 0x8a, 0x64, 0xa7, 0x95, 0x76, 0xf5, 0x5f, 0xd8, 0x69, 0xb9, 0x21, 0x89, 0x28, 0x12, + 0xd9, 0x69, 0xa1, 0xb3, 0x50, 0x70, 0xeb, 0x62, 0x45, 0x82, 0xc0, 0x29, 0x2c, 0xce, 0xe3, 0x82, + 0x5b, 0xb7, 0x77, 0xa0, 0xa2, 0x2e, 0xaa, 0x43, 0x5b, 0x52, 0x4f, 0xb0, 0xf2, 0x88, 0xfd, 0x94, + 0xfd, 0xf6, 0xd0, 0x10, 0xda, 0x00, 0x3a, 0xab, 0x3d, 0x2f, 0x59, 0x76, 0x0e, 0x06, 0x6a, 0x81, + 0xa8, 0x1e, 0x52, 0xd6, 0xdd, 0x30, 0x05, 0x81, 0x41, 0xec, 0x1b, 0x30, 0x76, 0xc5, 0x0f, 0x6e, + 0xb1, 0xfb, 0x64, 0x58, 0xf9, 0x54, 0xda, 0xf1, 0x06, 0xfd, 0x91, 0x56, 0x47, 0x19, 0x14, 0x73, + 0x98, 0x2a, 0xec, 0x58, 0xe8, 0x55, 0xd8, 0xd1, 0xfe, 0x90, 0x05, 0x23, 0x2a, 0x3d, 0x76, 0x61, + 0x7b, 0x8b, 0xf6, 0xdb, 0x08, 0x83, 0x76, 0x2b, 0xdd, 0x2f, 0xbb, 0x13, 0x13, 0x73, 0x98, 0x99, + 0x37, 0x5e, 0xd8, 0x27, 0x6f, 0xfc, 0x1c, 0x0c, 0x6c, 0xb9, 0x7e, 0x3d, 0x6d, 0xbe, 0xbb, 0xe2, + 0xfa, 0x75, 0xcc, 0x20, 0x74, 0x08, 0x27, 0xd4, 0x10, 0xa4, 0xf2, 0xf1, 0x3c, 0x8c, 0xac, 0xb7, + 0x5d, 0xaf, 0x2e, 0xeb, 0xc2, 0xa6, 0xb6, 0xcb, 0xac, 0x01, 0xc3, 0x09, 0x4c, 0x74, 0x1e, 0x60, + 0xdd, 0xf5, 0x9d, 0xb0, 0xb3, 0xaa, 0xb5, 0x1d, 0x25, 0x00, 0x67, 0x15, 0x04, 0x1b, 0x58, 0xf6, + 0x67, 0x8a, 0x30, 0x96, 0x4c, 0x12, 0xee, 0xe3, 0x28, 0xff, 0x38, 0x94, 0x58, 0xde, 0x70, 0xfa, + 0xd3, 0xf2, 0x52, 0xaa, 0x1c, 0x86, 0x22, 0x18, 0xe4, 0x9b, 0x39, 0x9f, 0x7b, 0x05, 0xd5, 0x20, + 0x95, 0xcd, 0x8f, 0x45, 0xc8, 0x0a, 0x13, 0xaa, 0x20, 0x85, 0x3e, 0x6a, 0xc1, 0x50, 0xd0, 0x32, + 0x0b, 0x02, 0xbe, 0x3b, 0xcf, 0x04, 0x6a, 0x91, 0x55, 0x29, 0x4e, 0x5f, 0xea, 0xd3, 0xcb, 0xcf, + 0x21, 0x49, 0x9f, 0xfd, 0x49, 0x18, 0x31, 0x31, 0xf7, 0x3b, 0x80, 0x95, 0xcd, 0x03, 0xd8, 0x27, + 0xcc, 0x45, 0x21, 0x52, 0xc4, 0xfb, 0xd8, 0x6e, 0xd7, 0xa0, 0x54, 0x53, 0x61, 0x44, 0x77, 0x55, + 0x4d, 0x5c, 0x95, 0x33, 0x62, 0x2e, 0x5a, 0xde, 0x9b, 0xfd, 0x6d, 0xcb, 0x58, 0x1f, 0x98, 0x44, + 0x8b, 0x75, 0x14, 0x42, 0xb1, 0xb1, 0xbd, 0x25, 0xc4, 0xfc, 0xe5, 0x9c, 0xa6, 0x77, 0x61, 0x7b, + 0x4b, 0xaf, 0x71, 0xb3, 0x15, 0x53, 0x62, 0x7d, 0x18, 0xa6, 0x13, 0x95, 0x04, 0x8a, 0xfb, 0x57, + 0x12, 0xb0, 0x5f, 0x2f, 0xc0, 0xc9, 0xae, 0x45, 0x85, 0x5e, 0x83, 0x52, 0x48, 0xdf, 0x52, 0xbc, + 0xde, 0x52, 0x6e, 0xb9, 0xff, 0xd1, 0x62, 0x5d, 0x8b, 0xcf, 0x64, 0x3b, 0xe6, 0x24, 0xd1, 0x65, + 0x40, 0x3a, 0xd8, 0x4d, 0x59, 0xc5, 0xf9, 0x2b, 0xab, 0x88, 0x98, 0x99, 0x2e, 0x0c, 0x9c, 0xf1, + 0x14, 0x7a, 0x21, 0x6d, 0x5c, 0x2f, 0x26, 0xbd, 0x3a, 0x7b, 0xd9, 0xc9, 0xed, 0xdf, 0x2a, 0xc0, + 0x68, 0xa2, 0x3e, 0x23, 0xf2, 0xa0, 0x4c, 0x3c, 0xe6, 0x72, 0x93, 0xc2, 0xe6, 0xb0, 0xb7, 0x2d, + 0x28, 0x01, 0x79, 0x41, 0xf4, 0x8b, 0x15, 0x85, 0xfb, 0x23, 0x50, 0xe6, 0x79, 0x18, 0x91, 0x03, + 0x7a, 0xb7, 0xd3, 0xf4, 0xc4, 0x04, 0xaa, 0x35, 0x7a, 0xc1, 0x80, 0xe1, 0x04, 0xa6, 0xfd, 0x7b, + 0x45, 0x98, 0xe0, 0x3e, 0xca, 0xba, 0x5a, 0x79, 0xcb, 0xf2, 0x6c, 0xff, 0x4b, 0xba, 0x8a, 0xaa, + 0x95, 0xc7, 0x95, 0xc2, 0xbd, 0x08, 0xf5, 0x15, 0xdf, 0xf9, 0xc5, 0x54, 0x7c, 0x27, 0x3f, 0xe2, + 0x35, 0x8e, 0x68, 0x44, 0xdf, 0x5f, 0x01, 0x9f, 0xff, 0xb8, 0x00, 0xe3, 0xa9, 0x9b, 0xa3, 0xd0, + 0x67, 0x92, 0x97, 0x0d, 0x58, 0x79, 0xf8, 0x6f, 0xf6, 0xbc, 0x4c, 0xe8, 0x60, 0x57, 0x0e, 0xdc, + 0xa3, 0xad, 0x62, 0x7f, 0xab, 0x00, 0x63, 0xc9, 0x2b, 0xaf, 0xee, 0xc3, 0x99, 0x7a, 0x0b, 0x54, + 0xd8, 0xad, 0x2e, 0xec, 0xa6, 0x76, 0xee, 0xfe, 0xe1, 0x17, 0x68, 0xc8, 0x46, 0xac, 0xe1, 0xf7, + 0xc5, 0x4d, 0x0e, 0xf6, 0x3f, 0xb5, 0xe0, 0x0c, 0x7f, 0xcb, 0xf4, 0x3a, 0xfc, 0x3b, 0x59, 0xb3, + 0xfb, 0x72, 0xbe, 0x03, 0x4c, 0x55, 0xff, 0xdd, 0x6f, 0x7e, 0xd9, 0xc5, 0xca, 0x62, 0xb4, 0xc9, + 0xa5, 0x70, 0x1f, 0x0e, 0xf6, 0x40, 0x8b, 0xc1, 0xfe, 0x56, 0x11, 0xf4, 0x5d, 0xd2, 0xc8, 0x15, + 0x19, 0xe8, 0xb9, 0x54, 0x41, 0xae, 0x76, 0xfc, 0x9a, 0xbe, 0xb5, 0xba, 0x9c, 0x4a, 0x40, 0xff, + 0x05, 0x0b, 0x86, 0x5d, 0xdf, 0x8d, 0x5d, 0x87, 0x99, 0x6c, 0xf2, 0xb9, 0x10, 0x56, 0x91, 0x5b, + 0xe4, 0x3d, 0x07, 0xa1, 0xe9, 0x33, 0x54, 0xc4, 0xb0, 0x49, 0x19, 0xbd, 0x4f, 0xa4, 0x60, 0x14, + 0x73, 0x2b, 0xe3, 0x50, 0x4e, 0xe5, 0x5d, 0xb4, 0xa8, 0xe2, 0x15, 0x87, 0x39, 0x55, 0x3f, 0xc1, + 0xb4, 0x2b, 0x55, 0x50, 0x5f, 0xa9, 0xb6, 0xac, 0x19, 0x73, 0x42, 0x76, 0x04, 0xa8, 0x7b, 0x2e, + 0x0e, 0x18, 0xde, 0x3e, 0x0d, 0x15, 0xa7, 0x1d, 0x07, 0x4d, 0x3a, 0x4d, 0xc2, 0xad, 0xa9, 0x03, + 0xf8, 0x25, 0x00, 0x6b, 0x1c, 0xfb, 0x33, 0x25, 0x48, 0xa5, 0x84, 0xa3, 0x1d, 0xf3, 0x1e, 0x74, + 0x2b, 0xdf, 0x7b, 0xd0, 0xd5, 0x60, 0xb2, 0xee, 0x42, 0x47, 0x0d, 0x69, 0xfd, 0xe2, 0x3a, 0xe6, + 0x8b, 0x69, 0xeb, 0xd7, 0x4f, 0xf5, 0x67, 0xe1, 0xa7, 0x6b, 0x75, 0x9a, 0x57, 0xd4, 0x9a, 0xda, + 0xd7, 0x50, 0xb6, 0xdf, 0x95, 0xb8, 0x1f, 0x16, 0xd7, 0xd7, 0x60, 0x12, 0xb5, 0xbd, 0x58, 0xac, + 0x86, 0x17, 0x73, 0xdc, 0x65, 0xbc, 0x63, 0x5d, 0x57, 0x85, 0xff, 0xc7, 0x06, 0xd1, 0xa4, 0x39, + 0x73, 0xf0, 0x48, 0xcd, 0x99, 0x43, 0xb9, 0x9a, 0x33, 0xcf, 0x03, 0xb0, 0xb5, 0xcd, 0xc3, 0x70, + 0xcb, 0xcc, 0xca, 0xa4, 0x58, 0x21, 0x56, 0x10, 0x6c, 0x60, 0xd9, 0x3f, 0x06, 0xc9, 0xc2, 0x40, + 0x68, 0x52, 0xd6, 0x21, 0xe2, 0x1e, 0x0f, 0x96, 0x01, 0x95, 0x28, 0x19, 0xf4, 0x1b, 0x16, 0x98, + 0xd5, 0x8b, 0xd0, 0xab, 0xbc, 0x4c, 0x92, 0x95, 0x87, 0x97, 0xda, 0xe8, 0x77, 0x6a, 0xd9, 0x69, + 0xa5, 0xc2, 0x25, 0x64, 0xad, 0xa4, 0xb3, 0x6f, 0x85, 0xb2, 0x84, 0x1e, 0x48, 0xa9, 0xfb, 0x20, + 0x9c, 0x92, 0xd9, 0xd4, 0xd2, 0x46, 0x2f, 0x3c, 0x9c, 0xfb, 0x9b, 0x7e, 0xa4, 0x3d, 0xa7, 0xd0, + 0xcb, 0x9e, 0xd3, 0xc7, 0x6d, 0xf8, 0xbf, 0x69, 0xc1, 0xb9, 0xf4, 0x00, 0xa2, 0xe5, 0xc0, 0x77, + 0xe3, 0x20, 0xac, 0x92, 0x38, 0x76, 0xfd, 0x06, 0xab, 0x0e, 0x79, 0xcb, 0x09, 0xe5, 0x6d, 0x1d, + 0x8c, 0x51, 0xde, 0x70, 0x42, 0x1f, 0xb3, 0x56, 0xd4, 0x81, 0x41, 0x1e, 0xab, 0x29, 0xb4, 0xf5, + 0x43, 0xee, 0x8d, 0x8c, 0xe9, 0xd0, 0xc7, 0x05, 0x1e, 0x27, 0x8a, 0x05, 0x41, 0xfb, 0xbb, 0x16, + 0xa0, 0x95, 0x6d, 0x12, 0x86, 0x6e, 0xdd, 0x88, 0x2e, 0x65, 0xd7, 0xc0, 0x19, 0xd7, 0xbd, 0x99, + 0xb9, 0xfe, 0xa9, 0x6b, 0xe0, 0x8c, 0x7f, 0xd9, 0xd7, 0xc0, 0x15, 0x0e, 0x76, 0x0d, 0x1c, 0x5a, + 0x81, 0x33, 0x4d, 0x7e, 0xdc, 0xe0, 0x57, 0x2b, 0xf1, 0xb3, 0x87, 0x4a, 0x4b, 0x7d, 0xe8, 0xf6, + 0xee, 0xe4, 0x99, 0xe5, 0x2c, 0x04, 0x9c, 0xfd, 0x9c, 0xfd, 0x56, 0x40, 0x3c, 0xa8, 0x74, 0x2e, + 0x2b, 0x2e, 0xae, 0xa7, 0xf9, 0xc5, 0xfe, 0x42, 0x09, 0xc6, 0x53, 0xb5, 0xdc, 0xe9, 0x51, 0xaf, + 0x3b, 0x10, 0xef, 0xd0, 0xf2, 0xbb, 0x7b, 0x78, 0x7d, 0x85, 0xf6, 0xf9, 0x50, 0x72, 0xfd, 0x56, + 0x3b, 0xce, 0x27, 0x2b, 0x9e, 0x0f, 0x62, 0x91, 0x76, 0x68, 0x98, 0x8b, 0xe9, 0x5f, 0xcc, 0xc9, + 0xe4, 0x19, 0x28, 0x98, 0x50, 0xc6, 0x07, 0xee, 0x91, 0x39, 0xe0, 0xc3, 0x3a, 0x6c, 0xaf, 0x94, + 0x87, 0x61, 0x31, 0xb5, 0x58, 0x8e, 0x3a, 0xac, 0xe3, 0xeb, 0x05, 0x18, 0x36, 0x3e, 0x1a, 0xfa, + 0xb5, 0x64, 0x6d, 0x3f, 0x2b, 0xbf, 0x57, 0x62, 0xfd, 0x4f, 0xe9, 0xea, 0x7d, 0xfc, 0x95, 0x9e, + 0xe8, 0x2e, 0xeb, 0x77, 0x67, 0x77, 0xf2, 0x44, 0xaa, 0x70, 0x5f, 0xa2, 0xd4, 0xdf, 0xd9, 0x0f, + 0xc0, 0x78, 0xaa, 0x9b, 0x8c, 0x57, 0x5e, 0x33, 0x5f, 0xf9, 0xd0, 0x66, 0x29, 0x73, 0xca, 0xbe, + 0x46, 0xa7, 0x4c, 0x24, 0xe3, 0x06, 0x1e, 0xe9, 0xc3, 0x06, 0x9b, 0xca, 0xb9, 0x2f, 0xf4, 0x99, + 0x73, 0xff, 0x24, 0x94, 0x5b, 0x81, 0xe7, 0xd6, 0x5c, 0x55, 0x6a, 0x97, 0x65, 0xf9, 0xaf, 0x8a, + 0x36, 0xac, 0xa0, 0xe8, 0x16, 0x54, 0x6e, 0xde, 0x8a, 0xb9, 0xf7, 0x47, 0xd8, 0xb7, 0xf3, 0x72, + 0xfa, 0x28, 0xa5, 0x45, 0xb9, 0x97, 0xb0, 0xa6, 0x85, 0x6c, 0x18, 0x64, 0x42, 0x50, 0x26, 0xe6, + 0x30, 0xdb, 0x3b, 0x93, 0x8e, 0x11, 0x16, 0x10, 0xfb, 0x2b, 0x15, 0x38, 0x9d, 0x75, 0xa1, 0x06, + 0x7a, 0x3f, 0x0c, 0xf2, 0x31, 0xe6, 0x73, 0x67, 0x53, 0x16, 0x8d, 0x05, 0xd6, 0xa1, 0x18, 0x16, + 0xfb, 0x8d, 0x05, 0x4d, 0x41, 0xdd, 0x73, 0xd6, 0xc5, 0x0a, 0x39, 0x1a, 0xea, 0x4b, 0x8e, 0xa6, + 0xbe, 0xe4, 0x70, 0xea, 0x9e, 0xb3, 0x8e, 0x76, 0xa0, 0xd4, 0x70, 0x63, 0xe2, 0x08, 0x23, 0xc2, + 0x8d, 0x23, 0x21, 0x4e, 0x1c, 0xae, 0xa5, 0xb1, 0x9f, 0x98, 0x13, 0x44, 0x5f, 0xb2, 0x60, 0x7c, + 0x3d, 0x59, 0xec, 0x43, 0x30, 0x4f, 0xe7, 0x08, 0x2e, 0x4d, 0x49, 0x12, 0xe2, 0xf7, 0x20, 0xa6, + 0x1a, 0x71, 0x7a, 0x38, 0xe8, 0x23, 0x16, 0x0c, 0x6d, 0xb8, 0x9e, 0x51, 0xb7, 0xfe, 0x08, 0x3e, + 0xce, 0x45, 0x46, 0x40, 0x9f, 0x38, 0xf8, 0xff, 0x08, 0x4b, 0xca, 0xbd, 0x24, 0xd5, 0xe0, 0x61, + 0x25, 0xd5, 0xd0, 0x3d, 0x92, 0x54, 0x1f, 0xb7, 0xa0, 0xa2, 0x66, 0x5a, 0x14, 0x4d, 0x78, 0xcf, + 0x11, 0x7e, 0x72, 0x6e, 0x39, 0x51, 0x7f, 0xb1, 0x26, 0x8e, 0x3e, 0x6b, 0xc1, 0xb0, 0xf3, 0x5a, + 0x3b, 0x24, 0x75, 0xb2, 0x1d, 0xb4, 0x22, 0x51, 0xca, 0xf0, 0xe5, 0xfc, 0x07, 0x33, 0x43, 0x89, + 0xcc, 0x93, 0xed, 0x95, 0x56, 0x24, 0x92, 0x06, 0x75, 0x03, 0x36, 0x87, 0x60, 0xef, 0x16, 0x60, + 0x72, 0x9f, 0x1e, 0xd0, 0xf3, 0x30, 0x12, 0x84, 0x0d, 0xc7, 0x77, 0x5f, 0x33, 0xab, 0xf7, 0x28, + 0x2d, 0x6b, 0xc5, 0x80, 0xe1, 0x04, 0xa6, 0x59, 0xd6, 0xa1, 0xb0, 0x4f, 0x59, 0x87, 0x73, 0x30, + 0x10, 0x92, 0x56, 0x90, 0x3e, 0x2c, 0xb0, 0x84, 0x1d, 0x06, 0x41, 0x8f, 0x42, 0xd1, 0x69, 0xb9, + 0x22, 0xb4, 0x44, 0x9d, 0x81, 0x66, 0x56, 0x17, 0x31, 0x6d, 0x4f, 0x54, 0x99, 0x29, 0x1d, 0x4b, + 0x95, 0x19, 0x2a, 0x06, 0x84, 0xef, 0x62, 0x50, 0x8b, 0x81, 0xa4, 0x4f, 0xc1, 0x7e, 0xbd, 0x08, + 0x8f, 0xee, 0xb9, 0x5e, 0x74, 0xcc, 0xa7, 0xb5, 0x47, 0xcc, 0xa7, 0x9c, 0x9e, 0xc2, 0x7e, 0xd3, + 0x53, 0xec, 0x31, 0x3d, 0x1f, 0xa1, 0xdb, 0x40, 0x56, 0x3d, 0xca, 0xe7, 0x1a, 0xdc, 0x5e, 0x45, + 0x94, 0xc4, 0x0e, 0x90, 0x50, 0xac, 0xe9, 0xd2, 0x33, 0x40, 0xa2, 0xa4, 0x41, 0x29, 0x0f, 0x31, + 0xd0, 0xb3, 0xf2, 0x10, 0x5f, 0xfb, 0xbd, 0xea, 0x24, 0xd8, 0xbf, 0x3d, 0x00, 0x8f, 0xf7, 0xc1, + 0xbd, 0xcd, 0x55, 0x6c, 0xf5, 0xb9, 0x8a, 0xbf, 0xcf, 0x3f, 0xd3, 0xc7, 0x32, 0x3f, 0x13, 0xce, + 0xff, 0x33, 0xed, 0xfd, 0x85, 0xd0, 0x53, 0x50, 0x76, 0xfd, 0x88, 0xd4, 0xda, 0x21, 0x8f, 0x7f, + 0x37, 0xb2, 0xf9, 0x16, 0x45, 0x3b, 0x56, 0x18, 0xf4, 0x4c, 0x57, 0x73, 0xe8, 0xf6, 0x1f, 0xca, + 0x29, 0x85, 0xdd, 0x4c, 0x0c, 0xe4, 0x2a, 0xc5, 0xdc, 0x0c, 0xe5, 0x00, 0x9c, 0x8c, 0xfd, 0x77, + 0x2d, 0x38, 0xdb, 0x5b, 0xc4, 0xa2, 0x67, 0x60, 0x78, 0x9d, 0x05, 0x6e, 0xb1, 0x0b, 0xd0, 0xe5, + 0xd2, 0x61, 0xef, 0xab, 0x9b, 0xb1, 0x89, 0x83, 0xe6, 0xe0, 0xa4, 0x19, 0xf1, 0xb5, 0x6c, 0x44, + 0x95, 0x30, 0x23, 0xc0, 0x5a, 0x1a, 0x88, 0xbb, 0xf1, 0xed, 0xef, 0x15, 0xb3, 0x87, 0xc5, 0x55, + 0xb1, 0x83, 0xac, 0x66, 0xb1, 0x56, 0x0b, 0x7d, 0x70, 0xdc, 0xe2, 0x71, 0x73, 0xdc, 0x81, 0x5e, + 0x1c, 0x17, 0xcd, 0xc3, 0x09, 0xe3, 0x86, 0x3a, 0x5e, 0xd4, 0x80, 0x47, 0x19, 0xaa, 0x8a, 0x44, + 0xab, 0x29, 0x38, 0xee, 0x7a, 0xe2, 0x3e, 0x5f, 0x7a, 0x5f, 0x2e, 0xc0, 0x43, 0x3d, 0xb5, 0xdf, + 0x63, 0x92, 0x28, 0xe6, 0xe7, 0x1f, 0x38, 0x9e, 0xcf, 0x6f, 0x7e, 0x94, 0xd2, 0x7e, 0x1f, 0xc5, + 0xfe, 0xe3, 0x42, 0xcf, 0x8d, 0x40, 0x4f, 0x42, 0x3f, 0xb0, 0xb3, 0xf4, 0x02, 0x8c, 0x3a, 0xad, + 0x16, 0xc7, 0x63, 0x11, 0xdb, 0xa9, 0x0a, 0x68, 0x33, 0x26, 0x10, 0x27, 0x71, 0xfb, 0xd2, 0x69, + 0xfe, 0xd4, 0x82, 0x0a, 0x26, 0x1b, 0x9c, 0x1b, 0xa1, 0x9b, 0x62, 0x8a, 0xac, 0x3c, 0x6a, 0x50, + 0xd3, 0x89, 0x8d, 0x5c, 0x56, 0x9b, 0x39, 0x6b, 0xb2, 0x0f, 0x9b, 0x43, 0xac, 0xee, 0xac, 0x2b, + 0xf6, 0xbe, 0xb3, 0xce, 0xfe, 0xce, 0x10, 0x7d, 0xbd, 0x56, 0x30, 0x17, 0x92, 0x7a, 0x44, 0xbf, + 0x6f, 0x3b, 0xf4, 0xc4, 0x22, 0x51, 0xdf, 0xf7, 0x1a, 0x5e, 0xc2, 0xb4, 0x3d, 0xe1, 0x20, 0x2b, + 0x1c, 0xa8, 0xfe, 0x53, 0x71, 0xdf, 0xfa, 0x4f, 0x2f, 0xc0, 0x68, 0x14, 0x6d, 0xae, 0x86, 0xee, + 0xb6, 0x13, 0x93, 0x2b, 0xa4, 0x23, 0x74, 0x5f, 0x5d, 0x0b, 0xa5, 0x7a, 0x49, 0x03, 0x71, 0x12, + 0x17, 0x2d, 0xc0, 0x49, 0x5d, 0x85, 0x89, 0x84, 0x31, 0xcb, 0xef, 0xe1, 0x2b, 0x41, 0x15, 0x3e, + 0xd0, 0x75, 0x9b, 0x04, 0x02, 0xee, 0x7e, 0x86, 0xf2, 0xd3, 0x44, 0x23, 0x1d, 0xc8, 0x60, 0x92, + 0x9f, 0x26, 0xfa, 0xa1, 0x63, 0xe9, 0x7a, 0x02, 0x2d, 0xc3, 0x29, 0xbe, 0x30, 0x66, 0x5a, 0x2d, + 0xe3, 0x8d, 0x86, 0x92, 0xb5, 0x7f, 0x17, 0xba, 0x51, 0x70, 0xd6, 0x73, 0xe8, 0x39, 0x18, 0x56, + 0xcd, 0x8b, 0xf3, 0xc2, 0xb7, 0xa3, 0x6c, 0x4b, 0xaa, 0x9b, 0xc5, 0x3a, 0x36, 0xf1, 0xd0, 0xbb, + 0xe1, 0x41, 0xfd, 0x97, 0x27, 0x81, 0x72, 0x87, 0xe7, 0xbc, 0x28, 0x70, 0xa7, 0x6e, 0x48, 0x5b, + 0xc8, 0x44, 0xab, 0xe3, 0x5e, 0xcf, 0xa3, 0x75, 0x38, 0xab, 0x40, 0x17, 0xfc, 0x98, 0x65, 0x74, + 0x45, 0x64, 0xd6, 0x89, 0xc8, 0xb5, 0xd0, 0x13, 0x37, 0xed, 0xab, 0x4b, 0xb4, 0x17, 0xdc, 0xf8, + 0x52, 0x16, 0x26, 0x5e, 0xc2, 0x7b, 0xf4, 0x82, 0xa6, 0xa1, 0x42, 0x7c, 0x67, 0xdd, 0x23, 0x2b, + 0x73, 0x8b, 0xac, 0x50, 0x9e, 0xe1, 0x5f, 0xbd, 0x20, 0x01, 0x58, 0xe3, 0xa8, 0xb8, 0xdf, 0x91, + 0x9e, 0x17, 0xba, 0xaf, 0xc2, 0xe9, 0x46, 0xad, 0x45, 0x35, 0x42, 0xb7, 0x46, 0x66, 0x6a, 0x2c, + 0xcc, 0x91, 0x7e, 0x18, 0x5e, 0x94, 0x59, 0x25, 0x50, 0x2c, 0xcc, 0xad, 0x76, 0xe1, 0xe0, 0xcc, + 0x27, 0x59, 0x38, 0x6c, 0x18, 0xec, 0x74, 0x26, 0x4e, 0xa5, 0xc2, 0x61, 0x69, 0x23, 0xe6, 0x30, + 0x74, 0x19, 0x10, 0xcb, 0xc6, 0xb9, 0x14, 0xc7, 0x2d, 0xa5, 0x82, 0x4e, 0x9c, 0x4e, 0x96, 0xbb, + 0xba, 0xd8, 0x85, 0x81, 0x33, 0x9e, 0xa2, 0x1a, 0x8d, 0x1f, 0xb0, 0xde, 0x27, 0x1e, 0x4c, 0x6a, + 0x34, 0x57, 0x79, 0x33, 0x96, 0x70, 0xfb, 0x4f, 0x2c, 0x18, 0x55, 0x5b, 0xfb, 0x18, 0x52, 0xd7, + 0xbc, 0x64, 0xea, 0xda, 0xc2, 0xe1, 0x99, 0x23, 0x1b, 0x79, 0x8f, 0x98, 0xf4, 0xaf, 0x0f, 0x03, + 0x68, 0x06, 0xaa, 0x64, 0x97, 0xd5, 0x53, 0x76, 0xdd, 0xb7, 0xcc, 0x2b, 0xab, 0x30, 0x55, 0xe9, + 0xde, 0x16, 0xa6, 0xaa, 0xc2, 0x19, 0xa9, 0x59, 0x70, 0x67, 0xdf, 0xa5, 0x20, 0x52, 0xbc, 0xb0, + 0x3c, 0xfb, 0xa8, 0xe8, 0xe8, 0xcc, 0x62, 0x16, 0x12, 0xce, 0x7e, 0x36, 0xa1, 0xd0, 0x0c, 0xed, + 0xab, 0x65, 0xaa, 0xed, 0xbf, 0xb4, 0x21, 0x6f, 0x1a, 0x4b, 0x6d, 0xff, 0xa5, 0x8b, 0x55, 0xac, + 0x71, 0xb2, 0x65, 0x40, 0x25, 0x27, 0x19, 0x00, 0x07, 0x96, 0x01, 0x92, 0x1b, 0x0d, 0xf7, 0xe4, + 0x46, 0xd2, 0xa9, 0x30, 0xd2, 0xd3, 0xa9, 0xf0, 0x0e, 0x18, 0x73, 0xfd, 0x4d, 0x12, 0xba, 0x31, + 0xa9, 0xb3, 0xbd, 0xc0, 0x38, 0x55, 0x59, 0x6b, 0x00, 0x8b, 0x09, 0x28, 0x4e, 0x61, 0x27, 0x59, + 0xe8, 0x58, 0x1f, 0x2c, 0xb4, 0x87, 0xe0, 0x1a, 0xcf, 0x47, 0x70, 0x9d, 0x38, 0xbc, 0xe0, 0x3a, + 0x79, 0xa4, 0x82, 0x0b, 0xe5, 0x22, 0xb8, 0xfa, 0x92, 0x09, 0xc6, 0xc9, 0xf4, 0xf4, 0x3e, 0x27, + 0xd3, 0x5e, 0x52, 0xeb, 0xcc, 0x5d, 0x4b, 0xad, 0x6c, 0x81, 0xf4, 0xc0, 0x51, 0x0b, 0xa4, 0x8f, + 0x17, 0xe0, 0x8c, 0x66, 0xd9, 0x74, 0xa3, 0xb8, 0x1b, 0x94, 0x69, 0xb1, 0x7b, 0x2d, 0xb9, 0x8f, + 0xce, 0x48, 0xba, 0xd4, 0xf9, 0x9b, 0x0a, 0x82, 0x0d, 0x2c, 0x96, 0xbb, 0x48, 0x42, 0x56, 0x04, + 0x3e, 0xcd, 0xcf, 0xe7, 0x44, 0x3b, 0x56, 0x18, 0x74, 0x29, 0xd2, 0xdf, 0x22, 0x1f, 0x3c, 0x5d, + 0x5e, 0x74, 0x4e, 0x83, 0xb0, 0x89, 0x87, 0x9e, 0xe4, 0x44, 0x18, 0x2f, 0xa1, 0x3c, 0x7d, 0x84, + 0x1f, 0x44, 0x14, 0xfb, 0x50, 0x50, 0x39, 0x1c, 0x96, 0xa4, 0x5a, 0xea, 0x1e, 0x0e, 0x0b, 0x77, + 0x53, 0x18, 0xf6, 0xff, 0xb4, 0xe0, 0xa1, 0xcc, 0xa9, 0x38, 0x06, 0x39, 0xbd, 0x93, 0x94, 0xd3, + 0xd5, 0xbc, 0x0e, 0x31, 0xc6, 0x5b, 0xf4, 0x90, 0xd9, 0xff, 0xc9, 0x82, 0x31, 0x8d, 0x7f, 0x0c, + 0xaf, 0xea, 0x26, 0x5f, 0x35, 0xbf, 0xf3, 0x5a, 0xa5, 0xeb, 0xdd, 0x7e, 0xaf, 0x00, 0xaa, 0xe4, + 0xef, 0x4c, 0x4d, 0x16, 0x54, 0xdf, 0xc7, 0x6b, 0xdc, 0x81, 0x41, 0xe6, 0xf4, 0x8e, 0xf2, 0x09, + 0xe8, 0x49, 0xd2, 0x67, 0x0e, 0x74, 0x1d, 0x50, 0xc0, 0xfe, 0x46, 0x58, 0x10, 0x64, 0x57, 0x14, + 0xf0, 0x6a, 0xaa, 0x75, 0x91, 0x82, 0xa7, 0xaf, 0x28, 0x10, 0xed, 0x58, 0x61, 0x50, 0x49, 0xe2, + 0xd6, 0x02, 0x7f, 0xce, 0x73, 0x22, 0x79, 0x31, 0xb5, 0x92, 0x24, 0x8b, 0x12, 0x80, 0x35, 0x0e, + 0xf3, 0x87, 0xbb, 0x51, 0xcb, 0x73, 0x3a, 0xc6, 0xa9, 0xdc, 0xa8, 0x7b, 0xa2, 0x40, 0xd8, 0xc4, + 0xb3, 0x9b, 0x30, 0x91, 0x7c, 0x89, 0x79, 0xb2, 0xc1, 0x82, 0x51, 0xfb, 0x9a, 0xce, 0x69, 0xa8, + 0x38, 0xec, 0xa9, 0xa5, 0xb6, 0x23, 0x78, 0x82, 0x0e, 0xc9, 0x94, 0x00, 0xac, 0x71, 0xec, 0x7f, + 0x62, 0xc1, 0xa9, 0x8c, 0x49, 0xcb, 0x31, 0xc5, 0x31, 0xd6, 0xdc, 0x26, 0x4b, 0x07, 0xf8, 0x51, + 0x18, 0xaa, 0x93, 0x0d, 0x47, 0x86, 0x3b, 0x1a, 0xdc, 0x73, 0x9e, 0x37, 0x63, 0x09, 0xb7, 0x7f, + 0xab, 0x00, 0xe3, 0xc9, 0xb1, 0x46, 0x2c, 0x6d, 0x88, 0x4f, 0x93, 0x1b, 0xd5, 0x82, 0x6d, 0x12, + 0x76, 0xe8, 0x9b, 0x5b, 0xa9, 0xb4, 0xa1, 0x2e, 0x0c, 0x9c, 0xf1, 0x14, 0x2b, 0xf8, 0x5d, 0x57, + 0xb3, 0x2d, 0x57, 0xe4, 0xf5, 0x3c, 0x57, 0xa4, 0xfe, 0x98, 0x66, 0x68, 0x84, 0x22, 0x89, 0x4d, + 0xfa, 0x54, 0x17, 0x61, 0x71, 0xd8, 0xb3, 0x6d, 0xd7, 0x8b, 0x5d, 0x5f, 0xbc, 0xb2, 0x58, 0xab, + 0x4a, 0x17, 0x59, 0xee, 0x46, 0xc1, 0x59, 0xcf, 0xd9, 0xdf, 0x1d, 0x00, 0x95, 0xbe, 0xcf, 0x42, + 0xd7, 0x72, 0x0a, 0xfc, 0x3b, 0x68, 0xf2, 0x99, 0x5a, 0x5b, 0x03, 0x7b, 0xc5, 0x92, 0x70, 0x53, + 0x8e, 0x69, 0xcf, 0x55, 0x13, 0xb6, 0xa6, 0x41, 0xd8, 0xc4, 0xa3, 0x23, 0xf1, 0xdc, 0x6d, 0xc2, + 0x1f, 0x1a, 0x4c, 0x8e, 0x64, 0x49, 0x02, 0xb0, 0xc6, 0xa1, 0x23, 0xa9, 0xbb, 0x1b, 0x1b, 0xc2, + 0x2e, 0xa1, 0x46, 0x42, 0x67, 0x07, 0x33, 0x08, 0xbf, 0x12, 0x22, 0xd8, 0x12, 0xfa, 0xb7, 0x71, + 0x25, 0x44, 0xb0, 0x85, 0x19, 0x84, 0x7e, 0x25, 0x3f, 0x08, 0x9b, 0x8e, 0xe7, 0xbe, 0x46, 0xea, + 0x8a, 0x8a, 0xd0, 0xbb, 0xd5, 0x57, 0xba, 0xda, 0x8d, 0x82, 0xb3, 0x9e, 0xa3, 0x0b, 0xba, 0x15, + 0x92, 0xba, 0x5b, 0x8b, 0xcd, 0xde, 0x20, 0xb9, 0xa0, 0x57, 0xbb, 0x30, 0x70, 0xc6, 0x53, 0x68, + 0x06, 0xc6, 0x65, 0xf9, 0x05, 0x59, 0x5c, 0x6b, 0x38, 0x59, 0xcc, 0x07, 0x27, 0xc1, 0x38, 0x8d, + 0x4f, 0x99, 0x64, 0x53, 0x94, 0x06, 0x64, 0x6a, 0xba, 0xc1, 0x24, 0x65, 0xc9, 0x40, 0xac, 0x30, + 0xec, 0x0f, 0x17, 0xa9, 0x50, 0xef, 0x51, 0x81, 0xf3, 0xd8, 0x02, 0x4d, 0x93, 0x2b, 0x72, 0xa0, + 0x8f, 0x15, 0xf9, 0x2c, 0x8c, 0xdc, 0x8c, 0x02, 0x5f, 0x05, 0x71, 0x96, 0x7a, 0x06, 0x71, 0x1a, + 0x58, 0xd9, 0x41, 0x9c, 0x83, 0x79, 0x05, 0x71, 0x0e, 0xdd, 0x65, 0x10, 0xe7, 0x1f, 0x94, 0x40, + 0xdd, 0xf9, 0x75, 0x95, 0xc4, 0xb7, 0x82, 0x70, 0xcb, 0xf5, 0x1b, 0xac, 0x94, 0xc0, 0x97, 0x2c, + 0x59, 0x8d, 0x60, 0xc9, 0x4c, 0xc2, 0xdb, 0xc8, 0xe9, 0xde, 0xa6, 0x04, 0xb1, 0xa9, 0x35, 0x83, + 0x50, 0xea, 0x6a, 0x72, 0x13, 0x84, 0x13, 0x23, 0x42, 0x1f, 0x00, 0x90, 0x46, 0xdc, 0x0d, 0xc9, + 0x81, 0x17, 0xf3, 0x19, 0x1f, 0x26, 0x1b, 0x5a, 0xa5, 0x5e, 0x53, 0x44, 0xb0, 0x41, 0x10, 0x7d, + 0x5c, 0x27, 0x28, 0xf2, 0x6c, 0x8f, 0xf7, 0x1d, 0xc9, 0xdc, 0xf4, 0x93, 0x9e, 0x88, 0x61, 0xc8, + 0xf5, 0x1b, 0x74, 0x9d, 0x88, 0x60, 0xb7, 0x37, 0x67, 0x95, 0x7c, 0x59, 0x0a, 0x9c, 0xfa, 0xac, + 0xe3, 0x39, 0x7e, 0x8d, 0x84, 0x8b, 0x1c, 0x5d, 0x4b, 0x50, 0xd1, 0x80, 0x65, 0x47, 0x5d, 0x17, + 0x93, 0x95, 0xfa, 0xb9, 0x98, 0xec, 0xec, 0x3b, 0xe1, 0x64, 0xd7, 0xc7, 0x3c, 0x50, 0x36, 0xe2, + 0xdd, 0x27, 0x32, 0xda, 0xbf, 0x3d, 0xa8, 0x85, 0xd6, 0xd5, 0xa0, 0xce, 0xef, 0xb9, 0x0a, 0xf5, + 0x17, 0x15, 0x2a, 0x73, 0x8e, 0x4b, 0x44, 0x89, 0x19, 0xa3, 0x11, 0x9b, 0x24, 0xe9, 0x1a, 0x6d, + 0x39, 0x21, 0xf1, 0x8f, 0x7a, 0x8d, 0xae, 0x2a, 0x22, 0xd8, 0x20, 0x88, 0x36, 0x13, 0xe9, 0x48, + 0x17, 0x0f, 0x9f, 0x8e, 0xc4, 0x8a, 0xe1, 0x65, 0x5d, 0x07, 0xf3, 0x59, 0x0b, 0xc6, 0xfc, 0xc4, + 0xca, 0xcd, 0x27, 0x02, 0x39, 0x7b, 0x57, 0xf0, 0x2b, 0x23, 0x93, 0x6d, 0x38, 0x45, 0x3f, 0x4b, + 0xa4, 0x95, 0x0e, 0x28, 0xd2, 0xf4, 0x3d, 0x7b, 0x83, 0xbd, 0xee, 0xd9, 0x43, 0xbe, 0xba, 0xfd, + 0x74, 0x28, 0xf7, 0xdb, 0x4f, 0x21, 0xe3, 0xe6, 0xd3, 0x1b, 0x50, 0xa9, 0x85, 0xc4, 0x89, 0xef, + 0xf2, 0x22, 0x4c, 0x16, 0xdb, 0x31, 0x27, 0x3b, 0xc0, 0xba, 0x2f, 0xfb, 0xff, 0x0c, 0xc0, 0x09, + 0x39, 0x23, 0x32, 0x7b, 0x81, 0xca, 0x47, 0x4e, 0x57, 0xeb, 0xca, 0x4a, 0x3e, 0x5e, 0x92, 0x00, + 0xac, 0x71, 0xa8, 0x3e, 0xd6, 0x8e, 0xc8, 0x4a, 0x8b, 0xf8, 0x4b, 0xee, 0x7a, 0x24, 0x9c, 0xb1, + 0x6a, 0xa3, 0x5c, 0xd3, 0x20, 0x6c, 0xe2, 0x51, 0xdd, 0xde, 0x31, 0x94, 0x56, 0x43, 0xb7, 0x97, + 0x8a, 0xaa, 0x84, 0xa3, 0x5f, 0xc9, 0x2c, 0x09, 0x9e, 0x4f, 0xce, 0x5f, 0x57, 0xd2, 0xc6, 0x01, + 0xaf, 0x71, 0xfe, 0x87, 0x16, 0x9c, 0xe1, 0xad, 0x72, 0x26, 0xaf, 0xb5, 0xea, 0x4e, 0x4c, 0xa2, + 0x7c, 0xae, 0x12, 0xc9, 0x18, 0x9f, 0x36, 0x2f, 0x67, 0x91, 0xc5, 0xd9, 0xa3, 0x41, 0x9f, 0xb1, + 0x60, 0x7c, 0x2b, 0x51, 0x2e, 0x46, 0x8a, 0x8e, 0xc3, 0x56, 0x72, 0x48, 0x74, 0xaa, 0xb7, 0x5a, + 0xb2, 0x3d, 0xc2, 0x69, 0xea, 0xf6, 0xff, 0xb0, 0xc0, 0x64, 0xa3, 0xc7, 0x5f, 0x65, 0xe6, 0xe0, + 0xaa, 0xa0, 0xd4, 0x2e, 0x4b, 0x3d, 0xb5, 0xcb, 0x47, 0xa1, 0xd8, 0x76, 0xeb, 0xe2, 0x7c, 0xa1, + 0x5d, 0xc4, 0x8b, 0xf3, 0x98, 0xb6, 0xdb, 0xff, 0xaa, 0xa4, 0xcd, 0x20, 0x22, 0xa5, 0xee, 0x07, + 0xe2, 0xb5, 0x37, 0x54, 0x4d, 0x44, 0xfe, 0xe6, 0x57, 0xbb, 0x6a, 0x22, 0xbe, 0xed, 0xe0, 0x19, + 0x93, 0x7c, 0x82, 0x7a, 0x95, 0x44, 0x1c, 0xda, 0x27, 0x5d, 0xf2, 0x26, 0x94, 0xe9, 0x11, 0x8c, + 0xd9, 0x33, 0xcb, 0x89, 0x41, 0x95, 0x2f, 0x89, 0xf6, 0x3b, 0xbb, 0x93, 0x3f, 0x79, 0xf0, 0x61, + 0xc9, 0xa7, 0xb1, 0xea, 0x1f, 0x45, 0x50, 0xa1, 0xbf, 0x59, 0x66, 0xa7, 0x38, 0xdc, 0x5d, 0x53, + 0x3c, 0x53, 0x02, 0x72, 0x49, 0x1b, 0xd5, 0x74, 0x90, 0x0f, 0x15, 0x76, 0xe3, 0x3d, 0x23, 0xca, + 0xcf, 0x80, 0xab, 0x2a, 0xbf, 0x52, 0x02, 0xee, 0xec, 0x4e, 0xbe, 0x70, 0x70, 0xa2, 0xea, 0x71, + 0xac, 0x49, 0xd8, 0x9f, 0x1b, 0xd0, 0x6b, 0x57, 0x94, 0xc2, 0xfc, 0x81, 0x58, 0xbb, 0xcf, 0xa7, + 0xd6, 0xee, 0xb9, 0xae, 0xb5, 0x3b, 0xa6, 0xaf, 0x43, 0x4f, 0xac, 0xc6, 0xe3, 0x56, 0x04, 0xf6, + 0xb7, 0x37, 0x30, 0x0d, 0xe8, 0xd5, 0xb6, 0x1b, 0x92, 0x68, 0x35, 0x6c, 0xfb, 0xae, 0xdf, 0x60, + 0xcb, 0xb1, 0x6c, 0x6a, 0x40, 0x09, 0x30, 0x4e, 0xe3, 0xd3, 0x43, 0x3d, 0xfd, 0xe6, 0x37, 0x9c, + 0x6d, 0xbe, 0xaa, 0x8c, 0x8a, 0x6d, 0x55, 0xd1, 0x8e, 0x15, 0x86, 0xfd, 0x35, 0xe6, 0x45, 0x37, + 0x52, 0xca, 0xe9, 0x9a, 0xf0, 0xdc, 0xa6, 0x2b, 0xcb, 0xbd, 0xa9, 0x35, 0xb1, 0x44, 0x1b, 0x31, + 0x87, 0xa1, 0x5b, 0x30, 0xb4, 0xce, 0x2f, 0x83, 0xcd, 0xe7, 0xe2, 0x09, 0x71, 0xb3, 0x2c, 0xbb, + 0x66, 0x4b, 0x5e, 0x33, 0x7b, 0x47, 0xff, 0xc4, 0x92, 0x9a, 0xfd, 0xcd, 0x12, 0x8c, 0xa7, 0x6e, + 0x7e, 0x4f, 0x14, 0x75, 0x2e, 0xec, 0x5b, 0xd4, 0xf9, 0xbd, 0x00, 0x75, 0xd2, 0xf2, 0x82, 0x0e, + 0x53, 0xc7, 0x06, 0x0e, 0xac, 0x8e, 0x29, 0x0d, 0x7e, 0x5e, 0xf5, 0x82, 0x8d, 0x1e, 0x45, 0x8d, + 0x3b, 0x5e, 0x23, 0x3a, 0x55, 0xe3, 0xce, 0xb8, 0x9e, 0x66, 0xf0, 0x78, 0xaf, 0xa7, 0x71, 0x61, + 0x9c, 0x0f, 0x51, 0x25, 0x6e, 0xdf, 0x45, 0x7e, 0x36, 0x4b, 0x7d, 0x99, 0x4f, 0x76, 0x83, 0xd3, + 0xfd, 0x9a, 0x77, 0xcf, 0x94, 0x8f, 0xfb, 0xee, 0x99, 0xb7, 0x40, 0x45, 0x7e, 0xe7, 0x68, 0xa2, + 0xa2, 0x8b, 0x5f, 0xc8, 0x65, 0x10, 0x61, 0x0d, 0xef, 0xaa, 0x41, 0x01, 0xf7, 0xaa, 0x06, 0x85, + 0xfd, 0xe9, 0x02, 0xd5, 0xe3, 0xf9, 0xb8, 0x54, 0x39, 0xa5, 0x27, 0x60, 0xd0, 0x69, 0xc7, 0x9b, + 0x41, 0xd7, 0x75, 0xb2, 0x33, 0xac, 0x15, 0x0b, 0x28, 0x5a, 0x82, 0x81, 0xba, 0x2e, 0x91, 0x73, + 0x90, 0xef, 0xa9, 0x4d, 0xa2, 0x4e, 0x4c, 0x30, 0xeb, 0x05, 0x3d, 0x02, 0x03, 0xb1, 0xd3, 0x90, + 0xd9, 0x7a, 0x2c, 0x43, 0x7b, 0xcd, 0x69, 0x44, 0x98, 0xb5, 0x1e, 0xa4, 0x2c, 0xe8, 0x0b, 0x30, + 0x1a, 0xb9, 0x0d, 0xdf, 0x89, 0xdb, 0x21, 0x31, 0xbc, 0x86, 0x3a, 0x66, 0xc4, 0x04, 0xe2, 0x24, + 0xae, 0xfd, 0x3b, 0x23, 0x70, 0xba, 0x3a, 0xb7, 0x2c, 0x2f, 0x19, 0x38, 0xb2, 0x84, 0xbb, 0x2c, + 0x1a, 0xc7, 0x97, 0x70, 0xd7, 0x83, 0xba, 0x67, 0x24, 0xdc, 0x79, 0x46, 0xc2, 0x5d, 0x32, 0xfb, + 0xa9, 0x98, 0x47, 0xf6, 0x53, 0xd6, 0x08, 0xfa, 0xc9, 0x7e, 0x3a, 0xb2, 0x0c, 0xbc, 0x3d, 0x07, + 0x74, 0xa0, 0x0c, 0x3c, 0x95, 0x9e, 0x98, 0x4b, 0x5e, 0x4a, 0x8f, 0x4f, 0x95, 0x99, 0x9e, 0xa8, + 0x52, 0xc3, 0x78, 0xce, 0x95, 0x60, 0xf5, 0x2f, 0xe7, 0x3f, 0x80, 0x3e, 0x52, 0xc3, 0x44, 0xda, + 0x97, 0x99, 0x8e, 0x38, 0x94, 0x47, 0x3a, 0x62, 0xd6, 0x70, 0xf6, 0x4d, 0x47, 0x7c, 0x01, 0x46, + 0x6b, 0x5e, 0xe0, 0x93, 0xd5, 0x30, 0x88, 0x83, 0x5a, 0x20, 0x2f, 0xb4, 0xd4, 0xf7, 0x31, 0x99, + 0x40, 0x9c, 0xc4, 0xed, 0x95, 0xcb, 0x58, 0x39, 0x6c, 0x2e, 0x23, 0xdc, 0xa3, 0x5c, 0xc6, 0x9f, + 0xd7, 0x59, 0xf7, 0xc3, 0xec, 0x8b, 0xbc, 0x37, 0xff, 0x2f, 0xd2, 0xd7, 0x8d, 0x95, 0xaf, 0xf3, + 0xfb, 0x5c, 0xa9, 0x62, 0x3c, 0x17, 0x34, 0xa9, 0xe2, 0x37, 0xc2, 0xa6, 0xe4, 0x95, 0x23, 0x58, + 0xb0, 0x37, 0xaa, 0x9a, 0x8c, 0xba, 0xe3, 0x55, 0x37, 0xe1, 0xe4, 0x40, 0x0e, 0x53, 0x15, 0xe0, + 0x0b, 0x05, 0xf8, 0xa1, 0x7d, 0x87, 0x80, 0x6e, 0x01, 0xc4, 0x4e, 0x43, 0x2c, 0x54, 0xe1, 0x30, + 0x39, 0x64, 0x60, 0xe7, 0x9a, 0xec, 0x8f, 0x97, 0xb3, 0x51, 0x7f, 0x99, 0x2b, 0x42, 0xfe, 0x66, + 0xf1, 0x9c, 0x81, 0xd7, 0x55, 0xf5, 0x13, 0x07, 0x1e, 0xc1, 0x0c, 0x42, 0xc5, 0x7f, 0x48, 0x1a, + 0x54, 0xa5, 0x2d, 0x26, 0xc5, 0x3f, 0x66, 0xad, 0x58, 0x40, 0xd1, 0x73, 0x30, 0xec, 0x78, 0x1e, + 0x4f, 0x1a, 0x22, 0x91, 0xb8, 0x28, 0x4d, 0x97, 0x1f, 0xd4, 0x20, 0x6c, 0xe2, 0xd9, 0x7f, 0x55, + 0x80, 0xc9, 0x7d, 0x78, 0x4a, 0x57, 0xb2, 0x68, 0xa9, 0xef, 0x64, 0x51, 0x91, 0x48, 0x31, 0xd8, + 0x23, 0x91, 0xe2, 0x39, 0x18, 0x8e, 0x89, 0xd3, 0x14, 0xa1, 0x60, 0xc2, 0x12, 0xa0, 0x3d, 0xc0, + 0x1a, 0x84, 0x4d, 0x3c, 0xca, 0xc5, 0xc6, 0x9c, 0x5a, 0x8d, 0x44, 0x91, 0xcc, 0x94, 0x10, 0xd6, + 0xd4, 0xdc, 0xd2, 0x30, 0x98, 0x91, 0x7a, 0x26, 0x41, 0x02, 0xa7, 0x48, 0xa6, 0x27, 0xbc, 0xd2, + 0xe7, 0x84, 0x7f, 0xa5, 0x00, 0x8f, 0xee, 0x29, 0xdd, 0xfa, 0x4e, 0x62, 0x69, 0x47, 0x24, 0x4c, + 0x2f, 0x9c, 0x6b, 0x11, 0x09, 0x31, 0x83, 0xf0, 0x59, 0x6a, 0xb5, 0x54, 0x18, 0x6f, 0xfe, 0x19, + 0x5d, 0x7c, 0x96, 0x12, 0x24, 0x70, 0x8a, 0xe4, 0xdd, 0x2e, 0xcb, 0x6f, 0x0e, 0xc0, 0xe3, 0x7d, + 0xe8, 0x00, 0x39, 0x66, 0xbe, 0x25, 0xb3, 0x34, 0x8b, 0xf7, 0x28, 0x4b, 0xf3, 0xee, 0xa6, 0xeb, + 0x8d, 0xe4, 0xce, 0xbe, 0x32, 0xec, 0xbe, 0x56, 0x80, 0xb3, 0xbd, 0x15, 0x16, 0xf4, 0x76, 0x18, + 0x0f, 0x55, 0xe8, 0x9b, 0x99, 0xe0, 0x79, 0x8a, 0xdb, 0x5b, 0x12, 0x20, 0x9c, 0xc6, 0x45, 0x53, + 0x00, 0x2d, 0x27, 0xde, 0x8c, 0x2e, 0xec, 0xb8, 0x51, 0x2c, 0xca, 0x3c, 0x8d, 0x71, 0x0f, 0x9f, + 0x6c, 0xc5, 0x06, 0x06, 0x25, 0xc7, 0xfe, 0xcd, 0x07, 0x57, 0x83, 0x98, 0x3f, 0xc4, 0x0f, 0x5b, + 0xa7, 0xe4, 0x05, 0x4c, 0x06, 0x08, 0xa7, 0x71, 0x29, 0x39, 0xe6, 0x43, 0xe6, 0x03, 0xe5, 0xa7, + 0x30, 0x46, 0x6e, 0x49, 0xb5, 0x62, 0x03, 0x23, 0x9d, 0xba, 0x5a, 0xda, 0x3f, 0x75, 0xd5, 0xfe, + 0x97, 0x05, 0x78, 0xa8, 0xa7, 0xc2, 0xdb, 0x1f, 0x9b, 0xba, 0xff, 0xd2, 0x4d, 0xef, 0x72, 0x87, + 0x1d, 0x2c, 0x4d, 0xf1, 0x4f, 0x7b, 0xac, 0x34, 0x91, 0xa6, 0x78, 0xf7, 0xd5, 0x17, 0xee, 0xbf, + 0xf9, 0xec, 0xca, 0x4c, 0x1c, 0x38, 0x40, 0x66, 0x62, 0xea, 0x63, 0x94, 0xfa, 0x94, 0x0e, 0x7f, + 0x3e, 0xd0, 0x73, 0x7a, 0xe9, 0x01, 0xb9, 0x2f, 0x6b, 0xf6, 0x3c, 0x9c, 0x70, 0x7d, 0x76, 0x19, + 0x5f, 0xb5, 0xbd, 0x2e, 0x2a, 0xff, 0xf0, 0xf2, 0x96, 0x2a, 0xfd, 0x61, 0x31, 0x05, 0xc7, 0x5d, + 0x4f, 0xdc, 0x87, 0x99, 0xa2, 0x77, 0x37, 0xa5, 0x07, 0xe4, 0xdc, 0x2b, 0x70, 0x46, 0x4e, 0xc5, + 0xa6, 0x13, 0x92, 0xba, 0x10, 0xb6, 0x91, 0x48, 0x78, 0x79, 0x88, 0x27, 0xcd, 0x64, 0x20, 0xe0, + 0xec, 0xe7, 0xd8, 0xfd, 0x67, 0x41, 0xcb, 0xad, 0x89, 0xa3, 0xa0, 0xbe, 0xff, 0x8c, 0x36, 0x62, + 0x0e, 0xd3, 0xf2, 0xa2, 0x72, 0x3c, 0xf2, 0xe2, 0xbd, 0x50, 0x51, 0xf3, 0xcd, 0x63, 0xf7, 0xd5, + 0x22, 0xef, 0x8a, 0xdd, 0x57, 0x2b, 0xdc, 0xc0, 0xda, 0xef, 0xee, 0xe0, 0x1f, 0x87, 0x11, 0x65, + 0xfd, 0xea, 0xf7, 0x16, 0x3a, 0xfb, 0xff, 0x15, 0x20, 0x75, 0x37, 0x0d, 0xda, 0x81, 0x4a, 0x5d, + 0xde, 0xde, 0x9b, 0x4f, 0x79, 0x55, 0x75, 0x19, 0xb0, 0x76, 0xca, 0xa8, 0x26, 0xac, 0x89, 0xa1, + 0xf7, 0xf3, 0x4a, 0xa6, 0x82, 0x74, 0x21, 0x8f, 0x6c, 0xe1, 0xaa, 0xea, 0xcf, 0xbc, 0xda, 0x4a, + 0xb6, 0x61, 0x83, 0x1e, 0x8a, 0xa1, 0xb2, 0x29, 0xef, 0xe0, 0xc9, 0x87, 0xdd, 0xa9, 0x2b, 0x7d, + 0xb8, 0x8a, 0xa6, 0xfe, 0x62, 0x4d, 0xc8, 0xfe, 0x93, 0x02, 0x9c, 0x4e, 0x7e, 0x00, 0xe1, 0x44, + 0xfb, 0x75, 0x0b, 0x1e, 0xf4, 0x9c, 0x28, 0xae, 0xb6, 0xd9, 0x41, 0x61, 0xa3, 0xed, 0xad, 0xa4, + 0x8a, 0xde, 0x1e, 0xd6, 0xd8, 0xa2, 0x3a, 0x4e, 0xdf, 0xd9, 0x34, 0xfb, 0xf0, 0xed, 0xdd, 0xc9, + 0x07, 0x97, 0xb2, 0x89, 0xe3, 0x5e, 0xa3, 0x42, 0x9f, 0xb5, 0xe0, 0x44, 0xad, 0x1d, 0x86, 0xc4, + 0x8f, 0xf5, 0x50, 0xf9, 0x57, 0xbc, 0x9a, 0xcb, 0x44, 0xea, 0x01, 0x9e, 0xa6, 0x0c, 0x75, 0x2e, + 0x45, 0x0b, 0x77, 0x51, 0xb7, 0x7f, 0x89, 0x4a, 0xce, 0x9e, 0xef, 0xf9, 0x37, 0xec, 0x92, 0xa9, + 0xbf, 0x18, 0x84, 0xd1, 0x44, 0x65, 0xdf, 0x84, 0x8b, 0xcb, 0xda, 0xd7, 0xc5, 0xc5, 0x52, 0xb4, + 0xda, 0xbe, 0xbc, 0x8e, 0xd6, 0x48, 0xd1, 0x6a, 0xfb, 0x04, 0x73, 0x98, 0x98, 0x52, 0xdc, 0xf6, + 0x45, 0xcc, 0xb9, 0x39, 0xa5, 0xb8, 0xed, 0x63, 0x01, 0x45, 0x1f, 0xb2, 0x60, 0x84, 0x6d, 0x3e, + 0xe1, 0x20, 0x14, 0x02, 0xed, 0x72, 0x0e, 0xdb, 0x5d, 0x56, 0xb1, 0x66, 0x31, 0x8a, 0x66, 0x0b, + 0x4e, 0x50, 0x44, 0x1f, 0xb5, 0xa0, 0xa2, 0x6e, 0xcd, 0x13, 0x77, 0x4b, 0x57, 0xf3, 0x2d, 0x9c, + 0x9c, 0xe2, 0x7a, 0xaa, 0x82, 0x2d, 0xd6, 0x84, 0x51, 0xa4, 0xbc, 0x77, 0x43, 0x47, 0xe3, 0xbd, + 0x83, 0x0c, 0xcf, 0xdd, 0x5b, 0xa0, 0xd2, 0x74, 0x7c, 0x77, 0x83, 0x44, 0x31, 0x77, 0xa8, 0xc9, + 0x7a, 0xee, 0xb2, 0x11, 0x6b, 0x38, 0x55, 0xf6, 0x23, 0xf6, 0x62, 0xb1, 0xe1, 0x01, 0x63, 0xca, + 0x7e, 0x55, 0x37, 0x63, 0x13, 0xc7, 0x74, 0xd7, 0xc1, 0x3d, 0x75, 0xd7, 0x0d, 0xef, 0xe3, 0xae, + 0xab, 0xc2, 0x19, 0xa7, 0x1d, 0x07, 0x97, 0x88, 0xe3, 0xcd, 0xf0, 0x3b, 0xec, 0x23, 0x5e, 0x0c, + 0x7a, 0x84, 0x99, 0x80, 0x55, 0x54, 0x55, 0x95, 0x78, 0x1b, 0x5d, 0x48, 0x38, 0xfb, 0x59, 0xfb, + 0x9f, 0x59, 0x70, 0x26, 0x73, 0x29, 0xdc, 0xbf, 0xf1, 0xec, 0xf6, 0xe7, 0x4b, 0x70, 0x2a, 0xa3, + 0xee, 0x37, 0xea, 0x98, 0x9b, 0xc4, 0xca, 0x23, 0x34, 0x2c, 0x19, 0xe9, 0x24, 0xbf, 0x4d, 0xc6, + 0xce, 0x38, 0x98, 0x07, 0x5e, 0x7b, 0xc1, 0x8b, 0xc7, 0xeb, 0x05, 0x37, 0xd6, 0xfa, 0xc0, 0x3d, + 0x5d, 0xeb, 0xa5, 0x7d, 0xd6, 0xfa, 0xd7, 0x2d, 0x98, 0x68, 0xf6, 0xb8, 0x6c, 0x46, 0xf8, 0x93, + 0xae, 0x1f, 0xcd, 0x55, 0x36, 0xb3, 0x8f, 0xdc, 0xde, 0x9d, 0xec, 0x79, 0xc7, 0x0f, 0xee, 0x39, + 0x2a, 0xfb, 0xbb, 0x45, 0x60, 0xfa, 0x1a, 0xab, 0xed, 0xda, 0x41, 0x1f, 0x34, 0xaf, 0x0f, 0xb0, + 0xf2, 0x2a, 0x75, 0xcf, 0x3b, 0x57, 0xd7, 0x0f, 0xf0, 0x19, 0xcc, 0xba, 0x8d, 0x20, 0xcd, 0x09, + 0x0b, 0x7d, 0x70, 0x42, 0x4f, 0xde, 0xd3, 0x50, 0xcc, 0xff, 0x9e, 0x86, 0x4a, 0xfa, 0x8e, 0x86, + 0xbd, 0x3f, 0xf1, 0xc0, 0x7d, 0xf9, 0x89, 0x7f, 0xd5, 0xe2, 0x8c, 0x27, 0xf5, 0x15, 0xb4, 0xba, + 0x61, 0xed, 0xa1, 0x6e, 0x3c, 0x05, 0xe5, 0x48, 0x70, 0x66, 0xa1, 0x96, 0xe8, 0xb0, 0x24, 0xd1, + 0x8e, 0x15, 0x06, 0x3d, 0x75, 0x39, 0x9e, 0x17, 0xdc, 0xba, 0xd0, 0x6c, 0xc5, 0x1d, 0xa1, 0xa0, + 0xa8, 0x63, 0xc1, 0x8c, 0x82, 0x60, 0x03, 0xcb, 0xde, 0x04, 0xe3, 0xc0, 0x70, 0xf7, 0x77, 0x73, + 0xf6, 0x71, 0xa9, 0xf2, 0x3f, 0x28, 0x08, 0x52, 0xfc, 0x00, 0xf0, 0x7c, 0xea, 0x42, 0xe9, 0xfe, + 0x03, 0xd0, 0xde, 0x0f, 0x50, 0x0b, 0x9a, 0x2d, 0x7a, 0x24, 0x5e, 0x0b, 0xf2, 0x39, 0x47, 0xcd, + 0xa9, 0xfe, 0xf4, 0x84, 0xe9, 0x36, 0x6c, 0xd0, 0x4b, 0x70, 0xed, 0xe2, 0xbe, 0x5c, 0x3b, 0xc1, + 0xc0, 0x06, 0xf6, 0x66, 0x60, 0xf6, 0x5f, 0x59, 0x90, 0x50, 0xe8, 0x50, 0x0b, 0x4a, 0x74, 0xb8, + 0x1d, 0xc1, 0x0b, 0x56, 0xf2, 0xd3, 0x1e, 0x29, 0x13, 0x16, 0x1b, 0x8c, 0xfd, 0xc4, 0x9c, 0x10, + 0xf2, 0x44, 0xb0, 0x5d, 0x2e, 0xe7, 0x1a, 0x93, 0xe0, 0xa5, 0x20, 0xd8, 0xe2, 0x91, 0x31, 0x3a, + 0x70, 0xcf, 0x7e, 0x1e, 0x4e, 0x76, 0x0d, 0x8a, 0xdd, 0xe7, 0x19, 0xc8, 0xc3, 0xb9, 0xb1, 0x31, + 0x58, 0xed, 0x01, 0xcc, 0x61, 0xf6, 0xd7, 0x2c, 0x38, 0x91, 0xee, 0x1e, 0xbd, 0x6e, 0xc1, 0xc9, + 0x28, 0xdd, 0xdf, 0x51, 0xcd, 0x9d, 0x0a, 0x98, 0xef, 0x02, 0xe1, 0xee, 0x41, 0xd8, 0xff, 0x57, + 0x2c, 0xfe, 0x1b, 0xae, 0x5f, 0x0f, 0x6e, 0x29, 0x15, 0xc8, 0xea, 0xa9, 0x02, 0xd1, 0x9d, 0x5f, + 0xdb, 0x24, 0xf5, 0xb6, 0xd7, 0x55, 0xc9, 0xa0, 0x2a, 0xda, 0xb1, 0xc2, 0x60, 0x89, 0xdb, 0x6d, + 0x71, 0x24, 0x4d, 0x2d, 0xca, 0x79, 0xd1, 0x8e, 0x15, 0x06, 0x7a, 0x16, 0x46, 0x8c, 0x97, 0x94, + 0xeb, 0x92, 0x9d, 0x27, 0x0c, 0xe1, 0x1c, 0xe1, 0x04, 0x16, 0x9a, 0x02, 0x50, 0xea, 0x94, 0x14, + 0xc6, 0xcc, 0x86, 0xae, 0x78, 0x5e, 0x84, 0x0d, 0x0c, 0x56, 0x26, 0xc1, 0x6b, 0x47, 0xcc, 0x49, + 0x3c, 0xa8, 0xcb, 0x98, 0xcf, 0x89, 0x36, 0xac, 0xa0, 0x94, 0x6f, 0x35, 0x1d, 0xbf, 0xed, 0x78, + 0x74, 0x86, 0x84, 0x55, 0x4c, 0x6d, 0xc3, 0x65, 0x05, 0xc1, 0x06, 0x16, 0x7d, 0xe3, 0xd8, 0x6d, + 0x92, 0x97, 0x02, 0x5f, 0x06, 0x3a, 0xeb, 0xb8, 0x01, 0xd1, 0x8e, 0x15, 0x86, 0xfd, 0x97, 0x16, + 0x8c, 0xeb, 0xfa, 0x2c, 0xcc, 0x96, 0x95, 0x30, 0xe2, 0x59, 0xfb, 0x1a, 0xf1, 0x92, 0xd5, 0x28, + 0x0a, 0x7d, 0x55, 0xa3, 0x30, 0x0b, 0x45, 0x14, 0xf7, 0x2c, 0x14, 0xf1, 0x23, 0x30, 0xb4, 0x45, + 0x3a, 0x46, 0x45, 0x89, 0x61, 0xaa, 0x0e, 0x5d, 0xe1, 0x4d, 0x58, 0xc2, 0x90, 0x0d, 0x83, 0x35, + 0x47, 0xd5, 0x31, 0x1b, 0xe1, 0x47, 0x9f, 0xb9, 0x19, 0x86, 0x24, 0x20, 0xf6, 0x0a, 0x54, 0x94, + 0xfb, 0x5c, 0xda, 0xd4, 0xac, 0x6c, 0x9b, 0x5a, 0x5f, 0x09, 0xeb, 0xb3, 0xeb, 0xdf, 0xf8, 0xde, + 0x63, 0x6f, 0xfa, 0xa3, 0xef, 0x3d, 0xf6, 0xa6, 0xef, 0x7c, 0xef, 0xb1, 0x37, 0x7d, 0xe8, 0xf6, + 0x63, 0xd6, 0x37, 0x6e, 0x3f, 0x66, 0xfd, 0xd1, 0xed, 0xc7, 0xac, 0xef, 0xdc, 0x7e, 0xcc, 0xfa, + 0xee, 0xed, 0xc7, 0xac, 0xcf, 0xfe, 0xd7, 0xc7, 0xde, 0xf4, 0x52, 0x66, 0xa4, 0x3b, 0xfd, 0xf1, + 0x74, 0xad, 0x3e, 0xbd, 0x7d, 0x9e, 0x05, 0x5b, 0xd3, 0xed, 0x35, 0x6d, 0xac, 0xa9, 0x69, 0xb9, + 0xbd, 0xfe, 0x7f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x96, 0xc7, 0x11, 0x4d, 0x6e, 0xf4, 0x00, 0x00, } func (m *AWSAuthConfig) Marshal() (dAtA []byte, err error) { @@ -7874,6 +8097,18 @@ func (m *ApplicationSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l + if m.SourceHydrator != nil { + { + size, err := m.SourceHydrator.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x4a + } if len(m.Sources) > 0 { for iNdEx := len(m.Sources) - 1; iNdEx >= 0; iNdEx-- { { @@ -7983,6 +8218,16 @@ func (m *ApplicationStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l + { + size, err := m.SourceHydrator.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x72 i -= len(m.ControllerNamespace) copy(dAtA[i:], m.ControllerNamespace) i = encodeVarintGenerated(dAtA, i, uint64(len(m.ControllerNamespace))) @@ -9204,6 +9449,44 @@ func (m *ConnectionState) MarshalToSizedBuffer(dAtA []byte) (int, error) { return len(dAtA) - i, nil } +func (m *DrySource) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *DrySource) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *DrySource) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + i -= len(m.Path) + copy(dAtA[i:], m.Path) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Path))) + i-- + dAtA[i] = 0x1a + i -= len(m.TargetRevision) + copy(dAtA[i:], m.TargetRevision) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.TargetRevision))) + i-- + dAtA[i] = 0x12 + i -= len(m.RepoURL) + copy(dAtA[i:], m.RepoURL) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.RepoURL))) + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + func (m *DuckTypeGenerator) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -9910,6 +10193,109 @@ func (m *HostResourceInfo) MarshalToSizedBuffer(dAtA []byte) (int, error) { return len(dAtA) - i, nil } +func (m *HydrateOperation) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *HydrateOperation) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *HydrateOperation) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + { + size, err := m.SourceHydrator.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x3a + i -= len(m.HydratedSHA) + copy(dAtA[i:], m.HydratedSHA) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.HydratedSHA))) + i-- + dAtA[i] = 0x32 + i -= len(m.DrySHA) + copy(dAtA[i:], m.DrySHA) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.DrySHA))) + i-- + dAtA[i] = 0x2a + i -= len(m.Message) + copy(dAtA[i:], m.Message) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Message))) + i-- + dAtA[i] = 0x22 + i -= len(m.Phase) + copy(dAtA[i:], m.Phase) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Phase))) + i-- + dAtA[i] = 0x1a + if m.FinishedAt != nil { + { + size, err := m.FinishedAt.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + { + size, err := m.StartedAt.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *HydrateTo) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *HydrateTo) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *HydrateTo) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + i -= len(m.TargetBranch) + copy(dAtA[i:], m.TargetBranch) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.TargetBranch))) + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + func (m *Info) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -14205,6 +14591,151 @@ func (m *SignatureKey) MarshalToSizedBuffer(dAtA []byte) (int, error) { return len(dAtA) - i, nil } +func (m *SourceHydrator) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *SourceHydrator) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *SourceHydrator) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.HydrateTo != nil { + { + size, err := m.HydrateTo.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + } + { + size, err := m.SyncSource.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + { + size, err := m.DrySource.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *SourceHydratorStatus) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *SourceHydratorStatus) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *SourceHydratorStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.CurrentOperation != nil { + { + size, err := m.CurrentOperation.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + if m.LastSuccessfulOperation != nil { + { + size, err := m.LastSuccessfulOperation.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *SuccessfulHydrateOperation) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *SuccessfulHydrateOperation) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *SuccessfulHydrateOperation) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + { + size, err := m.SourceHydrator.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x3a + i -= len(m.HydratedSHA) + copy(dAtA[i:], m.HydratedSHA) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.HydratedSHA))) + i-- + dAtA[i] = 0x32 + i -= len(m.DrySHA) + copy(dAtA[i:], m.DrySHA) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.DrySHA))) + i-- + dAtA[i] = 0x2a + return len(dAtA) - i, nil +} + func (m *SyncOperation) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -14576,6 +15107,39 @@ func (m *SyncPolicyAutomated) MarshalToSizedBuffer(dAtA []byte) (int, error) { return len(dAtA) - i, nil } +func (m *SyncSource) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *SyncSource) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *SyncSource) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + i -= len(m.Path) + copy(dAtA[i:], m.Path) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Path))) + i-- + dAtA[i] = 0x12 + i -= len(m.TargetBranch) + copy(dAtA[i:], m.TargetBranch) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.TargetBranch))) + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + func (m *SyncStatus) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -15913,6 +16477,10 @@ func (m *ApplicationSpec) Size() (n int) { n += 1 + l + sovGenerated(uint64(l)) } } + if m.SourceHydrator != nil { + l = m.SourceHydrator.Size() + n += 1 + l + sovGenerated(uint64(l)) + } return n } @@ -15970,6 +16538,8 @@ func (m *ApplicationStatus) Size() (n int) { } l = len(m.ControllerNamespace) n += 1 + l + sovGenerated(uint64(l)) + l = m.SourceHydrator.Size() + n += 1 + l + sovGenerated(uint64(l)) return n } @@ -16377,6 +16947,21 @@ func (m *ConnectionState) Size() (n int) { return n } +func (m *DrySource) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.RepoURL) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.TargetRevision) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.Path) + n += 1 + l + sovGenerated(uint64(l)) + return n +} + func (m *DuckTypeGenerator) Size() (n int) { if m == nil { return 0 @@ -16645,6 +17230,42 @@ func (m *HostResourceInfo) Size() (n int) { return n } +func (m *HydrateOperation) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = m.StartedAt.Size() + n += 1 + l + sovGenerated(uint64(l)) + if m.FinishedAt != nil { + l = m.FinishedAt.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + l = len(m.Phase) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.Message) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.DrySHA) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.HydratedSHA) + n += 1 + l + sovGenerated(uint64(l)) + l = m.SourceHydrator.Size() + n += 1 + l + sovGenerated(uint64(l)) + return n +} + +func (m *HydrateTo) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.TargetBranch) + n += 1 + l + sovGenerated(uint64(l)) + return n +} + func (m *Info) Size() (n int) { if m == nil { return 0 @@ -18231,6 +18852,55 @@ func (m *SignatureKey) Size() (n int) { return n } +func (m *SourceHydrator) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = m.DrySource.Size() + n += 1 + l + sovGenerated(uint64(l)) + l = m.SyncSource.Size() + n += 1 + l + sovGenerated(uint64(l)) + if m.HydrateTo != nil { + l = m.HydrateTo.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + return n +} + +func (m *SourceHydratorStatus) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.LastSuccessfulOperation != nil { + l = m.LastSuccessfulOperation.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if m.CurrentOperation != nil { + l = m.CurrentOperation.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + return n +} + +func (m *SuccessfulHydrateOperation) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.DrySHA) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.HydratedSHA) + n += 1 + l + sovGenerated(uint64(l)) + l = m.SourceHydrator.Size() + n += 1 + l + sovGenerated(uint64(l)) + return n +} + func (m *SyncOperation) Size() (n int) { if m == nil { return 0 @@ -18374,6 +19044,19 @@ func (m *SyncPolicyAutomated) Size() (n int) { return n } +func (m *SyncSource) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.TargetBranch) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.Path) + n += 1 + l + sovGenerated(uint64(l)) + return n +} + func (m *SyncStatus) Size() (n int) { if m == nil { return 0 @@ -19225,6 +19908,7 @@ func (this *ApplicationSpec) String() string { `Info:` + repeatedStringForInfo + `,`, `RevisionHistoryLimit:` + valueToStringGenerated(this.RevisionHistoryLimit) + `,`, `Sources:` + repeatedStringForSources + `,`, + `SourceHydrator:` + strings.Replace(this.SourceHydrator.String(), "SourceHydrator", "SourceHydrator", 1) + `,`, `}`, }, "") return s @@ -19262,6 +19946,7 @@ func (this *ApplicationStatus) String() string { `ResourceHealthSource:` + fmt.Sprintf("%v", this.ResourceHealthSource) + `,`, `SourceTypes:` + fmt.Sprintf("%v", this.SourceTypes) + `,`, `ControllerNamespace:` + fmt.Sprintf("%v", this.ControllerNamespace) + `,`, + `SourceHydrator:` + strings.Replace(strings.Replace(this.SourceHydrator.String(), "SourceHydratorStatus", "SourceHydratorStatus", 1), `&`, ``, 1) + `,`, `}`, }, "") return s @@ -19577,6 +20262,18 @@ func (this *ConnectionState) String() string { }, "") return s } +func (this *DrySource) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&DrySource{`, + `RepoURL:` + fmt.Sprintf("%v", this.RepoURL) + `,`, + `TargetRevision:` + fmt.Sprintf("%v", this.TargetRevision) + `,`, + `Path:` + fmt.Sprintf("%v", this.Path) + `,`, + `}`, + }, "") + return s +} func (this *DuckTypeGenerator) String() string { if this == nil { return "nil" @@ -19809,6 +20506,32 @@ func (this *HostResourceInfo) String() string { }, "") return s } +func (this *HydrateOperation) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&HydrateOperation{`, + `StartedAt:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.StartedAt), "Time", "v1.Time", 1), `&`, ``, 1) + `,`, + `FinishedAt:` + strings.Replace(fmt.Sprintf("%v", this.FinishedAt), "Time", "v1.Time", 1) + `,`, + `Phase:` + fmt.Sprintf("%v", this.Phase) + `,`, + `Message:` + fmt.Sprintf("%v", this.Message) + `,`, + `DrySHA:` + fmt.Sprintf("%v", this.DrySHA) + `,`, + `HydratedSHA:` + fmt.Sprintf("%v", this.HydratedSHA) + `,`, + `SourceHydrator:` + strings.Replace(strings.Replace(this.SourceHydrator.String(), "SourceHydrator", "SourceHydrator", 1), `&`, ``, 1) + `,`, + `}`, + }, "") + return s +} +func (this *HydrateTo) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&HydrateTo{`, + `TargetBranch:` + fmt.Sprintf("%v", this.TargetBranch) + `,`, + `}`, + }, "") + return s +} func (this *Info) String() string { if this == nil { return "nil" @@ -20983,6 +21706,41 @@ func (this *SignatureKey) String() string { }, "") return s } +func (this *SourceHydrator) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&SourceHydrator{`, + `DrySource:` + strings.Replace(strings.Replace(this.DrySource.String(), "DrySource", "DrySource", 1), `&`, ``, 1) + `,`, + `SyncSource:` + strings.Replace(strings.Replace(this.SyncSource.String(), "SyncSource", "SyncSource", 1), `&`, ``, 1) + `,`, + `HydrateTo:` + strings.Replace(this.HydrateTo.String(), "HydrateTo", "HydrateTo", 1) + `,`, + `}`, + }, "") + return s +} +func (this *SourceHydratorStatus) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&SourceHydratorStatus{`, + `LastSuccessfulOperation:` + strings.Replace(this.LastSuccessfulOperation.String(), "SuccessfulHydrateOperation", "SuccessfulHydrateOperation", 1) + `,`, + `CurrentOperation:` + strings.Replace(this.CurrentOperation.String(), "HydrateOperation", "HydrateOperation", 1) + `,`, + `}`, + }, "") + return s +} +func (this *SuccessfulHydrateOperation) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&SuccessfulHydrateOperation{`, + `DrySHA:` + fmt.Sprintf("%v", this.DrySHA) + `,`, + `HydratedSHA:` + fmt.Sprintf("%v", this.HydratedSHA) + `,`, + `SourceHydrator:` + strings.Replace(strings.Replace(this.SourceHydrator.String(), "SourceHydrator", "SourceHydrator", 1), `&`, ``, 1) + `,`, + `}`, + }, "") + return s +} func (this *SyncOperation) String() string { if this == nil { return "nil" @@ -21076,6 +21834,17 @@ func (this *SyncPolicyAutomated) String() string { }, "") return s } +func (this *SyncSource) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&SyncSource{`, + `TargetBranch:` + fmt.Sprintf("%v", this.TargetBranch) + `,`, + `Path:` + fmt.Sprintf("%v", this.Path) + `,`, + `}`, + }, "") + return s +} func (this *SyncStatus) String() string { if this == nil { return "nil" @@ -29306,6 +30075,42 @@ func (m *ApplicationSpec) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex + case 9: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field SourceHydrator", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.SourceHydrator == nil { + m.SourceHydrator = &SourceHydrator{} + } + if err := m.SourceHydrator.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipGenerated(dAtA[iNdEx:]) @@ -29793,61 +30598,11 @@ func (m *ApplicationStatus) Unmarshal(dAtA []byte) error { } m.ControllerNamespace = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *ApplicationSummary) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: ApplicationSummary: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: ApplicationSummary: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: + case 14: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ExternalURLs", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field SourceHydrator", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowGenerated @@ -29857,55 +30612,138 @@ func (m *ApplicationSummary) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return ErrInvalidLengthGenerated } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex < 0 { return ErrInvalidLengthGenerated } if postIndex > l { return io.ErrUnexpectedEOF } - m.ExternalURLs = append(m.ExternalURLs, string(dAtA[iNdEx:postIndex])) - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Images", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF + if err := m.SourceHydrator.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err } - m.Images = append(m.Images, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ApplicationSummary) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ApplicationSummary: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ApplicationSummary: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ExternalURLs", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ExternalURLs = append(m.ExternalURLs, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Images", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Images = append(m.Images, string(dAtA[iNdEx:postIndex])) iNdEx = postIndex default: iNdEx = preIndex @@ -33308,7 +34146,7 @@ func (m *ConnectionState) Unmarshal(dAtA []byte) error { } return nil } -func (m *DuckTypeGenerator) Unmarshal(dAtA []byte) error { +func (m *DrySource) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -33331,15 +34169,15 @@ func (m *DuckTypeGenerator) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: DuckTypeGenerator: wiretype end group for non-group") + return fmt.Errorf("proto: DrySource: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: DuckTypeGenerator: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: DrySource: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ConfigMapRef", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field RepoURL", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -33367,11 +34205,11 @@ func (m *DuckTypeGenerator) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.ConfigMapRef = string(dAtA[iNdEx:postIndex]) + m.RepoURL = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field TargetRevision", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -33399,13 +34237,13 @@ func (m *DuckTypeGenerator) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Name = string(dAtA[iNdEx:postIndex]) + m.TargetRevision = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 3: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field RequeueAfterSeconds", wireType) + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Path", wireType) } - var v int64 + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowGenerated @@ -33415,17 +34253,79 @@ func (m *DuckTypeGenerator) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - v |= int64(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - m.RequeueAfterSeconds = &v - case 4: + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Path = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *DuckTypeGenerator) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: DuckTypeGenerator: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: DuckTypeGenerator: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field LabelSelector", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field ConfigMapRef", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowGenerated @@ -33435,28 +34335,112 @@ func (m *DuckTypeGenerator) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return ErrInvalidLengthGenerated } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex < 0 { return ErrInvalidLengthGenerated } if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.LabelSelector.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err + m.ConfigMapRef = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Name = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex - case 5: + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field RequeueAfterSeconds", wireType) + } + var v int64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int64(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.RequeueAfterSeconds = &v + case 4: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Template", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field LabelSelector", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.LabelSelector.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Template", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -35064,15 +36048,325 @@ func (m *HealthStatus) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: HealthStatus: wiretype end group for non-group") + return fmt.Errorf("proto: HealthStatus: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: HealthStatus: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Status", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Status = github_com_argoproj_gitops_engine_pkg_health.HealthStatusCode(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Message", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Message = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *HelmFileParameter) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: HelmFileParameter: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: HelmFileParameter: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Name = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Path", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Path = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *HelmOptions) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: HelmOptions: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: HelmOptions: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ValuesFileSchemes", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ValuesFileSchemes = append(m.ValuesFileSchemes, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *HelmParameter) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: HelmParameter: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: HealthStatus: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: HelmParameter: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Status", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -35100,11 +36394,11 @@ func (m *HealthStatus) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Status = github_com_argoproj_gitops_engine_pkg_health.HealthStatusCode(dAtA[iNdEx:postIndex]) + m.Name = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Message", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Value", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -35132,8 +36426,28 @@ func (m *HealthStatus) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Message = string(dAtA[iNdEx:postIndex]) + m.Value = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field ForceString", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.ForceString = bool(v != 0) default: iNdEx = preIndex skippy, err := skipGenerated(dAtA[iNdEx:]) @@ -35155,7 +36469,7 @@ func (m *HealthStatus) Unmarshal(dAtA []byte) error { } return nil } -func (m *HelmFileParameter) Unmarshal(dAtA []byte) error { +func (m *HostInfo) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -35178,10 +36492,10 @@ func (m *HelmFileParameter) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: HelmFileParameter: wiretype end group for non-group") + return fmt.Errorf("proto: HostInfo: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: HelmFileParameter: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: HostInfo: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: @@ -35218,9 +36532,9 @@ func (m *HelmFileParameter) Unmarshal(dAtA []byte) error { iNdEx = postIndex case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Path", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field ResourcesInfo", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowGenerated @@ -35230,23 +36544,58 @@ func (m *HelmFileParameter) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return ErrInvalidLengthGenerated } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex < 0 { return ErrInvalidLengthGenerated } if postIndex > l { return io.ErrUnexpectedEOF } - m.Path = string(dAtA[iNdEx:postIndex]) + m.ResourcesInfo = append(m.ResourcesInfo, HostResourceInfo{}) + if err := m.ResourcesInfo[len(m.ResourcesInfo)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field SystemInfo", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.SystemInfo.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } iNdEx = postIndex default: iNdEx = preIndex @@ -35269,7 +36618,7 @@ func (m *HelmFileParameter) Unmarshal(dAtA []byte) error { } return nil } -func (m *HelmOptions) Unmarshal(dAtA []byte) error { +func (m *HostResourceInfo) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -35292,15 +36641,15 @@ func (m *HelmOptions) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: HelmOptions: wiretype end group for non-group") + return fmt.Errorf("proto: HostResourceInfo: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: HelmOptions: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: HostResourceInfo: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ValuesFileSchemes", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field ResourceName", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -35328,8 +36677,65 @@ func (m *HelmOptions) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.ValuesFileSchemes = append(m.ValuesFileSchemes, string(dAtA[iNdEx:postIndex])) + m.ResourceName = k8s_io_api_core_v1.ResourceName(dAtA[iNdEx:postIndex]) iNdEx = postIndex + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field RequestedByApp", wireType) + } + m.RequestedByApp = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.RequestedByApp |= int64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field RequestedByNeighbors", wireType) + } + m.RequestedByNeighbors = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.RequestedByNeighbors |= int64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 4: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Capacity", wireType) + } + m.Capacity = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Capacity |= int64(b&0x7F) << shift + if b < 0x80 { + break + } + } default: iNdEx = preIndex skippy, err := skipGenerated(dAtA[iNdEx:]) @@ -35351,7 +36757,7 @@ func (m *HelmOptions) Unmarshal(dAtA []byte) error { } return nil } -func (m *HelmParameter) Unmarshal(dAtA []byte) error { +func (m *HydrateOperation) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -35374,17 +36780,17 @@ func (m *HelmParameter) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: HelmParameter: wiretype end group for non-group") + return fmt.Errorf("proto: HydrateOperation: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: HelmParameter: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: HydrateOperation: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field StartedAt", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowGenerated @@ -35394,27 +36800,64 @@ func (m *HelmParameter) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return ErrInvalidLengthGenerated } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex < 0 { return ErrInvalidLengthGenerated } if postIndex > l { return io.ErrUnexpectedEOF } - m.Name = string(dAtA[iNdEx:postIndex]) + if err := m.StartedAt.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } iNdEx = postIndex case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Value", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field FinishedAt", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.FinishedAt == nil { + m.FinishedAt = &v1.Time{} + } + if err := m.FinishedAt.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Phase", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -35442,13 +36885,13 @@ func (m *HelmParameter) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Value = string(dAtA[iNdEx:postIndex]) + m.Phase = HydrateOperationPhase(dAtA[iNdEx:postIndex]) iNdEx = postIndex - case 3: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field ForceString", wireType) + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Message", wireType) } - var v int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowGenerated @@ -35458,65 +36901,27 @@ func (m *HelmParameter) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - v |= int(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - m.ForceString = bool(v != 0) - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if (skippy < 0) || (iNdEx+skippy) < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return ErrInvalidLengthGenerated } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *HostInfo) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated } - if iNdEx >= l { + if postIndex > l { return io.ErrUnexpectedEOF } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: HostInfo: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: HostInfo: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: + m.Message = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 5: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field DrySHA", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -35544,13 +36949,13 @@ func (m *HostInfo) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Name = string(dAtA[iNdEx:postIndex]) + m.DrySHA = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex - case 2: + case 6: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ResourcesInfo", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field HydratedSHA", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowGenerated @@ -35560,29 +36965,27 @@ func (m *HostInfo) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return ErrInvalidLengthGenerated } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex < 0 { return ErrInvalidLengthGenerated } if postIndex > l { return io.ErrUnexpectedEOF } - m.ResourcesInfo = append(m.ResourcesInfo, HostResourceInfo{}) - if err := m.ResourcesInfo[len(m.ResourcesInfo)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } + m.HydratedSHA = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex - case 3: + case 7: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field SystemInfo", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field SourceHydrator", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -35609,7 +37012,7 @@ func (m *HostInfo) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.SystemInfo.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if err := m.SourceHydrator.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -35634,7 +37037,7 @@ func (m *HostInfo) Unmarshal(dAtA []byte) error { } return nil } -func (m *HostResourceInfo) Unmarshal(dAtA []byte) error { +func (m *HydrateTo) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -35657,15 +37060,15 @@ func (m *HostResourceInfo) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: HostResourceInfo: wiretype end group for non-group") + return fmt.Errorf("proto: HydrateTo: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: HostResourceInfo: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: HydrateTo: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ResourceName", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field TargetBranch", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -35693,65 +37096,8 @@ func (m *HostResourceInfo) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.ResourceName = k8s_io_api_core_v1.ResourceName(dAtA[iNdEx:postIndex]) + m.TargetBranch = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex - case 2: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field RequestedByApp", wireType) - } - m.RequestedByApp = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.RequestedByApp |= int64(b&0x7F) << shift - if b < 0x80 { - break - } - } - case 3: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field RequestedByNeighbors", wireType) - } - m.RequestedByNeighbors = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.RequestedByNeighbors |= int64(b&0x7F) << shift - if b < 0x80 { - break - } - } - case 4: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Capacity", wireType) - } - m.Capacity = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.Capacity |= int64(b&0x7F) << shift - if b < 0x80 { - break - } - } default: iNdEx = preIndex skippy, err := skipGenerated(dAtA[iNdEx:]) @@ -50357,15 +51703,371 @@ func (m *SignatureKey) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: SignatureKey: wiretype end group for non-group") + return fmt.Errorf("proto: SignatureKey: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: SignatureKey: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field KeyID", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.KeyID = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *SourceHydrator) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: SourceHydrator: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: SourceHydrator: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field DrySource", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.DrySource.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field SyncSource", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.SyncSource.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field HydrateTo", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.HydrateTo == nil { + m.HydrateTo = &HydrateTo{} + } + if err := m.HydrateTo.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *SourceHydratorStatus) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: SourceHydratorStatus: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: SignatureKey: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: SourceHydratorStatus: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field KeyID", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field LastSuccessfulOperation", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.LastSuccessfulOperation == nil { + m.LastSuccessfulOperation = &SuccessfulHydrateOperation{} + } + if err := m.LastSuccessfulOperation.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field CurrentOperation", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.CurrentOperation == nil { + m.CurrentOperation = &HydrateOperation{} + } + if err := m.CurrentOperation.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *SuccessfulHydrateOperation) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: SuccessfulHydrateOperation: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: SuccessfulHydrateOperation: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field DrySHA", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -50393,7 +52095,72 @@ func (m *SignatureKey) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.KeyID = string(dAtA[iNdEx:postIndex]) + m.DrySHA = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field HydratedSHA", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.HydratedSHA = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 7: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field SourceHydrator", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.SourceHydrator.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } iNdEx = postIndex default: iNdEx = preIndex @@ -51522,6 +53289,120 @@ func (m *SyncPolicyAutomated) Unmarshal(dAtA []byte) error { } return nil } +func (m *SyncSource) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: SyncSource: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: SyncSource: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field TargetBranch", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.TargetBranch = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Path", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Path = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} func (m *SyncStatus) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 diff --git a/pkg/apis/application/v1alpha1/generated.proto b/pkg/apis/application/v1alpha1/generated.proto index c0cdb149ba537..81e6cb8e1b343 100644 --- a/pkg/apis/application/v1alpha1/generated.proto +++ b/pkg/apis/application/v1alpha1/generated.proto @@ -638,6 +638,9 @@ message ApplicationSpec { // Sources is a reference to the location of the application's manifests or chart repeated ApplicationSource sources = 8; + + // SourceHydrator provides a way to push hydrated manifests back to git before syncing them to the cluster. + optional SourceHydrator sourceHydrator = 9; } // ApplicationStatus contains status information for the application @@ -681,6 +684,9 @@ message ApplicationStatus { // ControllerNamespace indicates the namespace in which the application controller is located optional string controllerNamespace = 13; + + // SourceHydrator stores information about the current state of source hydration + optional SourceHydratorStatus sourceHydrator = 14; } // ApplicationSummary contains information about URLs and container images used by an application @@ -951,6 +957,18 @@ message ConnectionState { optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time attemptedAt = 3; } +// DrySource specifies a location for dry "don't repeat yourself" manifest source information. +message DrySource { + // RepoURL is the URL to the git repository that contains the application manifests + optional string repoURL = 1; + + // TargetRevision defines the revision of the source to hydrate + optional string targetRevision = 2; + + // Path is a directory path within the Git repository where the manifests are located + optional string path = 3; +} + // DuckType defines a generator to match against clusters registered with ArgoCD. message DuckTypeGenerator { // ConfigMapRef is a ConfigMap with the duck type definitions needed to retrieve the data @@ -1116,6 +1134,37 @@ message HostResourceInfo { optional int64 capacity = 4; } +// HydrateOperation contains information about the most recent hydrate operation +message HydrateOperation { + // StartedAt indicates when the hydrate operation started + optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time startedAt = 1; + + // FinishedAt indicates when the hydrate operation finished + optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time finishedAt = 2; + + // Phase indicates the status of the hydrate operation + optional string phase = 3; + + // Message contains a message describing the current status of the hydrate operation + optional string message = 4; + + // DrySHA holds the resolved revision (sha) of the dry source as of the most recent reconciliation + optional string drySHA = 5; + + // HydratedSHA holds the resolved revision (sha) of the hydrated source as of the most recent reconciliation + optional string hydratedSHA = 6; + + // SourceHydrator holds the hydrator config used for the hydrate operation + optional SourceHydrator sourceHydrator = 7; +} + +// HydrateTo specifies a location to which hydrated manifests should be pushed as a "staging area" before being moved to +// the SyncSource. The RepoURL and Path are assumed based on the associated SyncSource config in the SourceHydrator. +message HydrateTo { + // TargetBranch is the branch to which hydrated manifests should be committed + optional string targetBranch = 1; +} + message Info { optional string name = 1; @@ -2233,6 +2282,41 @@ message SignatureKey { optional string keyID = 1; } +// SourceHydrator specifies a dry "don't repeat yourself" source for manifests, a sync source from which to sync +// hydrated manifests, and an optional hydrateTo location to act as a "staging" aread for hydrated manifests. +message SourceHydrator { + // DrySource specifies where the dry "don't repeat yourself" manifest source lives. + optional DrySource drySource = 1; + + // SyncSource specifies where to sync hydrated manifests from. + optional SyncSource syncSource = 2; + + // HydrateTo specifies an optional "staging" location to push hydrated manifests to. An external system would then + // have to move manifests to the SyncSource, e.g. by pull request. + optional HydrateTo hydrateTo = 3; +} + +// SourceHydratorStatus contains information about the current state of source hydration +message SourceHydratorStatus { + // LastSuccessfulOperation holds info about the most recent successful hydration + optional SuccessfulHydrateOperation lastSuccessfulOperation = 1; + + // CurrentOperation holds the status of the hydrate operation + optional HydrateOperation currentOperation = 2; +} + +// SuccessfulHydrateOperation contains information about the most recent successful hydrate operation +message SuccessfulHydrateOperation { + // DrySHA holds the resolved revision (sha) of the dry source as of the most recent reconciliation + optional string drySHA = 5; + + // HydratedSHA holds the resolved revision (sha) of the hydrated source as of the most recent reconciliation + optional string hydratedSHA = 6; + + // SourceHydrator holds the hydrator config used for the hydrate operation + optional SourceHydrator sourceHydrator = 7; +} + // SyncOperation contains details about a sync operation. message SyncOperation { // Revision is the revision (Git) or chart version (Helm) which to sync the application to @@ -2332,6 +2416,17 @@ message SyncPolicyAutomated { optional bool allowEmpty = 3; } +// SyncSource specifies a location from which hydrated manifests may be synced. RepoURL is assumed based on the +// associated DrySource config in the SourceHydrator. +message SyncSource { + // TargetBranch is the branch to which hydrated manifests should be committed + optional string targetBranch = 1; + + // Path is a directory path within the git repository where hydrated manifests should be committed to and synced + // from. If hydrateTo is set, this is just the path from which hydrated manifests will be synced. + optional string path = 2; +} + // SyncStatus contains information about the currently observed live and desired states of an application message SyncStatus { // Status is the sync state of the comparison diff --git a/pkg/apis/application/v1alpha1/openapi_generated.go b/pkg/apis/application/v1alpha1/openapi_generated.go index 5221381ed80da..822c4a5e11049 100644 --- a/pkg/apis/application/v1alpha1/openapi_generated.go +++ b/pkg/apis/application/v1alpha1/openapi_generated.go @@ -72,6 +72,7 @@ func GetOpenAPIDefinitions(ref common.ReferenceCallback) map[string]common.OpenA "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.ConfigManagementPlugin": schema_pkg_apis_application_v1alpha1_ConfigManagementPlugin(ref), "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.ConfigMapKeyRef": schema_pkg_apis_application_v1alpha1_ConfigMapKeyRef(ref), "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.ConnectionState": schema_pkg_apis_application_v1alpha1_ConnectionState(ref), + "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.DrySource": schema_pkg_apis_application_v1alpha1_DrySource(ref), "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.DuckTypeGenerator": schema_pkg_apis_application_v1alpha1_DuckTypeGenerator(ref), "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.EnvEntry": schema_pkg_apis_application_v1alpha1_EnvEntry(ref), "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.ErrApplicationNotAllowedToUseProject": schema_pkg_apis_application_v1alpha1_ErrApplicationNotAllowedToUseProject(ref), @@ -87,6 +88,8 @@ func GetOpenAPIDefinitions(ref common.ReferenceCallback) map[string]common.OpenA "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.HelmParameter": schema_pkg_apis_application_v1alpha1_HelmParameter(ref), "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.HostInfo": schema_pkg_apis_application_v1alpha1_HostInfo(ref), "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.HostResourceInfo": schema_pkg_apis_application_v1alpha1_HostResourceInfo(ref), + "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.HydrateOperation": schema_pkg_apis_application_v1alpha1_HydrateOperation(ref), + "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.HydrateTo": schema_pkg_apis_application_v1alpha1_HydrateTo(ref), "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.Info": schema_pkg_apis_application_v1alpha1_Info(ref), "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.InfoItem": schema_pkg_apis_application_v1alpha1_InfoItem(ref), "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.JWTToken": schema_pkg_apis_application_v1alpha1_JWTToken(ref), @@ -158,11 +161,15 @@ func GetOpenAPIDefinitions(ref common.ReferenceCallback) map[string]common.OpenA "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.SCMProviderGeneratorGitlab": schema_pkg_apis_application_v1alpha1_SCMProviderGeneratorGitlab(ref), "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.SecretRef": schema_pkg_apis_application_v1alpha1_SecretRef(ref), "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.SignatureKey": schema_pkg_apis_application_v1alpha1_SignatureKey(ref), + "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.SourceHydrator": schema_pkg_apis_application_v1alpha1_SourceHydrator(ref), + "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.SourceHydratorStatus": schema_pkg_apis_application_v1alpha1_SourceHydratorStatus(ref), + "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.SuccessfulHydrateOperation": schema_pkg_apis_application_v1alpha1_SuccessfulHydrateOperation(ref), "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.SyncOperation": schema_pkg_apis_application_v1alpha1_SyncOperation(ref), "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.SyncOperationResource": schema_pkg_apis_application_v1alpha1_SyncOperationResource(ref), "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.SyncOperationResult": schema_pkg_apis_application_v1alpha1_SyncOperationResult(ref), "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.SyncPolicy": schema_pkg_apis_application_v1alpha1_SyncPolicy(ref), "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.SyncPolicyAutomated": schema_pkg_apis_application_v1alpha1_SyncPolicyAutomated(ref), + "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.SyncSource": schema_pkg_apis_application_v1alpha1_SyncSource(ref), "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.SyncStatus": schema_pkg_apis_application_v1alpha1_SyncStatus(ref), "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.SyncStrategy": schema_pkg_apis_application_v1alpha1_SyncStrategy(ref), "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.SyncStrategyApply": schema_pkg_apis_application_v1alpha1_SyncStrategyApply(ref), @@ -2317,12 +2324,18 @@ func schema_pkg_apis_application_v1alpha1_ApplicationSpec(ref common.ReferenceCa }, }, }, + "sourceHydrator": { + SchemaProps: spec.SchemaProps{ + Description: "SourceHydrator provides a way to push hydrated manifests back to git before syncing them to the cluster.", + Ref: ref("github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.SourceHydrator"), + }, + }, }, Required: []string{"destination", "project"}, }, }, Dependencies: []string{ - "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.ApplicationDestination", "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.ApplicationSource", "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.Info", "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.ResourceIgnoreDifferences", "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.SyncPolicy"}, + "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.ApplicationDestination", "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.ApplicationSource", "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.Info", "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.ResourceIgnoreDifferences", "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.SourceHydrator", "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.SyncPolicy"}, } } @@ -2450,11 +2463,18 @@ func schema_pkg_apis_application_v1alpha1_ApplicationStatus(ref common.Reference Format: "", }, }, + "sourceHydrator": { + SchemaProps: spec.SchemaProps{ + Description: "SourceHydrator stores information about the current state of source hydration", + Default: map[string]interface{}{}, + Ref: ref("github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.SourceHydratorStatus"), + }, + }, }, }, }, Dependencies: []string{ - "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.ApplicationCondition", "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.ApplicationSummary", "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.HealthStatus", "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.OperationState", "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.ResourceStatus", "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.RevisionHistory", "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.SyncStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.Time"}, + "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.ApplicationCondition", "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.ApplicationSummary", "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.HealthStatus", "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.OperationState", "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.ResourceStatus", "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.RevisionHistory", "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.SourceHydratorStatus", "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.SyncStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.Time"}, } } @@ -3346,6 +3366,44 @@ func schema_pkg_apis_application_v1alpha1_ConnectionState(ref common.ReferenceCa } } +func schema_pkg_apis_application_v1alpha1_DrySource(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "DrySource specifies a location for dry \"don't repeat yourself\" manifest source information.", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "repoURL": { + SchemaProps: spec.SchemaProps{ + Description: "RepoURL is the URL to the git repository that contains the application manifests", + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "targetRevision": { + SchemaProps: spec.SchemaProps{ + Description: "TargetRevision defines the revision of the source to hydrate", + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "path": { + SchemaProps: spec.SchemaProps{ + Description: "Path is a directory path within the Git repository where the manifests are located", + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, + Required: []string{"repoURL", "targetRevision", "path"}, + }, + }, + } +} + func schema_pkg_apis_application_v1alpha1_DuckTypeGenerator(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ @@ -3958,6 +4016,93 @@ func schema_pkg_apis_application_v1alpha1_HostResourceInfo(ref common.ReferenceC } } +func schema_pkg_apis_application_v1alpha1_HydrateOperation(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "HydrateOperation contains information about the most recent hydrate operation", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "startedAt": { + SchemaProps: spec.SchemaProps{ + Description: "StartedAt indicates when the hydrate operation started", + Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), + }, + }, + "finishedAt": { + SchemaProps: spec.SchemaProps{ + Description: "FinishedAt indicates when the hydrate operation finished", + Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), + }, + }, + "phase": { + SchemaProps: spec.SchemaProps{ + Description: "Phase indicates the status of the hydrate operation", + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "message": { + SchemaProps: spec.SchemaProps{ + Description: "Message contains a message describing the current status of the hydrate operation", + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "drySHA": { + SchemaProps: spec.SchemaProps{ + Description: "DrySHA holds the resolved revision (sha) of the dry source as of the most recent reconciliation", + Type: []string{"string"}, + Format: "", + }, + }, + "hydratedSHA": { + SchemaProps: spec.SchemaProps{ + Description: "HydratedSHA holds the resolved revision (sha) of the hydrated source as of the most recent reconciliation", + Type: []string{"string"}, + Format: "", + }, + }, + "sourceHydrator": { + SchemaProps: spec.SchemaProps{ + Description: "SourceHydrator holds the hydrator config used for the hydrate operation", + Default: map[string]interface{}{}, + Ref: ref("github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.SourceHydrator"), + }, + }, + }, + Required: []string{"phase", "message"}, + }, + }, + Dependencies: []string{ + "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.SourceHydrator", "k8s.io/apimachinery/pkg/apis/meta/v1.Time"}, + } +} + +func schema_pkg_apis_application_v1alpha1_HydrateTo(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "HydrateTo specifies a location to which hydrated manifests should be pushed as a \"staging area\" before being moved to the SyncSource. The RepoURL and Path are assumed based on the associated SyncSource config in the SourceHydrator.", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "targetBranch": { + SchemaProps: spec.SchemaProps{ + Description: "TargetBranch is the branch to which hydrated manifests should be committed", + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, + Required: []string{"targetBranch"}, + }, + }, + } +} + func schema_pkg_apis_application_v1alpha1_Info(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ @@ -7643,6 +7788,105 @@ func schema_pkg_apis_application_v1alpha1_SignatureKey(ref common.ReferenceCallb } } +func schema_pkg_apis_application_v1alpha1_SourceHydrator(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "SourceHydrator specifies a dry \"don't repeat yourself\" source for manifests, a sync source from which to sync hydrated manifests, and an optional hydrateTo location to act as a \"staging\" aread for hydrated manifests.", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "drySource": { + SchemaProps: spec.SchemaProps{ + Description: "DrySource specifies where the dry \"don't repeat yourself\" manifest source lives.", + Default: map[string]interface{}{}, + Ref: ref("github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.DrySource"), + }, + }, + "syncSource": { + SchemaProps: spec.SchemaProps{ + Description: "SyncSource specifies where to sync hydrated manifests from.", + Default: map[string]interface{}{}, + Ref: ref("github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.SyncSource"), + }, + }, + "hydrateTo": { + SchemaProps: spec.SchemaProps{ + Description: "HydrateTo specifies an optional \"staging\" location to push hydrated manifests to. An external system would then have to move manifests to the SyncSource, e.g. by pull request.", + Ref: ref("github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.HydrateTo"), + }, + }, + }, + Required: []string{"drySource", "syncSource"}, + }, + }, + Dependencies: []string{ + "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.DrySource", "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.HydrateTo", "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.SyncSource"}, + } +} + +func schema_pkg_apis_application_v1alpha1_SourceHydratorStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "SourceHydratorStatus contains information about the current state of source hydration", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "lastSuccessfulOperation": { + SchemaProps: spec.SchemaProps{ + Description: "LastSuccessfulOperation holds info about the most recent successful hydration", + Ref: ref("github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.SuccessfulHydrateOperation"), + }, + }, + "currentOperation": { + SchemaProps: spec.SchemaProps{ + Description: "CurrentOperation holds the status of the hydrate operation", + Ref: ref("github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.HydrateOperation"), + }, + }, + }, + }, + }, + Dependencies: []string{ + "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.HydrateOperation", "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.SuccessfulHydrateOperation"}, + } +} + +func schema_pkg_apis_application_v1alpha1_SuccessfulHydrateOperation(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "SuccessfulHydrateOperation contains information about the most recent successful hydrate operation", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "drySHA": { + SchemaProps: spec.SchemaProps{ + Description: "DrySHA holds the resolved revision (sha) of the dry source as of the most recent reconciliation", + Type: []string{"string"}, + Format: "", + }, + }, + "hydratedSHA": { + SchemaProps: spec.SchemaProps{ + Description: "HydratedSHA holds the resolved revision (sha) of the hydrated source as of the most recent reconciliation", + Type: []string{"string"}, + Format: "", + }, + }, + "sourceHydrator": { + SchemaProps: spec.SchemaProps{ + Description: "SourceHydrator holds the hydrator config used for the hydrate operation", + Default: map[string]interface{}{}, + Ref: ref("github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.SourceHydrator"), + }, + }, + }, + }, + }, + Dependencies: []string{ + "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.SourceHydrator"}, + } +} + func schema_pkg_apis_application_v1alpha1_SyncOperation(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ @@ -7965,6 +8209,36 @@ func schema_pkg_apis_application_v1alpha1_SyncPolicyAutomated(ref common.Referen } } +func schema_pkg_apis_application_v1alpha1_SyncSource(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "SyncSource specifies a location from which hydrated manifests may be synced. RepoURL is assumed based on the associated DrySource config in the SourceHydrator.", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "targetBranch": { + SchemaProps: spec.SchemaProps{ + Description: "TargetBranch is the branch to which hydrated manifests should be committed", + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "path": { + SchemaProps: spec.SchemaProps{ + Description: "Path is a directory path within the git repository where hydrated manifests should be committed to and synced from. If hydrateTo is set, this is just the path from which hydrated manifests will be synced.", + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, + Required: []string{"targetBranch", "path"}, + }, + }, + } +} + func schema_pkg_apis_application_v1alpha1_SyncStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ diff --git a/pkg/apis/application/v1alpha1/types.go b/pkg/apis/application/v1alpha1/types.go index 62b45a27b314a..bc9d1842fdb00 100644 --- a/pkg/apis/application/v1alpha1/types.go +++ b/pkg/apis/application/v1alpha1/types.go @@ -85,6 +85,9 @@ type ApplicationSpec struct { // Sources is a reference to the location of the application's manifests or chart Sources ApplicationSources `json:"sources,omitempty" protobuf:"bytes,8,opt,name=sources"` + + // SourceHydrator provides a way to push hydrated manifests back to git before syncing them to the cluster. + SourceHydrator *SourceHydrator `json:"sourceHydrator,omitempty" protobuf:"bytes,9,opt,name=sourceHydrator"` } type IgnoreDifferences []ResourceIgnoreDifferences @@ -348,6 +351,45 @@ const ( ApplicationSourceTypePlugin ApplicationSourceType = "Plugin" ) +// SourceHydrator specifies a dry "don't repeat yourself" source for manifests, a sync source from which to sync +// hydrated manifests, and an optional hydrateTo location to act as a "staging" aread for hydrated manifests. +type SourceHydrator struct { + // DrySource specifies where the dry "don't repeat yourself" manifest source lives. + DrySource DrySource `json:"drySource" protobuf:"bytes,1,name=drySource"` + // SyncSource specifies where to sync hydrated manifests from. + SyncSource SyncSource `json:"syncSource" protobuf:"bytes,2,name=syncSource"` + // HydrateTo specifies an optional "staging" location to push hydrated manifests to. An external system would then + // have to move manifests to the SyncSource, e.g. by pull request. + HydrateTo *HydrateTo `json:"hydrateTo,omitempty" protobuf:"bytes,3,opt,name=hydrateTo"` +} + +// DrySource specifies a location for dry "don't repeat yourself" manifest source information. +type DrySource struct { + // RepoURL is the URL to the git repository that contains the application manifests + RepoURL string `json:"repoURL" protobuf:"bytes,1,name=repoURL"` + // TargetRevision defines the revision of the source to hydrate + TargetRevision string `json:"targetRevision" protobuf:"bytes,2,name=targetRevision"` + // Path is a directory path within the Git repository where the manifests are located + Path string `json:"path" protobuf:"bytes,3,name=path"` +} + +// SyncSource specifies a location from which hydrated manifests may be synced. RepoURL is assumed based on the +// associated DrySource config in the SourceHydrator. +type SyncSource struct { + // TargetBranch is the branch to which hydrated manifests should be committed + TargetBranch string `json:"targetBranch" protobuf:"bytes,1,name=targetBranch"` + // Path is a directory path within the git repository where hydrated manifests should be committed to and synced + // from. If hydrateTo is set, this is just the path from which hydrated manifests will be synced. + Path string `json:"path" protobuf:"bytes,2,name=path"` +} + +// HydrateTo specifies a location to which hydrated manifests should be pushed as a "staging area" before being moved to +// the SyncSource. The RepoURL and Path are assumed based on the associated SyncSource config in the SourceHydrator. +type HydrateTo struct { + // TargetBranch is the branch to which hydrated manifests should be committed + TargetBranch string `json:"targetBranch" protobuf:"bytes,1,name=targetBranch"` +} + // RefreshType specifies how to refresh the sources of a given application type RefreshType string @@ -1038,7 +1080,55 @@ type ApplicationStatus struct { SourceTypes []ApplicationSourceType `json:"sourceTypes,omitempty" protobuf:"bytes,12,opt,name=sourceTypes"` // ControllerNamespace indicates the namespace in which the application controller is located ControllerNamespace string `json:"controllerNamespace,omitempty" protobuf:"bytes,13,opt,name=controllerNamespace"` -} + // SourceHydrator stores information about the current state of source hydration + SourceHydrator SourceHydratorStatus `json:"sourceHydrator,omitempty" protobuf:"bytes,14,opt,name=sourceHydrator"` +} + +// SourceHydratorStatus contains information about the current state of source hydration +type SourceHydratorStatus struct { + // LastSuccessfulOperation holds info about the most recent successful hydration + LastSuccessfulOperation *SuccessfulHydrateOperation `json:"lastSuccessfulOperation,omitempty" protobuf:"bytes,1,opt,name=lastSuccessfulOperation"` + // CurrentOperation holds the status of the hydrate operation + CurrentOperation *HydrateOperation `json:"currentOperation,omitempty" protobuf:"bytes,2,opt,name=currentOperation"` +} + +// HydrateOperation contains information about the most recent hydrate operation +type HydrateOperation struct { + // StartedAt indicates when the hydrate operation started + StartedAt metav1.Time `json:"startedAt,omitempty" protobuf:"bytes,1,opt,name=startedAt"` + // FinishedAt indicates when the hydrate operation finished + FinishedAt *metav1.Time `json:"finishedAt,omitempty" protobuf:"bytes,2,opt,name=finishedAt"` + // Phase indicates the status of the hydrate operation + Phase HydrateOperationPhase `json:"phase" protobuf:"bytes,3,opt,name=phase"` + // Message contains a message describing the current status of the hydrate operation + Message string `json:"message" protobuf:"bytes,4,opt,name=message"` + // DrySHA holds the resolved revision (sha) of the dry source as of the most recent reconciliation + DrySHA string `json:"drySHA,omitempty" protobuf:"bytes,5,opt,name=drySHA"` + // HydratedSHA holds the resolved revision (sha) of the hydrated source as of the most recent reconciliation + HydratedSHA string `json:"hydratedSHA,omitempty" protobuf:"bytes,6,opt,name=hydratedSHA"` + // SourceHydrator holds the hydrator config used for the hydrate operation + SourceHydrator SourceHydrator `json:"sourceHydrator,omitempty" protobuf:"bytes,7,opt,name=sourceHydrator"` +} + +// SuccessfulHydrateOperation contains information about the most recent successful hydrate operation +type SuccessfulHydrateOperation struct { + // DrySHA holds the resolved revision (sha) of the dry source as of the most recent reconciliation + DrySHA string `json:"drySHA,omitempty" protobuf:"bytes,5,opt,name=drySHA"` + // HydratedSHA holds the resolved revision (sha) of the hydrated source as of the most recent reconciliation + HydratedSHA string `json:"hydratedSHA,omitempty" protobuf:"bytes,6,opt,name=hydratedSHA"` + // SourceHydrator holds the hydrator config used for the hydrate operation + SourceHydrator SourceHydrator `json:"sourceHydrator,omitempty" protobuf:"bytes,7,opt,name=sourceHydrator"` +} + +// HydrateOperationPhase indicates the status of a hydrate operation +// +kubebuilder:validation:Enum=Hydrating;Failed;Hydrated +type HydrateOperationPhase string + +const ( + HydrateOperationPhaseHydrating HydrateOperationPhase = "Hydrating" + HydrateOperationPhaseFailed HydrateOperationPhase = "Failed" + HydrateOperationPhaseHydrated HydrateOperationPhase = "Hydrated" +) // GetRevisions will return the current revision associated with the Application. // If app has multisources, it will return all corresponding revisions preserving