diff --git a/assets/swagger.json b/assets/swagger.json index fb78f9420dc12a..157baf3b774a9f 100644 --- a/assets/swagger.json +++ b/assets/swagger.json @@ -6529,6 +6529,10 @@ "kustomize": { "$ref": "#/definitions/v1alpha1ApplicationSourceKustomize" }, + "name": { + "description": "Name is used to refer to a source and is displayed in the UI. It is used in multi-source Applications.", + "type": "string" + }, "path": { "description": "Path is a directory path within the Git repository, and is only valid for applications sourced from Git.", "type": "string" diff --git a/cmd/argocd/commands/app.go b/cmd/argocd/commands/app.go index c48382e23feded..6f517cde2920ec 100644 --- a/cmd/argocd/commands/app.go +++ b/cmd/argocd/commands/app.go @@ -317,6 +317,17 @@ func printHeader(acdClient argocdclient.Client, app *argoappv1.Application, ctx } } +// getSourceNameToPositionMap returns a map of source name to position +func getSourceNameToPositionMap(app *argoappv1.Application) map[string]int64 { + sourceNameToPosition := make(map[string]int64) + for i, s := range app.Spec.Sources { + if s.Name != "" { + sourceNameToPosition[s.Name] = int64(i + 1) + } + } + return sourceNameToPosition +} + // NewApplicationGetCommand returns a new instance of an `argocd app get` command func NewApplicationGetCommand(clientOpts *argocdclient.ClientOptions) *cobra.Command { var ( @@ -327,6 +338,7 @@ func NewApplicationGetCommand(clientOpts *argocdclient.ClientOptions) *cobra.Com showOperation bool appNamespace string sourcePosition int + sourceName string ) command := &cobra.Command{ Use: "get APPNAME", @@ -350,6 +362,9 @@ func NewApplicationGetCommand(clientOpts *argocdclient.ClientOptions) *cobra.Com # Show application parameters and overrides for a source at position 1 under spec.sources of app my-app argocd app get my-app --show-params --source-position 1 + # Show application parameters and overrides for a source named "test" + argocd app get my-app --show-params --source-name test + # Refresh application data when retrieving argocd app get my-app --refresh @@ -382,6 +397,19 @@ func NewApplicationGetCommand(clientOpts *argocdclient.ClientOptions) *cobra.Com }) errors.CheckError(err) + if sourceName != "" && sourcePosition != -1 { + errors.CheckError(fmt.Errorf("Only one of source-position and source-name can be specified.")) + } + + if sourceName != "" { + sourceNameToPosition := getSourceNameToPositionMap(app) + if pos, ok := sourceNameToPosition[sourceName]; !ok { + log.Fatalf("Unknown source name '%s'", sourceName) + } else { + sourcePosition = int(pos) + } + } + // check for source position if --show-params is set if app.Spec.HasMultipleSources() && showParams { if sourcePosition <= 0 { @@ -437,6 +465,7 @@ func NewApplicationGetCommand(clientOpts *argocdclient.ClientOptions) *cobra.Com command.Flags().BoolVar(&hardRefresh, "hard-refresh", false, "Refresh application data as well as target manifests cache") command.Flags().StringVarP(&appNamespace, "app-namespace", "N", "", "Only get application from namespace") command.Flags().IntVar(&sourcePosition, "source-position", -1, "Position of the source from the list of sources of the app. Counting starts at 1.") + command.Flags().StringVar(&sourceName, "source-name", "", "Name of the source from the list of sources of the app.") return command } @@ -766,6 +795,7 @@ func NewApplicationSetCommand(clientOpts *argocdclient.ClientOptions) *cobra.Com appOpts cmdutil.AppOptions appNamespace string sourcePosition int + sourceName string ) command := &cobra.Command{ Use: "set APPNAME", @@ -780,6 +810,9 @@ func NewApplicationSetCommand(clientOpts *argocdclient.ClientOptions) *cobra.Com # Set and override application parameters for a source at position 1 under spec.sources of app my-app. source-position starts at 1. argocd app set my-app --source-position 1 --repo https://github.com/argoproj/argocd-example-apps.git + # Set and override application parameters for a source named "test" under spec.sources of app my-app. + argocd app set my-app --source-name test --repo https://github.com/argoproj/argocd-example-apps.git + # Set application parameters and specify the namespace argocd app set my-app --parameter key1=value1 --parameter key2=value2 --namespace my-namespace `), @@ -798,6 +831,20 @@ func NewApplicationSetCommand(clientOpts *argocdclient.ClientOptions) *cobra.Com app, err := appIf.Get(ctx, &application.ApplicationQuery{Name: &appName, AppNamespace: &appNs}) errors.CheckError(err) + sourceName = appOpts.SourceName + if sourceName != "" && sourcePosition != -1 { + errors.CheckError(fmt.Errorf("Only one of source-position and source-name can be specified.")) + } + + if sourceName != "" { + sourceNameToPosition := getSourceNameToPositionMap(app) + if pos, ok := sourceNameToPosition[sourceName]; !ok { + log.Fatalf("Unknown source name '%s'", sourceName) + } else { + sourcePosition = int(pos) + } + } + if app.Spec.HasMultipleSources() { if sourcePosition <= 0 { errors.CheckError(fmt.Errorf("Source position should be specified and must be greater than 0 for applications with multiple sources")) @@ -861,6 +908,7 @@ func (o *unsetOpts) KustomizeIsZero() bool { // NewApplicationUnsetCommand returns a new instance of an `argocd app unset` command func NewApplicationUnsetCommand(clientOpts *argocdclient.ClientOptions) *cobra.Command { var sourcePosition int + var sourceName string appOpts := cmdutil.AppOptions{} opts := unsetOpts{} var appNamespace string @@ -876,6 +924,9 @@ func NewApplicationUnsetCommand(clientOpts *argocdclient.ClientOptions) *cobra.C # Unset kustomize override suffix for source at position 1 under spec.sources of app my-app. source-position starts at 1. argocd app unset my-app --source-position 1 --namesuffix + # Unset kustomize override suffix for source named "test" under spec.sources of app my-app. + argocd app unset my-app --source-name test --namesuffix + # Unset parameter override argocd app unset my-app -p COMPONENT=PARAM`, @@ -893,6 +944,20 @@ func NewApplicationUnsetCommand(clientOpts *argocdclient.ClientOptions) *cobra.C app, err := appIf.Get(ctx, &application.ApplicationQuery{Name: &appName, AppNamespace: &appNs}) errors.CheckError(err) + sourceName = appOpts.SourceName + if sourceName != "" && sourcePosition != -1 { + errors.CheckError(fmt.Errorf("Only one of source-position and source-name can be specified.")) + } + + if sourceName != "" { + sourceNameToPosition := getSourceNameToPositionMap(app) + if pos, ok := sourceNameToPosition[sourceName]; !ok { + log.Fatalf("Unknown source name '%s'", sourceName) + } else { + sourcePosition = int(pos) + } + } + if app.Spec.HasMultipleSources() { if sourcePosition <= 0 { errors.CheckError(fmt.Errorf("Source position should be specified and must be greater than 0 for applications with multiple sources")) @@ -1161,6 +1226,7 @@ func NewApplicationDiffCommand(clientOpts *argocdclient.ClientOptions) *cobra.Co appNamespace string revisions []string sourcePositions []int64 + sourceNames []string ignoreNormalizerOpts normalizers.IgnoreNormalizerOpts ) shortDesc := "Perform a diff against the target and live state." @@ -1176,8 +1242,16 @@ func NewApplicationDiffCommand(clientOpts *argocdclient.ClientOptions) *cobra.Co os.Exit(2) } - if len(revisions) != len(sourcePositions) { - errors.CheckError(fmt.Errorf("While using revisions and source-positions, length of values for both flags should be same.")) + if len(sourceNames) > 0 && len(sourcePositions) > 0 { + errors.CheckError(fmt.Errorf("Only one of source-positions and source-names can be specified.")) + } + + if len(sourcePositions) > 0 && len(revisions) != len(sourcePositions) { + errors.CheckError(fmt.Errorf("While using --revisions and --source-positions, length of values for both flags should be same.")) + } + + if len(sourceNames) > 0 && len(revisions) != len(sourceNames) { + errors.CheckError(fmt.Errorf("While using --revisions and --source-names, length of values for both flags should be same.")) } clientset := headless.NewClientOrDie(clientOpts, c) @@ -1191,6 +1265,18 @@ func NewApplicationDiffCommand(clientOpts *argocdclient.ClientOptions) *cobra.Co }) errors.CheckError(err) + if len(sourceNames) > 0 { + sourceNameToPosition := getSourceNameToPositionMap(app) + + for _, name := range sourceNames { + if pos, ok := sourceNameToPosition[name]; !ok { + log.Fatalf("Unknown source name '%s'", name) + } else { + sourcePositions = append(sourcePositions, pos) + } + } + } + resources, err := appIf.ManagedResources(ctx, &application.ResourcesQuery{ApplicationName: &appName, AppNamespace: &appNs}) errors.CheckError(err) conn, settingsIf := clientset.NewSettingsClientOrDie() @@ -1271,6 +1357,7 @@ func NewApplicationDiffCommand(clientOpts *argocdclient.ClientOptions) *cobra.Co command.Flags().StringVarP(&appNamespace, "app-namespace", "N", "", "Only render the difference in namespace") command.Flags().StringArrayVar(&revisions, "revisions", []string{}, "Show manifests at specific revisions for source position in source-positions") command.Flags().Int64SliceVar(&sourcePositions, "source-positions", []int64{}, "List of source positions. Default is empty array. Counting start at 1.") + command.Flags().StringArrayVar(&sourceNames, "source-names", []string{}, "List of source names. Default is an empty array.") command.Flags().DurationVar(&ignoreNormalizerOpts.JQExecutionTimeout, "ignore-normalizer-jq-execution-timeout", normalizers.DefaultJQExecutionTimeout, "Set ignore normalizer JQ execution timeout") return command } @@ -1835,6 +1922,7 @@ func NewApplicationSyncCommand(clientOpts *argocdclient.ClientOptions) *cobra.Co revision string revisions []string sourcePositions []int64 + sourceNames []string resources []string labels []string selector string @@ -1878,7 +1966,8 @@ func NewApplicationSyncCommand(clientOpts *argocdclient.ClientOptions) *cobra.Co argocd app sync -l 'app.kubernetes.io/instance notin (my-app,other-app)' # Sync a multi-source application for specific revision of specific sources - argocd app manifests my-app --revisions 0.0.1 --source-positions 1 --revisions 0.0.2 --source-positions 2 + argocd app sync my-app --revisions 0.0.1 --source-positions 1 --revisions 0.0.2 --source-positions 2 + argocd app sync my-app --revisions 0.0.1 --source-names my-chart --revisions 0.0.2 --source-names my-values # Sync a specific resource # Resource should be formatted as GROUP:KIND:NAME. If no GROUP is specified then :KIND:NAME @@ -1903,10 +1992,22 @@ func NewApplicationSyncCommand(clientOpts *argocdclient.ClientOptions) *cobra.Co log.Fatal("Cannot use --revisions and --source-positions options when 0 or more than 1 application names are passed as argument(s)") } - if len(revisions) != len(sourcePositions) { + if len(args) != 1 && (len(revisions) > 0 || len(sourceNames) > 0) { + log.Fatal("Cannot use --revisions and --source-names options when 0 or more than 1 application names are passed as argument(s)") + } + + if len(sourceNames) > 0 && len(sourcePositions) > 0 { + log.Fatal("Only one of source-positions and source-names can be specified.") + } + + if len(sourcePositions) > 0 && len(revisions) != len(sourcePositions) { log.Fatal("While using --revisions and --source-positions, length of values for both flags should be same.") } + if len(sourceNames) > 0 && len(revisions) != len(sourceNames) { + log.Fatal("While using --revisions and --source-names, length of values for both flags should be same.") + } + for _, pos := range sourcePositions { if pos <= 0 { log.Fatal("source-position cannot be less than or equal to 0, Counting starts at 1") @@ -1920,6 +2021,22 @@ func NewApplicationSyncCommand(clientOpts *argocdclient.ClientOptions) *cobra.Co selectedLabels, err := label.Parse(labels) errors.CheckError(err) + if len(args) == 1 && len(sourceNames) > 0 { + appName, _ := argo.ParseFromQualifiedName(args[0], appNamespace) + app, err := appIf.Get(context.Background(), &application.ApplicationQuery{Name: &appName}) + errors.CheckError(err) + + sourceNameToPosition := getSourceNameToPositionMap(app) + + for _, name := range sourceNames { + if pos, ok := sourceNameToPosition[name]; !ok { + log.Fatalf("Unknown source name '%s'", name) + } else { + sourcePositions = append(sourcePositions, pos) + } + } + } + appNames := args if selector != "" || len(projects) > 0 { list, err := appIf.List(ctx, &application.ApplicationQuery{ @@ -2178,6 +2295,7 @@ func NewApplicationSyncCommand(clientOpts *argocdclient.ClientOptions) *cobra.Co command.Flags().DurationVar(&ignoreNormalizerOpts.JQExecutionTimeout, "ignore-normalizer-jq-execution-timeout", normalizers.DefaultJQExecutionTimeout, "Set ignore normalizer JQ execution timeout") command.Flags().StringArrayVar(&revisions, "revisions", []string{}, "Show manifests at specific revisions for source position in source-positions") command.Flags().Int64SliceVar(&sourcePositions, "source-positions", []int64{}, "List of source positions. Default is empty array. Counting start at 1.") + command.Flags().StringArrayVar(&sourceNames, "source-names", []string{}, "List of source names. Default is an empty array.") return command } @@ -2818,6 +2936,7 @@ func NewApplicationManifestsCommand(clientOpts *argocdclient.ClientOptions) *cob revision string revisions []string sourcePositions []int64 + sourceNames []string local string localRepoRoot string ) @@ -2831,6 +2950,9 @@ func NewApplicationManifestsCommand(clientOpts *argocdclient.ClientOptions) *cob # Get manifests for an application at a specific revision argocd app manifests my-app --revision 0.0.1 + # Get manifests for a multi-source application at specific revisions for specific sources + argocd app manifests my-app --revisions 0.0.1 --source-names src-base --revisions 0.0.2 --source-names src-values + # Get manifests for a multi-source application at specific revisions for specific sources argocd app manifests my-app --revisions 0.0.1 --source-positions 1 --revisions 0.0.2 --source-positions 2 `), @@ -2842,8 +2964,16 @@ func NewApplicationManifestsCommand(clientOpts *argocdclient.ClientOptions) *cob os.Exit(1) } - if len(revisions) != len(sourcePositions) { - errors.CheckError(fmt.Errorf("While using revisions and source-positions, length of values for both flags should be same.")) + if len(sourceNames) > 0 && len(sourcePositions) > 0 { + errors.CheckError(fmt.Errorf("Only one of source-positions and source-names can be specified.")) + } + + if len(sourcePositions) > 0 && len(revisions) != len(sourcePositions) { + errors.CheckError(fmt.Errorf("While using --revisions and --source-positions, length of values for both flags should be same.")) + } + + if len(sourceNames) > 0 && len(revisions) != len(sourceNames) { + errors.CheckError(fmt.Errorf("While using --revisions and --source-names, length of values for both flags should be same.")) } for _, pos := range sourcePositions { @@ -2857,6 +2987,24 @@ func NewApplicationManifestsCommand(clientOpts *argocdclient.ClientOptions) *cob conn, appIf := clientset.NewApplicationClientOrDie() defer argoio.Close(conn) + app, err := appIf.Get(context.Background(), &application.ApplicationQuery{ + Name: &appName, + AppNamespace: &appNs, + }) + errors.CheckError(err) + + if len(sourceNames) > 0 { + sourceNameToPosition := getSourceNameToPositionMap(app) + + for _, name := range sourceNames { + if pos, ok := sourceNameToPosition[name]; !ok { + log.Fatalf("Unknown source name '%s'", name) + } else { + sourcePositions = append(sourcePositions, pos) + } + } + } + resources, err := appIf.ManagedResources(ctx, &application.ResourcesQuery{ ApplicationName: &appName, AppNamespace: &appNs, @@ -2867,9 +3015,6 @@ func NewApplicationManifestsCommand(clientOpts *argocdclient.ClientOptions) *cob switch source { case "git": if local != "" { - app, err := appIf.Get(context.Background(), &application.ApplicationQuery{Name: &appName}) - errors.CheckError(err) - settingsConn, settingsIf := clientset.NewSettingsClientOrDie() defer argoio.Close(settingsConn) argoSettings, err := settingsIf.Get(context.Background(), &settings.SettingsQuery{}) @@ -2938,6 +3083,7 @@ func NewApplicationManifestsCommand(clientOpts *argocdclient.ClientOptions) *cob command.Flags().StringVar(&revision, "revision", "", "Show manifests at a specific revision") command.Flags().StringArrayVar(&revisions, "revisions", []string{}, "Show manifests at specific revisions for the source at position in source-positions") command.Flags().Int64SliceVar(&sourcePositions, "source-positions", []int64{}, "List of source positions. Default is empty array. Counting start at 1.") + command.Flags().StringArrayVar(&sourceNames, "source-names", []string{}, "List of source names. Default is an empty array.") command.Flags().StringVar(&local, "local", "", "If set, show locally-generated manifests. Value is the absolute path to app manifests within the manifest repo. Example: '/home/username/apps/env/app-1'.") command.Flags().StringVar(&localRepoRoot, "local-repo-root", ".", "Path to the local repository root. Used together with --local allows setting the repository root. Example: '/home/username/apps'.") return command @@ -3086,7 +3232,7 @@ func NewApplicationAddSourceCommand(clientOpts *argocdclient.ClientOptions) *cob Use: "add-source APPNAME", Short: "Adds a source to the list of sources in the application", Example: ` # Append a source to the list of sources in the application - argocd app add-source guestbook --repo https://github.com/argoproj/argocd-example-apps.git --path guestbook`, + argocd app add-source guestbook --repo https://github.com/argoproj/argocd-example-apps.git --path guestbook --source-name guestbook`, Run: func(c *cobra.Command, args []string) { ctx := c.Context() if len(args) != 1 { @@ -3144,13 +3290,17 @@ func NewApplicationAddSourceCommand(clientOpts *argocdclient.ClientOptions) *cob func NewApplicationRemoveSourceCommand(clientOpts *argocdclient.ClientOptions) *cobra.Command { var ( sourcePosition int + sourceName string appNamespace string ) command := &cobra.Command{ Use: "remove-source APPNAME", - Short: "Remove a source from multiple sources application. Counting starts with 1. Default value is -1.", + Short: "Remove a source from multiple sources application.", Example: ` # Remove the source at position 1 from application's sources. Counting starts at 1. - argocd app remove-source myapplication --source-position 1`, + argocd app remove-source myapplication --source-position 1 + + # Remove the source named "test" from application's sources. + argocd app remove-source myapplication --source-name test`, Run: func(c *cobra.Command, args []string) { ctx := c.Context() @@ -3159,7 +3309,7 @@ func NewApplicationRemoveSourceCommand(clientOpts *argocdclient.ClientOptions) * os.Exit(1) } - if sourcePosition <= 0 { + if sourceName == "" && sourcePosition <= 0 { errors.CheckError(fmt.Errorf("Value of source-position must be greater than 0")) } @@ -3176,6 +3326,19 @@ func NewApplicationRemoveSourceCommand(clientOpts *argocdclient.ClientOptions) * }) errors.CheckError(err) + if sourceName != "" && sourcePosition != -1 { + errors.CheckError(fmt.Errorf("Only one of source-position and source-name can be specified.")) + } + + if sourceName != "" { + sourceNameToPosition := getSourceNameToPositionMap(app) + if pos, ok := sourceNameToPosition[sourceName]; !ok { + log.Fatalf("Unknown source name '%s'", sourceName) + } else { + sourcePosition = int(pos) + } + } + if !app.Spec.HasMultipleSources() { errors.CheckError(fmt.Errorf("Application does not have multiple sources configured")) } @@ -3208,6 +3371,7 @@ func NewApplicationRemoveSourceCommand(clientOpts *argocdclient.ClientOptions) * } command.Flags().StringVarP(&appNamespace, "app-namespace", "N", "", "Namespace of the target application where the source will be appended") command.Flags().IntVar(&sourcePosition, "source-position", -1, "Position of the source from the list of sources of the app. Counting starts at 1.") + command.Flags().StringVar(&sourceName, "source-name", "", "Name of the source from the list of sources of the app.") return command } diff --git a/cmd/util/app.go b/cmd/util/app.go index 025ef968097e53..f53b808f8a938c 100644 --- a/cmd/util/app.go +++ b/cmd/util/app.go @@ -89,6 +89,7 @@ type AppOptions struct { retryBackoffMaxDuration time.Duration retryBackoffFactor int64 ref string + SourceName string } // SetAutoMaxProcs sets the GOMAXPROCS value based on the binary name. @@ -164,6 +165,7 @@ func AddAppFlags(command *cobra.Command, opts *AppOptions) { command.Flags().DurationVar(&opts.retryBackoffMaxDuration, "sync-retry-backoff-max-duration", argoappv1.DefaultSyncRetryMaxDuration, "Max sync retry backoff duration. Input needs to be a duration (e.g. 2m, 1h)") command.Flags().Int64Var(&opts.retryBackoffFactor, "sync-retry-backoff-factor", argoappv1.DefaultSyncRetryFactor, "Factor multiplies the base duration after each failed sync retry") command.Flags().StringVar(&opts.ref, "ref", "", "Ref is reference to another source within sources field") + command.Flags().StringVar(&opts.SourceName, "source-name", "", "Name of the source from the list of sources of the app.") } func SetAppSpecOptions(flags *pflag.FlagSet, spec *argoappv1.ApplicationSpec, appOpts *AppOptions, sourcePosition int) int { @@ -751,6 +753,8 @@ func ConstructSource(source *argoappv1.ApplicationSource, appOpts AppOptions, fl setPluginOptEnvs(source, appOpts.pluginEnvs) case "ref": source.Ref = appOpts.ref + case "source-name": + source.Name = appOpts.SourceName } }) return source, visited diff --git a/docs/user-guide/commands/argocd_admin_app_generate-spec.md b/docs/user-guide/commands/argocd_admin_app_generate-spec.md index 9e863fe7b10ce8..60ad136c4111fa 100644 --- a/docs/user-guide/commands/argocd_admin_app_generate-spec.md +++ b/docs/user-guide/commands/argocd_admin_app_generate-spec.md @@ -93,6 +93,7 @@ argocd admin app generate-spec APPNAME [flags] --revision-history-limit int How many items to keep in revision history (default 10) --self-heal Set self healing when sync is automated --set-finalizer Sets deletion finalizer on the application, application resources will be cascaded on deletion + --source-name string Name of the source from the list of sources of the app. --sync-option Prune=false Add or remove a sync option, e.g add Prune=false. Remove using `!` prefix, e.g. `!Prune=false` --sync-policy string Set the sync policy (one of: manual (aliases of manual: none), automated (aliases of automated: auto, automatic)) --sync-retry-backoff-duration duration Sync retry backoff base duration. Input needs to be a duration (e.g. 2m, 1h) (default 5s) diff --git a/docs/user-guide/commands/argocd_app.md b/docs/user-guide/commands/argocd_app.md index b66326093ae6e8..2ff8e6cf830ff6 100644 --- a/docs/user-guide/commands/argocd_app.md +++ b/docs/user-guide/commands/argocd_app.md @@ -94,7 +94,7 @@ argocd app [flags] * [argocd app manifests](argocd_app_manifests.md) - Print manifests of an application * [argocd app patch](argocd_app_patch.md) - Patch application * [argocd app patch-resource](argocd_app_patch-resource.md) - Patch resource in an application -* [argocd app remove-source](argocd_app_remove-source.md) - Remove a source from multiple sources application. Counting starts with 1. Default value is -1. +* [argocd app remove-source](argocd_app_remove-source.md) - Remove a source from multiple sources application. * [argocd app resources](argocd_app_resources.md) - List resource of application * [argocd app rollback](argocd_app_rollback.md) - Rollback application to a previous deployed version by History ID, omitted will Rollback to the previous version * [argocd app set](argocd_app_set.md) - Set application parameters diff --git a/docs/user-guide/commands/argocd_app_add-source.md b/docs/user-guide/commands/argocd_app_add-source.md index 07c0c1f44b5a6e..4597aa4a080357 100644 --- a/docs/user-guide/commands/argocd_app_add-source.md +++ b/docs/user-guide/commands/argocd_app_add-source.md @@ -12,7 +12,7 @@ argocd app add-source APPNAME [flags] ``` # Append a source to the list of sources in the application - argocd app add-source guestbook --repo https://github.com/argoproj/argocd-example-apps.git --path guestbook + argocd app add-source guestbook --repo https://github.com/argoproj/argocd-example-apps.git --path guestbook --source-name guestbook ``` ### Options @@ -70,6 +70,7 @@ argocd app add-source APPNAME [flags] --revision string The tracking source branch, tag, commit or Helm chart version the application will sync to --revision-history-limit int How many items to keep in revision history (default 10) --self-heal Set self healing when sync is automated + --source-name string Name of the source from the list of sources of the app. --sync-option Prune=false Add or remove a sync option, e.g add Prune=false. Remove using `!` prefix, e.g. `!Prune=false` --sync-policy string Set the sync policy (one of: manual (aliases of manual: none), automated (aliases of automated: auto, automatic)) --sync-retry-backoff-duration duration Sync retry backoff base duration. Input needs to be a duration (e.g. 2m, 1h) (default 5s) diff --git a/docs/user-guide/commands/argocd_app_create.md b/docs/user-guide/commands/argocd_app_create.md index c4c8ca69cb23c1..cf5393ab04ac85 100644 --- a/docs/user-guide/commands/argocd_app_create.md +++ b/docs/user-guide/commands/argocd_app_create.md @@ -93,6 +93,7 @@ argocd app create APPNAME [flags] --revision-history-limit int How many items to keep in revision history (default 10) --self-heal Set self healing when sync is automated --set-finalizer Sets deletion finalizer on the application, application resources will be cascaded on deletion + --source-name string Name of the source from the list of sources of the app. --sync-option Prune=false Add or remove a sync option, e.g add Prune=false. Remove using `!` prefix, e.g. `!Prune=false` --sync-policy string Set the sync policy (one of: manual (aliases of manual: none), automated (aliases of automated: auto, automatic)) --sync-retry-backoff-duration duration Sync retry backoff base duration. Input needs to be a duration (e.g. 2m, 1h) (default 5s) diff --git a/docs/user-guide/commands/argocd_app_diff.md b/docs/user-guide/commands/argocd_app_diff.md index 88eba2e7a255fe..743fa6e2b203d6 100644 --- a/docs/user-guide/commands/argocd_app_diff.md +++ b/docs/user-guide/commands/argocd_app_diff.md @@ -31,6 +31,7 @@ argocd app diff APPNAME [flags] --revision string Compare live app to a particular revision --revisions stringArray Show manifests at specific revisions for source position in source-positions --server-side-generate Used with --local, this will send your manifests to the server for diffing + --source-names stringArray List of source names. Default is an empty array. --source-positions int64Slice List of source positions. Default is empty array. Counting start at 1. (default []) ``` diff --git a/docs/user-guide/commands/argocd_app_get.md b/docs/user-guide/commands/argocd_app_get.md index dc436d5b92f18c..667978ee27c850 100644 --- a/docs/user-guide/commands/argocd_app_get.md +++ b/docs/user-guide/commands/argocd_app_get.md @@ -29,6 +29,9 @@ argocd app get APPNAME [flags] # Show application parameters and overrides for a source at position 1 under spec.sources of app my-app argocd app get my-app --show-params --source-position 1 + # Show application parameters and overrides for a source named "test" + argocd app get my-app --show-params --source-name test + # Refresh application data when retrieving argocd app get my-app --refresh @@ -52,6 +55,7 @@ argocd app get APPNAME [flags] --refresh Refresh application data when retrieving --show-operation Show application operation --show-params Show application parameters and overrides + --source-name string Name of the source from the list of sources of the app. --source-position int Position of the source from the list of sources of the app. Counting starts at 1. (default -1) ``` diff --git a/docs/user-guide/commands/argocd_app_manifests.md b/docs/user-guide/commands/argocd_app_manifests.md index 2ea32ccc91e8be..e2cbe3bfb8c7a4 100644 --- a/docs/user-guide/commands/argocd_app_manifests.md +++ b/docs/user-guide/commands/argocd_app_manifests.md @@ -17,6 +17,9 @@ argocd app manifests APPNAME [flags] # Get manifests for an application at a specific revision argocd app manifests my-app --revision 0.0.1 + # Get manifests for a multi-source application at specific revisions for specific sources + argocd app manifests my-app --revisions 0.0.1 --source-names src-base --revisions 0.0.2 --source-names src-values + # Get manifests for a multi-source application at specific revisions for specific sources argocd app manifests my-app --revisions 0.0.1 --source-positions 1 --revisions 0.0.2 --source-positions 2 ``` @@ -30,6 +33,7 @@ argocd app manifests APPNAME [flags] --revision string Show manifests at a specific revision --revisions stringArray Show manifests at specific revisions for the source at position in source-positions --source string Source of manifests. One of: live|git (default "git") + --source-names stringArray List of source names. Default is an empty array. --source-positions int64Slice List of source positions. Default is empty array. Counting start at 1. (default []) ``` diff --git a/docs/user-guide/commands/argocd_app_remove-source.md b/docs/user-guide/commands/argocd_app_remove-source.md index 1835ef38adc0da..2b0aa9ec29841c 100644 --- a/docs/user-guide/commands/argocd_app_remove-source.md +++ b/docs/user-guide/commands/argocd_app_remove-source.md @@ -2,7 +2,7 @@ ## argocd app remove-source -Remove a source from multiple sources application. Counting starts with 1. Default value is -1. +Remove a source from multiple sources application. ``` argocd app remove-source APPNAME [flags] @@ -13,6 +13,9 @@ argocd app remove-source APPNAME [flags] ``` # Remove the source at position 1 from application's sources. Counting starts at 1. argocd app remove-source myapplication --source-position 1 + + # Remove the source named "test" from application's sources. + argocd app remove-source myapplication --source-name test ``` ### Options @@ -20,6 +23,7 @@ argocd app remove-source APPNAME [flags] ``` -N, --app-namespace string Namespace of the target application where the source will be appended -h, --help help for remove-source + --source-name string Name of the source from the list of sources of the app. --source-position int Position of the source from the list of sources of the app. Counting starts at 1. (default -1) ``` diff --git a/docs/user-guide/commands/argocd_app_set.md b/docs/user-guide/commands/argocd_app_set.md index 91cd421edc242e..7beefcac5955ed 100644 --- a/docs/user-guide/commands/argocd_app_set.md +++ b/docs/user-guide/commands/argocd_app_set.md @@ -20,6 +20,9 @@ argocd app set APPNAME [flags] # Set and override application parameters for a source at position 1 under spec.sources of app my-app. source-position starts at 1. argocd app set my-app --source-position 1 --repo https://github.com/argoproj/argocd-example-apps.git + # Set and override application parameters for a source named "test" under spec.sources of app my-app. + argocd app set my-app --source-name test --repo https://github.com/argoproj/argocd-example-apps.git + # Set application parameters and specify the namespace argocd app set my-app --parameter key1=value1 --parameter key2=value2 --namespace my-namespace ``` @@ -79,6 +82,7 @@ argocd app set APPNAME [flags] --revision string The tracking source branch, tag, commit or Helm chart version the application will sync to --revision-history-limit int How many items to keep in revision history (default 10) --self-heal Set self healing when sync is automated + --source-name string Name of the source from the list of sources of the app. --source-position int Position of the source from the list of sources of the app. Counting starts at 1. (default -1) --sync-option Prune=false Add or remove a sync option, e.g add Prune=false. Remove using `!` prefix, e.g. `!Prune=false` --sync-policy string Set the sync policy (one of: manual (aliases of manual: none), automated (aliases of automated: auto, automatic)) diff --git a/docs/user-guide/commands/argocd_app_sync.md b/docs/user-guide/commands/argocd_app_sync.md index 8cb89b0c97483f..0a59bc82293348 100644 --- a/docs/user-guide/commands/argocd_app_sync.md +++ b/docs/user-guide/commands/argocd_app_sync.md @@ -25,7 +25,8 @@ argocd app sync [APPNAME... | -l selector | --project project-name] [flags] argocd app sync -l 'app.kubernetes.io/instance notin (my-app,other-app)' # Sync a multi-source application for specific revision of specific sources - argocd app manifests my-app --revisions 0.0.1 --source-positions 1 --revisions 0.0.2 --source-positions 2 + argocd app sync my-app --revisions 0.0.1 --source-positions 1 --revisions 0.0.2 --source-positions 2 + argocd app sync my-app --revisions 0.0.1 --source-names my-chart --revisions 0.0.2 --source-names my-values # Sync a specific resource # Resource should be formatted as GROUP:KIND:NAME. If no GROUP is specified then :KIND:NAME @@ -67,6 +68,7 @@ argocd app sync [APPNAME... | -l selector | --project project-name] [flags] --revisions stringArray Show manifests at specific revisions for source position in source-positions -l, --selector string Sync apps that match this label. Supports '=', '==', '!=', in, notin, exists & not exists. Matching apps must satisfy all of the specified label constraints. --server-side Use server-side apply while syncing the application + --source-names stringArray List of source names. Default is an empty array. --source-positions int64Slice List of source positions. Default is empty array. Counting start at 1. (default []) --strategy string Sync strategy (one of: apply|hook) --timeout uint Time out after this many seconds diff --git a/docs/user-guide/commands/argocd_app_unset.md b/docs/user-guide/commands/argocd_app_unset.md index 10b4846341d40c..a4ff76356539cc 100644 --- a/docs/user-guide/commands/argocd_app_unset.md +++ b/docs/user-guide/commands/argocd_app_unset.md @@ -20,6 +20,9 @@ argocd app unset APPNAME parameters [flags] # Unset kustomize override suffix for source at position 1 under spec.sources of app my-app. source-position starts at 1. argocd app unset my-app --source-position 1 --namesuffix + # Unset kustomize override suffix for source named "test" under spec.sources of app my-app. + argocd app unset my-app --source-name test --namesuffix + # Unset parameter override argocd app unset my-app -p COMPONENT=PARAM ``` diff --git a/manifests/core-install.yaml b/manifests/core-install.yaml index c5714d95fc1ebc..5566652a5f3d7e 100644 --- a/manifests/core-install.yaml +++ b/manifests/core-install.yaml @@ -460,6 +460,10 @@ spec: to use for rendering manifests type: string type: object + name: + description: Name is used to refer to a source and is displayed + in the UI. It is used in multi-source Applications. + type: string path: description: Path is a directory path within the Git repository, and is only valid for applications sourced from Git. @@ -832,6 +836,10 @@ spec: to use for rendering manifests type: string type: object + name: + description: Name is used to refer to a source and is displayed + in the UI. It is used in multi-source Applications. + type: string path: description: Path is a directory path within the Git repository, and is only valid for applications sourced from Git. @@ -1314,6 +1322,10 @@ spec: use for rendering manifests type: string type: object + name: + description: Name is used to refer to a source and is displayed + in the UI. It is used in multi-source Applications. + type: string path: description: Path is a directory path within the Git repository, and is only valid for applications sourced from Git. @@ -1676,6 +1688,10 @@ spec: to use for rendering manifests type: string type: object + name: + description: Name is used to refer to a source and is displayed + in the UI. It is used in multi-source Applications. + type: string path: description: Path is a directory path within the Git repository, and is only valid for applications sourced from Git. @@ -2204,6 +2220,10 @@ spec: to use for rendering manifests type: string type: object + name: + description: Name is used to refer to a source and is displayed + in the UI. It is used in multi-source Applications. + type: string path: description: Path is a directory path within the Git repository, and is only valid for applications sourced from Git. @@ -2579,6 +2599,10 @@ spec: to use for rendering manifests type: string type: object + name: + description: Name is used to refer to a source and is + displayed in the UI. It is used in multi-source Applications. + type: string path: description: Path is a directory path within the Git repository, and is only valid for applications sourced from Git. @@ -3103,6 +3127,11 @@ spec: Kustomize to use for rendering manifests type: string type: object + name: + description: Name is used to refer to a source and + is displayed in the UI. It is used in multi-source + Applications. + type: string path: description: Path is a directory path within the Git repository, and is only valid for applications sourced @@ -3497,6 +3526,11 @@ spec: of Kustomize to use for rendering manifests type: string type: object + name: + description: Name is used to refer to a source and + is displayed in the UI. It is used in multi-source + Applications. + type: string path: description: Path is a directory path within the Git repository, and is only valid for applications @@ -4001,6 +4035,10 @@ spec: to use for rendering manifests type: string type: object + name: + description: Name is used to refer to a source and is + displayed in the UI. It is used in multi-source Applications. + type: string path: description: Path is a directory path within the Git repository, and is only valid for applications sourced from Git. @@ -4387,6 +4425,10 @@ spec: to use for rendering manifests type: string type: object + name: + description: Name is used to refer to a source and is + displayed in the UI. It is used in multi-source Applications. + type: string path: description: Path is a directory path within the Git repository, and is only valid for applications sourced @@ -4917,6 +4959,10 @@ spec: to use for rendering manifests type: string type: object + name: + description: Name is used to refer to a source and is + displayed in the UI. It is used in multi-source Applications. + type: string path: description: Path is a directory path within the Git repository, and is only valid for applications sourced from Git. @@ -5303,6 +5349,10 @@ spec: to use for rendering manifests type: string type: object + name: + description: Name is used to refer to a source and is + displayed in the UI. It is used in multi-source Applications. + type: string path: description: Path is a directory path within the Git repository, and is only valid for applications sourced @@ -5739,6 +5789,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -5971,6 +6023,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -6367,6 +6421,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -6599,6 +6655,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -6994,6 +7052,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -7226,6 +7286,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -7601,6 +7663,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -7833,6 +7897,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -8233,6 +8299,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -8465,6 +8533,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -8861,6 +8931,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -9093,6 +9165,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -9488,6 +9562,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -9720,6 +9796,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -10095,6 +10173,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -10327,6 +10407,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -10710,6 +10792,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -10942,6 +11026,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -11544,6 +11630,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -11776,6 +11864,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -12373,6 +12463,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -12605,6 +12697,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -12997,6 +13091,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -13229,6 +13325,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -13631,6 +13729,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -13863,6 +13963,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -14259,6 +14361,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -14491,6 +14595,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -14886,6 +14992,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -15118,6 +15226,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -15493,6 +15603,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -15725,6 +15837,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -16108,6 +16222,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -16340,6 +16456,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -16942,6 +17060,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -17174,6 +17294,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -17771,6 +17893,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -18003,6 +18127,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -18399,6 +18525,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -18631,6 +18759,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -19013,6 +19143,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -19245,6 +19377,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -19847,6 +19981,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -20079,6 +20215,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -20676,6 +20814,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -20908,6 +21048,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -21375,6 +21517,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -21607,6 +21751,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: diff --git a/manifests/crds/application-crd.yaml b/manifests/crds/application-crd.yaml index 1f08621786eebe..fa052fa83ca7ac 100644 --- a/manifests/crds/application-crd.yaml +++ b/manifests/crds/application-crd.yaml @@ -459,6 +459,10 @@ spec: to use for rendering manifests type: string type: object + name: + description: Name is used to refer to a source and is displayed + in the UI. It is used in multi-source Applications. + type: string path: description: Path is a directory path within the Git repository, and is only valid for applications sourced from Git. @@ -831,6 +835,10 @@ spec: to use for rendering manifests type: string type: object + name: + description: Name is used to refer to a source and is displayed + in the UI. It is used in multi-source Applications. + type: string path: description: Path is a directory path within the Git repository, and is only valid for applications sourced from Git. @@ -1313,6 +1321,10 @@ spec: use for rendering manifests type: string type: object + name: + description: Name is used to refer to a source and is displayed + in the UI. It is used in multi-source Applications. + type: string path: description: Path is a directory path within the Git repository, and is only valid for applications sourced from Git. @@ -1675,6 +1687,10 @@ spec: to use for rendering manifests type: string type: object + name: + description: Name is used to refer to a source and is displayed + in the UI. It is used in multi-source Applications. + type: string path: description: Path is a directory path within the Git repository, and is only valid for applications sourced from Git. @@ -2203,6 +2219,10 @@ spec: to use for rendering manifests type: string type: object + name: + description: Name is used to refer to a source and is displayed + in the UI. It is used in multi-source Applications. + type: string path: description: Path is a directory path within the Git repository, and is only valid for applications sourced from Git. @@ -2578,6 +2598,10 @@ spec: to use for rendering manifests type: string type: object + name: + description: Name is used to refer to a source and is + displayed in the UI. It is used in multi-source Applications. + type: string path: description: Path is a directory path within the Git repository, and is only valid for applications sourced from Git. @@ -3102,6 +3126,11 @@ spec: Kustomize to use for rendering manifests type: string type: object + name: + description: Name is used to refer to a source and + is displayed in the UI. It is used in multi-source + Applications. + type: string path: description: Path is a directory path within the Git repository, and is only valid for applications sourced @@ -3496,6 +3525,11 @@ spec: of Kustomize to use for rendering manifests type: string type: object + name: + description: Name is used to refer to a source and + is displayed in the UI. It is used in multi-source + Applications. + type: string path: description: Path is a directory path within the Git repository, and is only valid for applications @@ -4000,6 +4034,10 @@ spec: to use for rendering manifests type: string type: object + name: + description: Name is used to refer to a source and is + displayed in the UI. It is used in multi-source Applications. + type: string path: description: Path is a directory path within the Git repository, and is only valid for applications sourced from Git. @@ -4386,6 +4424,10 @@ spec: to use for rendering manifests type: string type: object + name: + description: Name is used to refer to a source and is + displayed in the UI. It is used in multi-source Applications. + type: string path: description: Path is a directory path within the Git repository, and is only valid for applications sourced @@ -4916,6 +4958,10 @@ spec: to use for rendering manifests type: string type: object + name: + description: Name is used to refer to a source and is + displayed in the UI. It is used in multi-source Applications. + type: string path: description: Path is a directory path within the Git repository, and is only valid for applications sourced from Git. @@ -5302,6 +5348,10 @@ spec: to use for rendering manifests type: string type: object + name: + description: Name is used to refer to a source and is + displayed in the UI. It is used in multi-source Applications. + type: string path: description: Path is a directory path within the Git repository, and is only valid for applications sourced diff --git a/manifests/crds/applicationset-crd.yaml b/manifests/crds/applicationset-crd.yaml index b9a8c84e0620df..46f12a9f6a7354 100644 --- a/manifests/crds/applicationset-crd.yaml +++ b/manifests/crds/applicationset-crd.yaml @@ -331,6 +331,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -563,6 +565,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -959,6 +963,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -1191,6 +1197,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -1586,6 +1594,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -1818,6 +1828,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -2193,6 +2205,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -2425,6 +2439,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -2825,6 +2841,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -3057,6 +3075,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -3453,6 +3473,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -3685,6 +3707,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -4080,6 +4104,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -4312,6 +4338,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -4687,6 +4715,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -4919,6 +4949,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -5302,6 +5334,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -5534,6 +5568,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -6136,6 +6172,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -6368,6 +6406,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -6965,6 +7005,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -7197,6 +7239,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -7589,6 +7633,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -7821,6 +7867,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -8223,6 +8271,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -8455,6 +8505,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -8851,6 +8903,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -9083,6 +9137,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -9478,6 +9534,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -9710,6 +9768,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -10085,6 +10145,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -10317,6 +10379,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -10700,6 +10764,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -10932,6 +10998,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -11534,6 +11602,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -11766,6 +11836,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -12363,6 +12435,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -12595,6 +12669,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -12991,6 +13067,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -13223,6 +13301,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -13605,6 +13685,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -13837,6 +13919,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -14439,6 +14523,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -14671,6 +14757,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -15268,6 +15356,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -15500,6 +15590,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -15967,6 +16059,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -16199,6 +16293,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: diff --git a/manifests/ha/install.yaml b/manifests/ha/install.yaml index aa71c208ed4cc1..27c6dad079abfc 100644 --- a/manifests/ha/install.yaml +++ b/manifests/ha/install.yaml @@ -460,6 +460,10 @@ spec: to use for rendering manifests type: string type: object + name: + description: Name is used to refer to a source and is displayed + in the UI. It is used in multi-source Applications. + type: string path: description: Path is a directory path within the Git repository, and is only valid for applications sourced from Git. @@ -832,6 +836,10 @@ spec: to use for rendering manifests type: string type: object + name: + description: Name is used to refer to a source and is displayed + in the UI. It is used in multi-source Applications. + type: string path: description: Path is a directory path within the Git repository, and is only valid for applications sourced from Git. @@ -1314,6 +1322,10 @@ spec: use for rendering manifests type: string type: object + name: + description: Name is used to refer to a source and is displayed + in the UI. It is used in multi-source Applications. + type: string path: description: Path is a directory path within the Git repository, and is only valid for applications sourced from Git. @@ -1676,6 +1688,10 @@ spec: to use for rendering manifests type: string type: object + name: + description: Name is used to refer to a source and is displayed + in the UI. It is used in multi-source Applications. + type: string path: description: Path is a directory path within the Git repository, and is only valid for applications sourced from Git. @@ -2204,6 +2220,10 @@ spec: to use for rendering manifests type: string type: object + name: + description: Name is used to refer to a source and is displayed + in the UI. It is used in multi-source Applications. + type: string path: description: Path is a directory path within the Git repository, and is only valid for applications sourced from Git. @@ -2579,6 +2599,10 @@ spec: to use for rendering manifests type: string type: object + name: + description: Name is used to refer to a source and is + displayed in the UI. It is used in multi-source Applications. + type: string path: description: Path is a directory path within the Git repository, and is only valid for applications sourced from Git. @@ -3103,6 +3127,11 @@ spec: Kustomize to use for rendering manifests type: string type: object + name: + description: Name is used to refer to a source and + is displayed in the UI. It is used in multi-source + Applications. + type: string path: description: Path is a directory path within the Git repository, and is only valid for applications sourced @@ -3497,6 +3526,11 @@ spec: of Kustomize to use for rendering manifests type: string type: object + name: + description: Name is used to refer to a source and + is displayed in the UI. It is used in multi-source + Applications. + type: string path: description: Path is a directory path within the Git repository, and is only valid for applications @@ -4001,6 +4035,10 @@ spec: to use for rendering manifests type: string type: object + name: + description: Name is used to refer to a source and is + displayed in the UI. It is used in multi-source Applications. + type: string path: description: Path is a directory path within the Git repository, and is only valid for applications sourced from Git. @@ -4387,6 +4425,10 @@ spec: to use for rendering manifests type: string type: object + name: + description: Name is used to refer to a source and is + displayed in the UI. It is used in multi-source Applications. + type: string path: description: Path is a directory path within the Git repository, and is only valid for applications sourced @@ -4917,6 +4959,10 @@ spec: to use for rendering manifests type: string type: object + name: + description: Name is used to refer to a source and is + displayed in the UI. It is used in multi-source Applications. + type: string path: description: Path is a directory path within the Git repository, and is only valid for applications sourced from Git. @@ -5303,6 +5349,10 @@ spec: to use for rendering manifests type: string type: object + name: + description: Name is used to refer to a source and is + displayed in the UI. It is used in multi-source Applications. + type: string path: description: Path is a directory path within the Git repository, and is only valid for applications sourced @@ -5739,6 +5789,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -5971,6 +6023,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -6367,6 +6421,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -6599,6 +6655,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -6994,6 +7052,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -7226,6 +7286,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -7601,6 +7663,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -7833,6 +7897,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -8233,6 +8299,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -8465,6 +8533,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -8861,6 +8931,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -9093,6 +9165,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -9488,6 +9562,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -9720,6 +9796,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -10095,6 +10173,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -10327,6 +10407,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -10710,6 +10792,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -10942,6 +11026,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -11544,6 +11630,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -11776,6 +11864,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -12373,6 +12463,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -12605,6 +12697,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -12997,6 +13091,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -13229,6 +13325,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -13631,6 +13729,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -13863,6 +13963,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -14259,6 +14361,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -14491,6 +14595,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -14886,6 +14992,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -15118,6 +15226,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -15493,6 +15603,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -15725,6 +15837,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -16108,6 +16222,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -16340,6 +16456,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -16942,6 +17060,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -17174,6 +17294,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -17771,6 +17893,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -18003,6 +18127,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -18399,6 +18525,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -18631,6 +18759,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -19013,6 +19143,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -19245,6 +19377,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -19847,6 +19981,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -20079,6 +20215,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -20676,6 +20814,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -20908,6 +21048,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -21375,6 +21517,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -21607,6 +21751,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: diff --git a/manifests/install.yaml b/manifests/install.yaml index 70db9f4a37e9f5..cb0091139af2c0 100644 --- a/manifests/install.yaml +++ b/manifests/install.yaml @@ -460,6 +460,10 @@ spec: to use for rendering manifests type: string type: object + name: + description: Name is used to refer to a source and is displayed + in the UI. It is used in multi-source Applications. + type: string path: description: Path is a directory path within the Git repository, and is only valid for applications sourced from Git. @@ -832,6 +836,10 @@ spec: to use for rendering manifests type: string type: object + name: + description: Name is used to refer to a source and is displayed + in the UI. It is used in multi-source Applications. + type: string path: description: Path is a directory path within the Git repository, and is only valid for applications sourced from Git. @@ -1314,6 +1322,10 @@ spec: use for rendering manifests type: string type: object + name: + description: Name is used to refer to a source and is displayed + in the UI. It is used in multi-source Applications. + type: string path: description: Path is a directory path within the Git repository, and is only valid for applications sourced from Git. @@ -1676,6 +1688,10 @@ spec: to use for rendering manifests type: string type: object + name: + description: Name is used to refer to a source and is displayed + in the UI. It is used in multi-source Applications. + type: string path: description: Path is a directory path within the Git repository, and is only valid for applications sourced from Git. @@ -2204,6 +2220,10 @@ spec: to use for rendering manifests type: string type: object + name: + description: Name is used to refer to a source and is displayed + in the UI. It is used in multi-source Applications. + type: string path: description: Path is a directory path within the Git repository, and is only valid for applications sourced from Git. @@ -2579,6 +2599,10 @@ spec: to use for rendering manifests type: string type: object + name: + description: Name is used to refer to a source and is + displayed in the UI. It is used in multi-source Applications. + type: string path: description: Path is a directory path within the Git repository, and is only valid for applications sourced from Git. @@ -3103,6 +3127,11 @@ spec: Kustomize to use for rendering manifests type: string type: object + name: + description: Name is used to refer to a source and + is displayed in the UI. It is used in multi-source + Applications. + type: string path: description: Path is a directory path within the Git repository, and is only valid for applications sourced @@ -3497,6 +3526,11 @@ spec: of Kustomize to use for rendering manifests type: string type: object + name: + description: Name is used to refer to a source and + is displayed in the UI. It is used in multi-source + Applications. + type: string path: description: Path is a directory path within the Git repository, and is only valid for applications @@ -4001,6 +4035,10 @@ spec: to use for rendering manifests type: string type: object + name: + description: Name is used to refer to a source and is + displayed in the UI. It is used in multi-source Applications. + type: string path: description: Path is a directory path within the Git repository, and is only valid for applications sourced from Git. @@ -4387,6 +4425,10 @@ spec: to use for rendering manifests type: string type: object + name: + description: Name is used to refer to a source and is + displayed in the UI. It is used in multi-source Applications. + type: string path: description: Path is a directory path within the Git repository, and is only valid for applications sourced @@ -4917,6 +4959,10 @@ spec: to use for rendering manifests type: string type: object + name: + description: Name is used to refer to a source and is + displayed in the UI. It is used in multi-source Applications. + type: string path: description: Path is a directory path within the Git repository, and is only valid for applications sourced from Git. @@ -5303,6 +5349,10 @@ spec: to use for rendering manifests type: string type: object + name: + description: Name is used to refer to a source and is + displayed in the UI. It is used in multi-source Applications. + type: string path: description: Path is a directory path within the Git repository, and is only valid for applications sourced @@ -5739,6 +5789,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -5971,6 +6023,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -6367,6 +6421,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -6599,6 +6655,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -6994,6 +7052,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -7226,6 +7286,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -7601,6 +7663,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -7833,6 +7897,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -8233,6 +8299,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -8465,6 +8533,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -8861,6 +8931,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -9093,6 +9165,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -9488,6 +9562,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -9720,6 +9796,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -10095,6 +10173,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -10327,6 +10407,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -10710,6 +10792,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -10942,6 +11026,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -11544,6 +11630,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -11776,6 +11864,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -12373,6 +12463,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -12605,6 +12697,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -12997,6 +13091,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -13229,6 +13325,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -13631,6 +13729,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -13863,6 +13963,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -14259,6 +14361,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -14491,6 +14595,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -14886,6 +14992,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -15118,6 +15226,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -15493,6 +15603,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -15725,6 +15837,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -16108,6 +16222,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -16340,6 +16456,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -16942,6 +17060,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -17174,6 +17294,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -17771,6 +17893,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -18003,6 +18127,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -18399,6 +18525,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -18631,6 +18759,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -19013,6 +19143,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -19245,6 +19377,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -19847,6 +19981,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -20079,6 +20215,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -20676,6 +20814,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -20908,6 +21048,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -21375,6 +21517,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -21607,6 +21751,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: diff --git a/pkg/apis/application/v1alpha1/generated.pb.go b/pkg/apis/application/v1alpha1/generated.pb.go index 3f31bf6dacd21d..929dcb1e0c6c82 100644 --- a/pkg/apis/application/v1alpha1/generated.pb.go +++ b/pkg/apis/application/v1alpha1/generated.pb.go @@ -4593,7 +4593,7 @@ func init() { } var fileDescriptor_030104ce3b95bcac = []byte{ - // 11491 bytes of a gzipped FileDescriptorProto + // 11498 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0xbd, 0x6f, 0x70, 0x1c, 0xc9, 0x75, 0x18, 0xae, 0xd9, 0xc5, 0x02, 0xbb, 0x0f, 0xff, 0x88, 0x26, 0x79, 0x87, 0xa3, 0x78, 0x07, 0x7a, 0x4e, 0x3e, 0x9d, 0x7f, 0xba, 0x03, 0x7c, 0xf4, 0x9d, 0x7c, 0x3f, 0x9d, 0x25, 0x19, 0x7f, @@ -4770,549 +4770,549 @@ var fileDescriptor_030104ce3b95bcac = []byte{ 0x32, 0xcf, 0x26, 0x84, 0xd3, 0x66, 0xe0, 0x1e, 0x39, 0x6d, 0x52, 0x6e, 0xa8, 0x6a, 0xe1, 0x6e, 0x28, 0xfb, 0x53, 0x1d, 0x9e, 0xfb, 0xb5, 0x88, 0x10, 0x14, 0x42, 0x25, 0x08, 0xeb, 0x44, 0xda, 0xb8, 0x97, 0x8b, 0x31, 0xd8, 0xae, 0x86, 0x75, 0x23, 0x5c, 0x9c, 0xfe, 0x8b, 0x31, 0xe7, 0x63, - 0xdf, 0xae, 0x40, 0xca, 0x9c, 0xe4, 0xdf, 0xfd, 0xc7, 0x60, 0x20, 0x22, 0xad, 0xf0, 0x1a, 0x5e, - 0x14, 0xba, 0x4c, 0x67, 0x94, 0xf0, 0x66, 0x2c, 0xe1, 0x54, 0xe7, 0xb5, 0x9c, 0x64, 0x53, 0x28, - 0x33, 0xa5, 0xf3, 0x56, 0x9c, 0x64, 0x13, 0x33, 0x08, 0x7a, 0x0f, 0x8c, 0x24, 0xa9, 0xa3, 0x70, - 0x71, 0xe4, 0xfb, 0x90, 0xc0, 0x1d, 0x49, 0x1f, 0x94, 0xe3, 0x0c, 0x36, 0x7a, 0x15, 0xfa, 0x36, - 0x89, 0xdf, 0x14, 0x9f, 0x7e, 0xb5, 0x38, 0x5d, 0xc3, 0xde, 0xf5, 0x12, 0xf1, 0x9b, 0x5c, 0x12, - 0xd2, 0x5f, 0x98, 0xb1, 0xa2, 0xf3, 0xbe, 0xb6, 0xd5, 0x8e, 0x93, 0xb0, 0xe9, 0xbd, 0x26, 0x3d, - 0x9d, 0xef, 0x2b, 0x98, 0xf1, 0x15, 0x49, 0x9f, 0xbb, 0x94, 0xd4, 0x5f, 0xac, 0x39, 0xb3, 0x7e, - 0xd4, 0xbd, 0x88, 0x4d, 0x99, 0x5d, 0xe1, 0xb0, 0x2c, 0xba, 0x1f, 0x73, 0x92, 0x3e, 0xef, 0x87, - 0xfa, 0x8b, 0x35, 0x67, 0xb4, 0xab, 0xd6, 0xdf, 0x20, 0xeb, 0xc3, 0xb5, 0x82, 0xfb, 0xc0, 0xd7, - 0x5e, 0xee, 0x3a, 0x7c, 0x1c, 0x2a, 0xee, 0xa6, 0x13, 0x25, 0xe3, 0x43, 0x6c, 0xd2, 0xa8, 0x59, - 0x3c, 0x4b, 0x1b, 0x31, 0x87, 0xa1, 0x47, 0xa1, 0x1c, 0x91, 0x0d, 0x16, 0x9d, 0x6c, 0xc4, 0x45, - 0x61, 0xb2, 0x81, 0x69, 0xbb, 0xfd, 0xab, 0xa5, 0xb4, 0xd9, 0x96, 0x7e, 0x6f, 0x3e, 0xdb, 0xdd, - 0x76, 0x14, 0x4b, 0xf7, 0x97, 0x31, 0xdb, 0x59, 0x33, 0x96, 0x70, 0xf4, 0x71, 0x0b, 0x06, 0x6e, - 0xc6, 0x61, 0x10, 0x90, 0x44, 0xa8, 0xc8, 0xeb, 0x05, 0x0f, 0xc5, 0x65, 0x4e, 0x5d, 0xf7, 0x41, - 0x34, 0x60, 0xc9, 0x97, 0x76, 0x97, 0xec, 0xb8, 0x7e, 0xbb, 0xde, 0x11, 0xea, 0x72, 0x81, 0x37, - 0x63, 0x09, 0xa7, 0xa8, 0x5e, 0xc0, 0x51, 0xfb, 0xd2, 0xa8, 0x0b, 0x81, 0x40, 0x15, 0x70, 0xfb, - 0xfb, 0x03, 0x70, 0x3a, 0x77, 0x71, 0x50, 0x83, 0x8a, 0x99, 0x2c, 0x17, 0x3d, 0x9f, 0xc8, 0x20, - 0x2f, 0x66, 0x50, 0x5d, 0x57, 0xad, 0xd8, 0xc0, 0x40, 0x3f, 0x07, 0xd0, 0x72, 0x22, 0xa7, 0x49, - 0x94, 0x7b, 0xfa, 0xc8, 0x76, 0x0b, 0xed, 0xc7, 0x8a, 0xa4, 0xa9, 0xb7, 0xe8, 0xaa, 0x29, 0xc6, - 0x06, 0x4b, 0xf4, 0x1c, 0x0c, 0x46, 0xc4, 0x27, 0x4e, 0xcc, 0x82, 0xdb, 0xb3, 0x99, 0x3a, 0x58, - 0x83, 0xb0, 0x89, 0x87, 0x9e, 0x50, 0xf1, 0x70, 0x99, 0xb8, 0xa0, 0x74, 0x4c, 0x1c, 0x7a, 0xdd, - 0x82, 0x91, 0x0d, 0xcf, 0x27, 0x9a, 0xbb, 0xc8, 0xab, 0x59, 0x3e, 0xfa, 0x4b, 0x5e, 0x34, 0xe9, - 0x6a, 0x09, 0x99, 0x6a, 0x8e, 0x71, 0x86, 0x3d, 0xfd, 0xcc, 0xdb, 0x24, 0x62, 0xa2, 0xb5, 0x3f, - 0xfd, 0x99, 0xaf, 0xf3, 0x66, 0x2c, 0xe1, 0x68, 0x1a, 0x46, 0x5b, 0x4e, 0x1c, 0xcf, 0x46, 0xa4, - 0x4e, 0x82, 0xc4, 0x73, 0x7c, 0x9e, 0xf5, 0x52, 0xd5, 0xc1, 0xe2, 0x2b, 0x69, 0x30, 0xce, 0xe2, - 0xa3, 0xf7, 0xc3, 0xc3, 0xdc, 0xff, 0xb3, 0xe4, 0xc5, 0xb1, 0x17, 0x34, 0xf4, 0x34, 0x10, 0x6e, - 0xb0, 0x09, 0x41, 0xea, 0xe1, 0x85, 0x7c, 0x34, 0xdc, 0xed, 0x79, 0xf4, 0x14, 0x54, 0xe3, 0x2d, - 0xaf, 0x35, 0x1b, 0xd5, 0x63, 0x76, 0xf6, 0x53, 0xd5, 0x4e, 0xd7, 0x55, 0xd1, 0x8e, 0x15, 0x06, - 0x72, 0x61, 0x88, 0x7f, 0x12, 0x1e, 0xd0, 0x27, 0xe4, 0xe3, 0xd3, 0x5d, 0xd5, 0xb4, 0x48, 0xe2, - 0x9c, 0xc4, 0xce, 0xad, 0x0b, 0xf2, 0x24, 0x8a, 0x1f, 0x9c, 0x5c, 0x37, 0xc8, 0xe0, 0x14, 0xd1, - 0xf4, 0x8e, 0x6d, 0xb0, 0x87, 0x1d, 0xdb, 0x73, 0x30, 0xb8, 0xd5, 0x5e, 0x27, 0x62, 0xe4, 0x85, - 0xd8, 0x52, 0xb3, 0xef, 0x8a, 0x06, 0x61, 0x13, 0x8f, 0xc5, 0x52, 0xb6, 0x3c, 0xf1, 0x2f, 0x1e, - 0x1f, 0x36, 0x62, 0x29, 0x57, 0x16, 0x64, 0x33, 0x36, 0x71, 0x68, 0xd7, 0xe8, 0x58, 0xac, 0x91, - 0x98, 0xa5, 0x4a, 0xd0, 0xe1, 0x52, 0x5d, 0x5b, 0x95, 0x00, 0xac, 0x71, 0xec, 0x5f, 0x2e, 0xa5, - 0xbd, 0x18, 0xa6, 0xc0, 0x41, 0x31, 0x15, 0x2b, 0xc9, 0x75, 0x27, 0x92, 0xc6, 0xc7, 0x11, 0x13, - 0x8d, 0x04, 0xdd, 0xeb, 0x4e, 0x64, 0x0a, 0x28, 0xc6, 0x00, 0x4b, 0x4e, 0xe8, 0x26, 0xf4, 0x25, - 0xbe, 0x53, 0x50, 0x66, 0xa2, 0xc1, 0x51, 0x3b, 0x95, 0x16, 0xa7, 0x63, 0xcc, 0x78, 0xa0, 0xb3, - 0x74, 0x27, 0xb5, 0x2e, 0x4f, 0xbd, 0xc4, 0xe6, 0x67, 0x3d, 0xc6, 0xac, 0xd5, 0xfe, 0xb3, 0xc1, - 0x1c, 0x1d, 0xa1, 0x94, 0x32, 0x3a, 0x0f, 0x40, 0x3f, 0xf1, 0x4a, 0x44, 0x36, 0xbc, 0x1d, 0x61, - 0x14, 0x29, 0x39, 0x74, 0x55, 0x41, 0xb0, 0x81, 0x25, 0x9f, 0x59, 0x6d, 0x6f, 0xd0, 0x67, 0x4a, - 0x9d, 0xcf, 0x70, 0x08, 0x36, 0xb0, 0xd0, 0xb3, 0xd0, 0xef, 0x35, 0x9d, 0x86, 0x0a, 0xca, 0x3d, - 0x4b, 0x05, 0xd0, 0x02, 0x6b, 0xb9, 0xb3, 0x37, 0x31, 0xa2, 0x3a, 0xc4, 0x9a, 0xb0, 0xc0, 0x45, - 0xbf, 0x6e, 0xc1, 0x90, 0x1b, 0x36, 0x9b, 0x61, 0xc0, 0xb7, 0xb2, 0x62, 0x5f, 0x7e, 0xf3, 0xb8, - 0x4c, 0x96, 0xc9, 0x59, 0x83, 0x19, 0xdf, 0x98, 0xab, 0x14, 0x4a, 0x13, 0x84, 0x53, 0xbd, 0x32, - 0xe5, 0x54, 0xe5, 0x00, 0x39, 0xf5, 0x1b, 0x16, 0x8c, 0xf1, 0x67, 0x8d, 0x1d, 0xb6, 0xc8, 0x16, - 0x0c, 0x8f, 0xf9, 0xb5, 0x3a, 0x9c, 0x0e, 0xca, 0xf1, 0xda, 0x01, 0xc7, 0x9d, 0x9d, 0x44, 0xf3, - 0x30, 0xb6, 0x11, 0x46, 0x2e, 0x31, 0x07, 0x42, 0x08, 0x59, 0x45, 0xe8, 0x62, 0x16, 0x01, 0x77, - 0x3e, 0x83, 0xae, 0xc3, 0x43, 0x46, 0xa3, 0x39, 0x0e, 0x5c, 0xce, 0x3e, 0x26, 0xa8, 0x3d, 0x74, - 0x31, 0x17, 0x0b, 0x77, 0x79, 0x3a, 0x2d, 0xd2, 0x6a, 0x3d, 0x88, 0xb4, 0x57, 0xe0, 0x11, 0xb7, - 0x73, 0x64, 0xb6, 0xe3, 0xf6, 0x7a, 0xcc, 0xa5, 0x6e, 0x75, 0xe6, 0x47, 0x04, 0x81, 0x47, 0x66, - 0xbb, 0x21, 0xe2, 0xee, 0x34, 0xd0, 0x87, 0xa1, 0x1a, 0x11, 0xf6, 0x55, 0x62, 0x91, 0x3a, 0x77, - 0x44, 0xcf, 0x83, 0xb6, 0xa6, 0x39, 0x59, 0xad, 0x47, 0x44, 0x43, 0x8c, 0x15, 0x47, 0x74, 0x0b, - 0x06, 0x5a, 0x4e, 0xe2, 0x6e, 0x8a, 0x84, 0xb9, 0x23, 0xfb, 0xc9, 0x15, 0x73, 0x76, 0xac, 0x61, - 0xa4, 0xd8, 0x73, 0x26, 0x58, 0x72, 0xa3, 0x96, 0x95, 0x1b, 0x36, 0x5b, 0x61, 0x40, 0x82, 0x44, - 0x8a, 0xfc, 0x11, 0x7e, 0xf6, 0x20, 0x5b, 0xb1, 0x81, 0x81, 0x56, 0xe0, 0x14, 0xf3, 0xc3, 0xdd, - 0xf0, 0x92, 0xcd, 0xb0, 0x9d, 0xc8, 0x6d, 0xa5, 0x90, 0xfd, 0xea, 0xf4, 0x69, 0x31, 0x07, 0x07, - 0xe7, 0x3e, 0x99, 0x55, 0x56, 0xa3, 0x77, 0xa7, 0xac, 0x4e, 0x1c, 0xac, 0xac, 0xce, 0xbc, 0x17, - 0xc6, 0x3a, 0x84, 0xc6, 0xa1, 0x9c, 0x6d, 0x73, 0xf0, 0x50, 0xfe, 0xf2, 0x3c, 0x94, 0xcb, 0xed, - 0x9f, 0x67, 0x62, 0xae, 0x8d, 0xed, 0x47, 0x0f, 0xee, 0x5b, 0x07, 0xca, 0x24, 0xd8, 0x16, 0xda, - 0xea, 0xe2, 0xd1, 0x66, 0xc9, 0x85, 0x60, 0x9b, 0x4b, 0x17, 0xe6, 0xa3, 0xba, 0x10, 0x6c, 0x63, - 0x4a, 0x1b, 0x7d, 0xd1, 0x4a, 0x99, 0xcf, 0xdc, 0xe9, 0xfb, 0xc1, 0x63, 0xd9, 0x6f, 0xf5, 0x6c, - 0x51, 0xdb, 0xff, 0xbe, 0x04, 0xe7, 0x0e, 0x22, 0xd2, 0xc3, 0xf0, 0x3d, 0x0e, 0xfd, 0x31, 0x8b, - 0xa2, 0x10, 0xe2, 0x7f, 0x90, 0xae, 0x0a, 0x1e, 0x57, 0xf1, 0x0a, 0x16, 0x20, 0xe4, 0x43, 0xb9, - 0xe9, 0xb4, 0x84, 0x2f, 0x70, 0xe1, 0xa8, 0xb9, 0x69, 0xf4, 0xbf, 0xe3, 0x2f, 0x39, 0x2d, 0x3e, - 0x3d, 0x8d, 0x06, 0x4c, 0xd9, 0xa0, 0x04, 0x2a, 0x4e, 0x14, 0x39, 0xf2, 0xc8, 0xfe, 0x4a, 0x31, - 0xfc, 0xa6, 0x29, 0x49, 0x7e, 0xe2, 0x99, 0x6a, 0xc2, 0x9c, 0x99, 0xfd, 0xd9, 0x81, 0x54, 0x22, - 0x13, 0x8b, 0xc3, 0x88, 0xa1, 0x5f, 0xb8, 0x00, 0xad, 0xa2, 0x53, 0x02, 0x79, 0xa6, 0x30, 0xdb, - 0x5d, 0x8b, 0x7a, 0x0b, 0x82, 0x15, 0xfa, 0x8c, 0xc5, 0xaa, 0x1a, 0xc8, 0xec, 0x30, 0xb1, 0xa7, - 0x3d, 0x9e, 0x22, 0x0b, 0x66, 0xad, 0x04, 0xd9, 0x88, 0x4d, 0xee, 0xa2, 0x3a, 0x09, 0xb3, 0xe5, - 0x3b, 0xab, 0x93, 0x30, 0xdb, 0x5c, 0xc2, 0xd1, 0x4e, 0x4e, 0xbc, 0x45, 0x01, 0x99, 0xf1, 0x3d, - 0x44, 0x58, 0x7c, 0xd5, 0x82, 0x31, 0x2f, 0x7b, 0x70, 0x2e, 0x76, 0x80, 0x37, 0x8a, 0xf1, 0xd7, - 0x75, 0x9e, 0xcb, 0x2b, 0xc3, 0xa1, 0x03, 0x84, 0x3b, 0x3b, 0x83, 0xea, 0xd0, 0xe7, 0x05, 0x1b, - 0xa1, 0x30, 0x97, 0x66, 0x8e, 0xd6, 0xa9, 0x85, 0x60, 0x23, 0xd4, 0xab, 0x99, 0xfe, 0xc3, 0x8c, - 0x3a, 0x5a, 0x84, 0x53, 0x32, 0x97, 0xe5, 0x92, 0x17, 0x27, 0x61, 0xb4, 0xbb, 0xe8, 0x35, 0xbd, - 0x84, 0x99, 0x3a, 0xe5, 0x99, 0x71, 0xaa, 0x89, 0x70, 0x0e, 0x1c, 0xe7, 0x3e, 0x85, 0x5e, 0x83, - 0x01, 0x79, 0x58, 0x5d, 0x2d, 0x62, 0x37, 0xdd, 0x39, 0xff, 0xd5, 0x64, 0x5a, 0x15, 0xa7, 0xd5, - 0x92, 0xa1, 0xfd, 0xfa, 0x20, 0x74, 0x9e, 0xa9, 0xa7, 0x0f, 0xd0, 0xad, 0x7b, 0x7d, 0x80, 0x4e, - 0xb7, 0x46, 0xb1, 0x3e, 0xfb, 0x2e, 0x60, 0x6e, 0x0b, 0xae, 0xfa, 0x5c, 0x73, 0x37, 0x70, 0x31, - 0xe3, 0x81, 0x22, 0xe8, 0xdf, 0x24, 0x8e, 0x9f, 0x6c, 0x16, 0x73, 0x04, 0x73, 0x89, 0xd1, 0xca, - 0x26, 0xa0, 0xf1, 0x56, 0x2c, 0x38, 0xa1, 0x1d, 0x18, 0xd8, 0xe4, 0x13, 0x40, 0xec, 0x56, 0x96, - 0x8e, 0x3a, 0xb8, 0xa9, 0x59, 0xa5, 0x3f, 0xb7, 0x68, 0xc0, 0x92, 0x1d, 0x0b, 0xd6, 0x32, 0xc2, - 0x49, 0xf8, 0xd2, 0x2d, 0x2e, 0xf7, 0xae, 0xf7, 0x58, 0x92, 0x0f, 0xc1, 0x50, 0x44, 0xdc, 0x30, - 0x70, 0x3d, 0x9f, 0xd4, 0xa7, 0xe5, 0xf1, 0xca, 0x61, 0x52, 0xae, 0x98, 0xf7, 0x02, 0x1b, 0x34, - 0x70, 0x8a, 0x22, 0xfa, 0xb4, 0x05, 0x23, 0x2a, 0x0d, 0x9b, 0x7e, 0x10, 0x22, 0xdc, 0xe8, 0x8b, - 0x05, 0x25, 0x7d, 0x33, 0x9a, 0x33, 0xe8, 0xf6, 0xde, 0xc4, 0x48, 0xba, 0x0d, 0x67, 0xf8, 0xa2, - 0x97, 0x00, 0xc2, 0x75, 0x1e, 0x91, 0x35, 0x9d, 0x08, 0x9f, 0xfa, 0x61, 0x5e, 0x75, 0x84, 0xa7, - 0x6e, 0x4a, 0x0a, 0xd8, 0xa0, 0x86, 0xae, 0x00, 0xf0, 0x65, 0xb3, 0xb6, 0xdb, 0x92, 0x5b, 0x1a, - 0x99, 0x33, 0x07, 0xab, 0x0a, 0x72, 0x67, 0x6f, 0xa2, 0xd3, 0xc7, 0xc9, 0xc2, 0x4e, 0x8c, 0xc7, - 0xd1, 0xcf, 0xc2, 0x40, 0xdc, 0x6e, 0x36, 0x1d, 0xe5, 0x71, 0x2f, 0x30, 0x19, 0x94, 0xd3, 0x35, - 0x44, 0x11, 0x6f, 0xc0, 0x92, 0x23, 0xba, 0x49, 0x85, 0x6a, 0x2c, 0x9c, 0xaf, 0x6c, 0x15, 0x71, - 0x9b, 0x80, 0x7b, 0x9e, 0xde, 0x29, 0x4d, 0x7c, 0x9c, 0x83, 0x73, 0x67, 0x6f, 0xe2, 0xa1, 0x74, - 0xfb, 0x62, 0x28, 0xd2, 0x33, 0x73, 0x69, 0xa2, 0xcb, 0xb2, 0x2a, 0x13, 0x7d, 0x6d, 0x59, 0x2c, - 0xe4, 0x49, 0x5d, 0x95, 0x89, 0x35, 0x77, 0x1f, 0x33, 0xf3, 0x61, 0xb4, 0x04, 0x27, 0xdd, 0x30, - 0x48, 0xa2, 0xd0, 0xf7, 0x79, 0x55, 0x32, 0xbe, 0xbb, 0xe4, 0x1e, 0xf9, 0xb7, 0x8a, 0x6e, 0x9f, - 0x9c, 0xed, 0x44, 0xc1, 0x79, 0xcf, 0xd9, 0x41, 0xfa, 0x74, 0x4c, 0x0c, 0xce, 0xb3, 0x30, 0x44, - 0x76, 0x12, 0x12, 0x05, 0x8e, 0x7f, 0x0d, 0x2f, 0x4a, 0x5f, 0x34, 0x5b, 0x03, 0x17, 0x8c, 0x76, - 0x9c, 0xc2, 0x42, 0xb6, 0x72, 0xa9, 0x18, 0x29, 0xc7, 0xdc, 0xa5, 0x22, 0x1d, 0x28, 0xf6, 0x37, - 0xca, 0x29, 0x83, 0xec, 0xbe, 0x9c, 0xc5, 0xb1, 0xda, 0x36, 0xb2, 0x08, 0x10, 0x03, 0x88, 0x8d, - 0x46, 0x91, 0x9c, 0x55, 0x6d, 0x9b, 0x65, 0x93, 0x11, 0x4e, 0xf3, 0x45, 0x5b, 0x50, 0xd9, 0x0c, - 0xe3, 0x44, 0x6e, 0x3f, 0x8e, 0xb8, 0xd3, 0xb9, 0x14, 0xc6, 0x09, 0xb3, 0x22, 0xd4, 0x6b, 0xd3, - 0x96, 0x18, 0x73, 0x1e, 0x74, 0x0f, 0x1a, 0x6f, 0x3a, 0x51, 0x3d, 0x9e, 0x65, 0x05, 0x02, 0xfa, - 0x98, 0xf9, 0xa0, 0x8c, 0xc5, 0x55, 0x0d, 0xc2, 0x26, 0x9e, 0xfd, 0xe7, 0x56, 0xea, 0xc0, 0xe2, - 0x06, 0x8b, 0xf6, 0xde, 0x26, 0x01, 0x95, 0x06, 0x66, 0x7c, 0xd9, 0x4f, 0x66, 0x72, 0x67, 0xdf, - 0xde, 0xad, 0x56, 0xdf, 0x2d, 0x4a, 0x61, 0x92, 0x91, 0x30, 0x42, 0xd1, 0x3e, 0x66, 0xa5, 0x93, - 0xa0, 0x4b, 0x45, 0xec, 0x4b, 0xcc, 0x42, 0x00, 0x07, 0xe6, 0x53, 0xdb, 0x5f, 0xb4, 0x60, 0x60, - 0xc6, 0x71, 0xb7, 0xc2, 0x8d, 0x0d, 0xf4, 0x14, 0x54, 0xeb, 0xed, 0xc8, 0xcc, 0xc7, 0x56, 0x9e, - 0x8d, 0x39, 0xd1, 0x8e, 0x15, 0x06, 0x9d, 0xfa, 0x1b, 0x8e, 0x2b, 0xcb, 0x01, 0x94, 0xf9, 0xd4, - 0xbf, 0xc8, 0x5a, 0xb0, 0x80, 0xd0, 0xe1, 0x6f, 0x3a, 0x3b, 0xf2, 0xe1, 0xec, 0x69, 0xc9, 0x92, - 0x06, 0x61, 0x13, 0xcf, 0xfe, 0xd7, 0x16, 0x8c, 0xcf, 0x38, 0xb1, 0xe7, 0x4e, 0xb7, 0x93, 0xcd, - 0x19, 0x2f, 0x59, 0x6f, 0xbb, 0x5b, 0x24, 0xe1, 0x65, 0x23, 0x68, 0x2f, 0xdb, 0x31, 0x5d, 0x81, - 0x6a, 0x3b, 0xa8, 0x7a, 0x79, 0x4d, 0xb4, 0x63, 0x85, 0x81, 0x5e, 0x83, 0xc1, 0x96, 0x13, 0xc7, - 0xb7, 0xc2, 0xa8, 0x8e, 0xc9, 0x46, 0x31, 0x85, 0x65, 0x56, 0x89, 0x1b, 0x91, 0x04, 0x93, 0x0d, - 0x11, 0x59, 0xa0, 0xe9, 0x63, 0x93, 0x99, 0xfd, 0x4b, 0x16, 0x9c, 0x9a, 0x21, 0x4e, 0x44, 0x22, - 0x56, 0x87, 0x46, 0xbd, 0x08, 0x7a, 0x15, 0xaa, 0x09, 0x6d, 0xa1, 0x3d, 0xb2, 0x8a, 0xed, 0x11, - 0x8b, 0x09, 0x58, 0x13, 0xc4, 0xb1, 0x62, 0x63, 0x7f, 0xde, 0x82, 0x47, 0xf2, 0xfa, 0x32, 0xeb, - 0x87, 0xed, 0xfa, 0xfd, 0xe8, 0xd0, 0xdf, 0xb1, 0x60, 0x88, 0x9d, 0xb3, 0xce, 0x91, 0xc4, 0xf1, - 0xfc, 0x8e, 0x1a, 0x78, 0x56, 0x8f, 0x35, 0xf0, 0xce, 0x41, 0xdf, 0x66, 0xd8, 0x24, 0xd9, 0x18, - 0x81, 0x4b, 0x61, 0x93, 0x60, 0x06, 0x41, 0xcf, 0xd0, 0x49, 0xe8, 0x05, 0x89, 0x43, 0x97, 0xa3, - 0xf4, 0x7d, 0x8f, 0xf2, 0x09, 0xa8, 0x9a, 0xb1, 0x89, 0x63, 0xff, 0xab, 0x1a, 0x0c, 0x88, 0x80, - 0x96, 0x9e, 0xcb, 0x98, 0x48, 0x17, 0x45, 0xa9, 0xab, 0x8b, 0x22, 0x86, 0x7e, 0x97, 0x15, 0xe3, - 0x14, 0x96, 0xf0, 0x95, 0x42, 0x22, 0xa0, 0x78, 0x7d, 0x4f, 0xdd, 0x2d, 0xfe, 0x1f, 0x0b, 0x56, - 0xe8, 0x0b, 0x16, 0x8c, 0xba, 0x61, 0x10, 0x10, 0x57, 0x9b, 0x69, 0x7d, 0x45, 0x04, 0xba, 0xcc, - 0xa6, 0x89, 0xea, 0x43, 0xbe, 0x0c, 0x00, 0x67, 0xd9, 0xa3, 0x17, 0x60, 0x98, 0x8f, 0xd9, 0xf5, - 0x94, 0xc3, 0x5e, 0x97, 0x46, 0x33, 0x81, 0x38, 0x8d, 0x8b, 0x26, 0xf9, 0xc1, 0x87, 0x28, 0x42, - 0xd6, 0xaf, 0xfd, 0x9a, 0x46, 0xf9, 0x31, 0x03, 0x03, 0x45, 0x80, 0x22, 0xb2, 0x11, 0x91, 0x78, - 0x53, 0x04, 0xfc, 0x30, 0x13, 0x71, 0xe0, 0xee, 0x0a, 0x10, 0xe0, 0x0e, 0x4a, 0x38, 0x87, 0x3a, - 0xda, 0x12, 0x7b, 0xe4, 0x6a, 0x11, 0xf2, 0x5c, 0x7c, 0xe6, 0xae, 0x5b, 0xe5, 0x09, 0xa8, 0x30, - 0xd5, 0xc5, 0x4c, 0xd3, 0x32, 0x4f, 0x7a, 0x63, 0x8a, 0x0d, 0xf3, 0x76, 0x34, 0x07, 0x27, 0x32, - 0x85, 0xdd, 0x62, 0xe1, 0x58, 0x57, 0x09, 0x4e, 0x99, 0x92, 0x70, 0x31, 0xee, 0x78, 0xc2, 0xf4, - 0x9f, 0x0c, 0x1e, 0xe0, 0x3f, 0xd9, 0x55, 0x61, 0xa5, 0xdc, 0xe5, 0xfd, 0x62, 0x21, 0x03, 0xd0, - 0x53, 0x0c, 0xe9, 0xe7, 0x32, 0x31, 0xa4, 0xc3, 0xac, 0x03, 0xd7, 0x8b, 0xe9, 0xc0, 0xe1, 0x03, - 0x46, 0xef, 0x67, 0x00, 0xe8, 0xff, 0xb2, 0x40, 0x7e, 0xd7, 0x59, 0xc7, 0xdd, 0x24, 0x74, 0xca, - 0xa0, 0xf7, 0xc0, 0x88, 0xf2, 0x02, 0x70, 0x93, 0xc8, 0x62, 0xb3, 0x46, 0x45, 0x03, 0xe0, 0x14, - 0x14, 0x67, 0xb0, 0xd1, 0x14, 0xd4, 0xe8, 0x38, 0xf1, 0x47, 0xb9, 0xde, 0x57, 0x9e, 0x86, 0xe9, - 0x95, 0x05, 0xf1, 0x94, 0xc6, 0x41, 0x21, 0x8c, 0xf9, 0x4e, 0x9c, 0xb0, 0x1e, 0xac, 0xee, 0x06, - 0xee, 0x5d, 0x96, 0xff, 0x60, 0x59, 0x34, 0x8b, 0x59, 0x42, 0xb8, 0x93, 0xb6, 0xfd, 0x1f, 0x2a, - 0x30, 0x9c, 0x92, 0x8c, 0x87, 0x34, 0x18, 0x9e, 0x82, 0xaa, 0xd4, 0xe1, 0xd9, 0x3a, 0x47, 0x4a, - 0xd1, 0x2b, 0x0c, 0xaa, 0xb4, 0xd6, 0xb5, 0x56, 0xcd, 0x1a, 0x38, 0x86, 0xc2, 0xc5, 0x26, 0x1e, - 0x13, 0xca, 0x89, 0x1f, 0xcf, 0xfa, 0x1e, 0x09, 0x12, 0xde, 0xcd, 0x62, 0x84, 0xf2, 0xda, 0xe2, - 0xaa, 0x49, 0x54, 0x0b, 0xe5, 0x0c, 0x00, 0x67, 0xd9, 0xa3, 0x4f, 0x5a, 0x30, 0xec, 0xdc, 0x8a, - 0x75, 0xc5, 0x68, 0x11, 0x2d, 0x7a, 0x44, 0x25, 0x95, 0x2a, 0x42, 0xcd, 0xbd, 0xd6, 0xa9, 0x26, - 0x9c, 0x66, 0x8a, 0xde, 0xb0, 0x00, 0x91, 0x1d, 0xe2, 0xca, 0x78, 0x56, 0xd1, 0x97, 0xfe, 0x22, - 0x36, 0xcb, 0x17, 0x3a, 0xe8, 0x72, 0xa9, 0xde, 0xd9, 0x8e, 0x73, 0xfa, 0x80, 0x2e, 0x03, 0xaa, - 0x7b, 0xb1, 0xb3, 0xee, 0x93, 0xd9, 0xb0, 0x29, 0x33, 0x3f, 0xc5, 0xe1, 0xeb, 0x19, 0x31, 0xce, - 0x68, 0xae, 0x03, 0x03, 0xe7, 0x3c, 0xc5, 0x66, 0x59, 0x14, 0xee, 0xec, 0x5e, 0x8b, 0x7c, 0xa6, - 0x25, 0xcc, 0x59, 0x26, 0xda, 0xb1, 0xc2, 0xb0, 0xff, 0xa2, 0xac, 0x96, 0xb2, 0x0e, 0xde, 0x76, - 0x8c, 0x20, 0x52, 0xeb, 0xee, 0x83, 0x48, 0x75, 0x10, 0x4c, 0x67, 0x3e, 0x73, 0x2a, 0xfd, 0xb1, - 0x74, 0x9f, 0xd2, 0x1f, 0x7f, 0xde, 0x4a, 0xd5, 0x12, 0x1b, 0x3c, 0xff, 0x52, 0xb1, 0x81, 0xe3, - 0x93, 0x3c, 0x40, 0x27, 0xa3, 0x57, 0x32, 0x71, 0x59, 0x4f, 0x41, 0x75, 0xc3, 0x77, 0x58, 0x05, - 0x0c, 0xb6, 0x50, 0x8d, 0xe0, 0xa1, 0x8b, 0xa2, 0x1d, 0x2b, 0x0c, 0x2a, 0xf5, 0x0d, 0xa2, 0x87, - 0x92, 0xda, 0xff, 0xa9, 0x0c, 0x83, 0x86, 0xc6, 0xcf, 0x35, 0xdf, 0xac, 0x07, 0xcc, 0x7c, 0x2b, - 0x1d, 0xc2, 0x7c, 0xfb, 0x39, 0xa8, 0xb9, 0x52, 0x1b, 0x15, 0x53, 0x1b, 0x3d, 0xab, 0xe3, 0xb4, - 0x42, 0x52, 0x4d, 0x58, 0xf3, 0x44, 0xf3, 0xa9, 0x14, 0xbb, 0x94, 0x5f, 0x20, 0x2f, 0x07, 0x4e, - 0x68, 0xb4, 0xce, 0x67, 0xb2, 0xe7, 0xd4, 0x95, 0x83, 0xcf, 0xa9, 0xed, 0xef, 0x58, 0xea, 0xe3, - 0xde, 0x83, 0x5a, 0x2a, 0x37, 0xd3, 0xb5, 0x54, 0x2e, 0x14, 0x32, 0xcc, 0x5d, 0x8a, 0xa8, 0x5c, - 0x85, 0x81, 0xd9, 0xb0, 0xd9, 0x74, 0x82, 0x3a, 0xfa, 0x51, 0x18, 0x70, 0xf9, 0x4f, 0xe1, 0x43, - 0x63, 0x27, 0xb1, 0x02, 0x8a, 0x25, 0x0c, 0x9d, 0x85, 0x3e, 0x27, 0x6a, 0x48, 0xbf, 0x19, 0x8b, - 0x98, 0x9a, 0x8e, 0x1a, 0x31, 0x66, 0xad, 0xf6, 0x3f, 0xeb, 0x03, 0x16, 0xa8, 0xe0, 0x44, 0xa4, - 0xbe, 0x16, 0xb2, 0x92, 0xa6, 0xc7, 0x7a, 0x7e, 0xa9, 0x37, 0x75, 0x0f, 0xf2, 0x19, 0xa6, 0x71, - 0x8e, 0x55, 0xbe, 0xc7, 0xe7, 0x58, 0x5d, 0x8e, 0x26, 0xfb, 0x1e, 0xa0, 0xa3, 0x49, 0xfb, 0xb3, - 0x16, 0x20, 0x15, 0xdd, 0xa2, 0x63, 0x07, 0xa6, 0xa0, 0xa6, 0xe2, 0x5c, 0x84, 0x01, 0xa8, 0x45, - 0x84, 0x04, 0x60, 0x8d, 0xd3, 0xc3, 0x4e, 0xfe, 0x71, 0x29, 0xbf, 0xcb, 0xe9, 0xc0, 0x71, 0x26, - 0xf5, 0x85, 0x38, 0xb7, 0x7f, 0xb7, 0x04, 0x0f, 0x71, 0xd3, 0x61, 0xc9, 0x09, 0x9c, 0x06, 0x69, - 0xd2, 0x5e, 0xf5, 0x1a, 0x0d, 0xe2, 0xd2, 0x2d, 0xa4, 0x27, 0x03, 0xc1, 0x8f, 0xba, 0x76, 0xf9, - 0x9a, 0xe3, 0xab, 0x6c, 0x21, 0xf0, 0x12, 0xcc, 0x88, 0xa3, 0x18, 0xaa, 0xf2, 0xe2, 0x10, 0x21, - 0x8b, 0x0b, 0x62, 0xa4, 0xc4, 0x92, 0xd0, 0xb2, 0x04, 0x2b, 0x46, 0x54, 0x95, 0xfa, 0xa1, 0xbb, - 0x85, 0x49, 0x2b, 0xcc, 0xaa, 0xd2, 0x45, 0xd1, 0x8e, 0x15, 0x86, 0xdd, 0x84, 0x51, 0x39, 0x86, - 0xad, 0x2b, 0x64, 0x17, 0x93, 0x0d, 0xaa, 0x7f, 0x5c, 0xd9, 0x64, 0xdc, 0x65, 0xa2, 0xf4, 0xcf, - 0xac, 0x09, 0xc4, 0x69, 0x5c, 0x59, 0xe5, 0xb4, 0x94, 0x5f, 0xe5, 0xd4, 0xfe, 0x5d, 0x0b, 0xb2, - 0x0a, 0xd0, 0xa8, 0xe9, 0x68, 0xed, 0x5b, 0xd3, 0xf1, 0x10, 0x55, 0x11, 0x7f, 0x06, 0x06, 0x9d, - 0x84, 0x5a, 0x38, 0xdc, 0x1b, 0x51, 0xbe, 0xbb, 0x03, 0xab, 0xa5, 0xb0, 0xee, 0x6d, 0x78, 0xcc, - 0x0b, 0x61, 0x92, 0xb3, 0xff, 0xaa, 0x0f, 0xc6, 0x3a, 0xb2, 0xb4, 0xd0, 0xf3, 0x30, 0xa4, 0x86, - 0x42, 0xfa, 0xf9, 0x6a, 0x66, 0x68, 0xa5, 0x86, 0xe1, 0x14, 0x66, 0x0f, 0xeb, 0x61, 0x01, 0x4e, - 0x46, 0xe4, 0xd5, 0x36, 0x69, 0x93, 0xe9, 0x8d, 0x84, 0x44, 0xab, 0xc4, 0x0d, 0x83, 0x3a, 0xaf, - 0x3c, 0x5a, 0x9e, 0x79, 0xf8, 0xf6, 0xde, 0xc4, 0x49, 0xdc, 0x09, 0xc6, 0x79, 0xcf, 0xa0, 0x16, - 0x0c, 0xfb, 0xa6, 0x81, 0x2a, 0xf6, 0x45, 0x77, 0x65, 0xdb, 0xaa, 0x29, 0x91, 0x6a, 0xc6, 0x69, - 0x06, 0x69, 0x2b, 0xb7, 0x72, 0x9f, 0xac, 0xdc, 0x4f, 0x68, 0x2b, 0x97, 0x47, 0x56, 0x7c, 0xa0, - 0xe0, 0x2c, 0xbd, 0x5e, 0xcc, 0xdc, 0xa3, 0x18, 0xae, 0x2f, 0x42, 0x55, 0x46, 0x9d, 0xf5, 0x14, - 0xad, 0x65, 0xd2, 0xe9, 0x22, 0x40, 0x9f, 0x80, 0xb7, 0x5d, 0x88, 0x22, 0x63, 0x30, 0xaf, 0x86, - 0xc9, 0xb4, 0xef, 0x87, 0xb7, 0xa8, 0x4d, 0x70, 0x2d, 0x26, 0xc2, 0xf1, 0x64, 0xdf, 0x29, 0x41, - 0xce, 0x1e, 0x8e, 0xae, 0x47, 0x6d, 0x88, 0xa4, 0xd6, 0xe3, 0xe1, 0x8c, 0x11, 0xb4, 0xc3, 0x23, - 0xf3, 0xb8, 0xca, 0x7d, 0x7f, 0xd1, 0x7b, 0x50, 0x1d, 0xac, 0xa7, 0xc4, 0x91, 0x0a, 0xd8, 0x3b, - 0x0f, 0xa0, 0xed, 0x47, 0x91, 0x3a, 0xa2, 0x0e, 0xfe, 0xb5, 0x99, 0x89, 0x0d, 0x2c, 0xf4, 0x1c, - 0x0c, 0x7a, 0x41, 0x9c, 0x38, 0xbe, 0x7f, 0xc9, 0x0b, 0x12, 0xe1, 0x5b, 0x55, 0xb6, 0xc5, 0x82, - 0x06, 0x61, 0x13, 0xef, 0xcc, 0x3b, 0x8d, 0xef, 0x77, 0x98, 0xef, 0xbe, 0x09, 0x8f, 0xcc, 0x7b, - 0x89, 0x4a, 0x78, 0x52, 0xf3, 0x8d, 0x9a, 0x87, 0x2a, 0x81, 0xcf, 0xea, 0x9a, 0xc0, 0x67, 0x24, - 0x1c, 0x95, 0xd2, 0xf9, 0x51, 0xd9, 0x84, 0x23, 0xfb, 0x79, 0x38, 0x35, 0xef, 0x25, 0x17, 0x3d, - 0x9f, 0x1c, 0x92, 0x89, 0xfd, 0x3b, 0xfd, 0x30, 0x64, 0xa6, 0xee, 0x1e, 0x26, 0x07, 0xf1, 0xf3, - 0xd4, 0x02, 0x14, 0x6f, 0xe7, 0xa9, 0x63, 0xd3, 0x1b, 0x47, 0xce, 0x23, 0xce, 0x1f, 0x31, 0xc3, - 0x08, 0xd4, 0x3c, 0xb1, 0xd9, 0x01, 0x74, 0x0b, 0x2a, 0x1b, 0x2c, 0x21, 0xa6, 0x5c, 0x44, 0x6c, - 0x49, 0xde, 0x88, 0xea, 0xe5, 0xc8, 0x53, 0x6a, 0x38, 0x3f, 0xaa, 0xb8, 0xa3, 0x74, 0x96, 0xa5, - 0x11, 0xf8, 0x2c, 0xf2, 0x2b, 0x15, 0x46, 0x37, 0x95, 0x50, 0xb9, 0x0b, 0x95, 0x90, 0x12, 0xd0, - 0xfd, 0xf7, 0x49, 0x40, 0xb3, 0xe4, 0xa6, 0x64, 0x93, 0x99, 0x95, 0x22, 0x53, 0x63, 0x80, 0x0d, - 0x82, 0x91, 0xdc, 0x94, 0x02, 0xe3, 0x2c, 0x3e, 0xfa, 0xa8, 0x12, 0xf1, 0xd5, 0x22, 0xdc, 0xd2, - 0xe6, 0x8c, 0x3e, 0x6e, 0xe9, 0xfe, 0xd9, 0x12, 0x8c, 0xcc, 0x07, 0xed, 0x95, 0xf9, 0x95, 0xf6, - 0xba, 0xef, 0xb9, 0x57, 0xc8, 0x2e, 0x15, 0xe1, 0x5b, 0x64, 0x77, 0x61, 0x4e, 0xac, 0x20, 0x35, - 0x67, 0xae, 0xd0, 0x46, 0xcc, 0x61, 0x54, 0x18, 0x6d, 0x78, 0x41, 0x83, 0x44, 0xad, 0xc8, 0x13, - 0x1e, 0x63, 0x43, 0x18, 0x5d, 0xd4, 0x20, 0x6c, 0xe2, 0x51, 0xda, 0xe1, 0xad, 0x80, 0x44, 0x59, - 0xfb, 0x7a, 0x99, 0x36, 0x62, 0x0e, 0xa3, 0x48, 0x49, 0xd4, 0x16, 0x0e, 0x19, 0x03, 0x69, 0x8d, - 0x36, 0x62, 0x0e, 0xa3, 0x2b, 0x3d, 0x6e, 0xaf, 0xb3, 0xd0, 0x9d, 0x4c, 0x5a, 0xc8, 0x2a, 0x6f, - 0xc6, 0x12, 0x4e, 0x51, 0xb7, 0xc8, 0xee, 0x1c, 0xdd, 0x8c, 0x67, 0x32, 0xdd, 0xae, 0xf0, 0x66, - 0x2c, 0xe1, 0xac, 0x36, 0x6a, 0x7a, 0x38, 0x7e, 0xe0, 0x6a, 0xa3, 0xa6, 0xbb, 0xdf, 0x65, 0x5b, - 0xff, 0x6b, 0x16, 0x0c, 0x99, 0x01, 0x77, 0xa8, 0x91, 0xb1, 0x85, 0x97, 0x3b, 0x4a, 0x6b, 0xbf, - 0x3b, 0xef, 0xda, 0xc9, 0x86, 0x97, 0x84, 0xad, 0xf8, 0x69, 0x12, 0x34, 0xbc, 0x80, 0xb0, 0x80, - 0x08, 0x1e, 0xa8, 0x97, 0x8a, 0xe6, 0x9b, 0x0d, 0xeb, 0xe4, 0x2e, 0x8c, 0x69, 0xfb, 0x06, 0x8c, - 0x75, 0xa4, 0x37, 0xf6, 0x60, 0x82, 0x1c, 0x98, 0x5c, 0x6e, 0x63, 0x18, 0xa4, 0x84, 0x65, 0x7d, - 0xae, 0x59, 0x18, 0xe3, 0x0b, 0x89, 0x72, 0x5a, 0x75, 0x37, 0x49, 0x53, 0xa5, 0xac, 0xb2, 0xe3, - 0x89, 0xeb, 0x59, 0x20, 0xee, 0xc4, 0xb7, 0x3f, 0x67, 0xc1, 0x70, 0x2a, 0xe3, 0xb4, 0x20, 0x63, - 0x89, 0xad, 0xb4, 0x90, 0xc5, 0x7f, 0xb2, 0x20, 0xf8, 0x32, 0x53, 0xa6, 0x7a, 0xa5, 0x69, 0x10, - 0x36, 0xf1, 0xec, 0x2f, 0x96, 0xa0, 0x2a, 0x63, 0x68, 0x7a, 0xe8, 0xca, 0x67, 0x2c, 0x18, 0x56, - 0x47, 0x42, 0xcc, 0x87, 0x57, 0x2a, 0x22, 0xa5, 0x86, 0xf6, 0x40, 0x79, 0x01, 0x82, 0x8d, 0x50, - 0x5b, 0xee, 0xd8, 0x64, 0x86, 0xd3, 0xbc, 0xd1, 0x75, 0x80, 0x78, 0x37, 0x4e, 0x48, 0xd3, 0xf0, - 0x26, 0xda, 0xc6, 0x8a, 0x9b, 0x74, 0xc3, 0x88, 0xd0, 0xf5, 0x75, 0x35, 0xac, 0x93, 0x55, 0x85, - 0xa9, 0x4d, 0x28, 0xdd, 0x86, 0x0d, 0x4a, 0xf6, 0x3f, 0x29, 0xc1, 0x89, 0x6c, 0x97, 0xd0, 0x07, - 0x60, 0x48, 0x72, 0x37, 0x76, 0x9d, 0x32, 0x02, 0x68, 0x08, 0x1b, 0xb0, 0x3b, 0x7b, 0x13, 0x13, - 0x9d, 0x57, 0x98, 0x4e, 0x9a, 0x28, 0x38, 0x45, 0x8c, 0x9f, 0xcb, 0x89, 0x03, 0xe4, 0x99, 0xdd, - 0xe9, 0x56, 0x4b, 0x1c, 0xae, 0x19, 0xe7, 0x72, 0x26, 0x14, 0x67, 0xb0, 0xd1, 0x0a, 0x9c, 0x32, - 0x5a, 0xae, 0x12, 0xaf, 0xb1, 0xb9, 0x1e, 0x46, 0x72, 0x07, 0x76, 0x56, 0x87, 0xf6, 0x75, 0xe2, - 0xe0, 0xdc, 0x27, 0xa9, 0xb6, 0x77, 0x9d, 0x96, 0xe3, 0x7a, 0xc9, 0xae, 0x70, 0x8f, 0x2a, 0xd9, - 0x34, 0x2b, 0xda, 0xb1, 0xc2, 0xb0, 0x97, 0xa0, 0xaf, 0xc7, 0x19, 0xd4, 0x93, 0xe5, 0xff, 0x22, - 0x54, 0x29, 0x39, 0x69, 0xde, 0x15, 0x41, 0x32, 0x84, 0xaa, 0xbc, 0x10, 0x0a, 0xd9, 0x50, 0xf6, - 0x1c, 0x79, 0xf4, 0xa9, 0x5e, 0x6b, 0x21, 0x8e, 0xdb, 0x6c, 0x33, 0x4d, 0x81, 0xe8, 0x71, 0x28, - 0x93, 0x9d, 0x56, 0xf6, 0x8c, 0xf3, 0xc2, 0x4e, 0xcb, 0x8b, 0x48, 0x4c, 0x91, 0xc8, 0x4e, 0x0b, - 0x9d, 0x81, 0x92, 0x57, 0x17, 0x4a, 0x0a, 0x04, 0x4e, 0x69, 0x61, 0x0e, 0x97, 0xbc, 0xba, 0xbd, - 0x03, 0x35, 0x75, 0x03, 0x15, 0xda, 0x92, 0xb2, 0xdb, 0x2a, 0x22, 0xe8, 0x4d, 0xd2, 0xed, 0x22, - 0xb5, 0xdb, 0x00, 0x3a, 0x5d, 0xb5, 0x28, 0xf9, 0x72, 0x0e, 0xfa, 0xdc, 0x50, 0x94, 0x05, 0xa8, - 0x6a, 0x32, 0x4c, 0x68, 0x33, 0x88, 0x7d, 0x03, 0x46, 0xae, 0x04, 0xe1, 0x2d, 0x76, 0x51, 0x04, - 0xab, 0x8b, 0x48, 0x09, 0x6f, 0xd0, 0x1f, 0x59, 0x13, 0x81, 0x41, 0x31, 0x87, 0xa9, 0x8a, 0x6d, - 0xa5, 0x6e, 0x15, 0xdb, 0xec, 0x8f, 0x59, 0x30, 0xa4, 0xf2, 0xde, 0xe6, 0xb7, 0xb7, 0x28, 0xdd, - 0x46, 0x14, 0xb6, 0x5b, 0x59, 0xba, 0xec, 0xb2, 0x3b, 0xcc, 0x61, 0x66, 0x42, 0x68, 0xe9, 0x80, - 0x84, 0xd0, 0x73, 0xd0, 0xb7, 0xe5, 0x05, 0xf5, 0xec, 0xa5, 0x47, 0x57, 0xbc, 0xa0, 0x8e, 0x19, - 0x84, 0x76, 0xe1, 0x84, 0xea, 0x82, 0x54, 0x08, 0xcf, 0xc3, 0xd0, 0x7a, 0xdb, 0xf3, 0xeb, 0xb2, - 0xe0, 0x63, 0xc6, 0xa3, 0x32, 0x63, 0xc0, 0x70, 0x0a, 0x93, 0xee, 0xeb, 0xd6, 0xbd, 0xc0, 0x89, - 0x76, 0x57, 0xb4, 0x06, 0x52, 0x42, 0x69, 0x46, 0x41, 0xb0, 0x81, 0x65, 0xbf, 0x5e, 0x86, 0x91, - 0x74, 0xf6, 0x5f, 0x0f, 0xdb, 0xab, 0xc7, 0xa1, 0xc2, 0x12, 0x02, 0xb3, 0x9f, 0x96, 0xd7, 0x48, - 0xe4, 0x30, 0x14, 0x43, 0x3f, 0x2f, 0x8b, 0x52, 0xcc, 0x85, 0x61, 0xaa, 0x93, 0xca, 0x0f, 0xc3, - 0x42, 0x03, 0x45, 0x25, 0x16, 0xc1, 0x0a, 0x7d, 0xd2, 0x82, 0x81, 0xb0, 0x65, 0x56, 0xfa, 0x7a, - 0x7f, 0x91, 0x99, 0x91, 0x22, 0x5d, 0x4a, 0x58, 0xc4, 0xea, 0xd3, 0xcb, 0xcf, 0x21, 0x59, 0x9f, - 0x79, 0x17, 0x0c, 0x99, 0x98, 0x07, 0x19, 0xc5, 0x55, 0xd3, 0x28, 0xfe, 0x8c, 0x39, 0x29, 0x44, - 0xee, 0x67, 0x0f, 0xcb, 0xed, 0x1a, 0x54, 0x5c, 0x15, 0x3f, 0x71, 0x57, 0x65, 0x82, 0x55, 0x9d, - 0x12, 0x76, 0x36, 0xc5, 0xa9, 0xd9, 0xdf, 0xb1, 0x8c, 0xf9, 0x81, 0x49, 0xbc, 0x50, 0x47, 0x11, - 0x94, 0x1b, 0xdb, 0x5b, 0xc2, 0x14, 0xbd, 0x5c, 0xd0, 0xf0, 0xce, 0x6f, 0x6f, 0xe9, 0x39, 0x6e, - 0xb6, 0x62, 0xca, 0xac, 0x07, 0x67, 0x61, 0x2a, 0x45, 0xb8, 0x7c, 0x70, 0x8a, 0xb0, 0xfd, 0x46, - 0x09, 0xc6, 0x3a, 0x26, 0x15, 0x7a, 0x0d, 0x2a, 0x11, 0x7d, 0x4b, 0xf1, 0x7a, 0x8b, 0x85, 0x25, - 0xf5, 0xc6, 0x0b, 0x75, 0xad, 0x77, 0xd3, 0xed, 0x98, 0xb3, 0x44, 0x97, 0x01, 0xe9, 0x28, 0x1f, - 0xe5, 0xa9, 0xe4, 0xaf, 0xac, 0x42, 0x01, 0xa6, 0x3b, 0x30, 0x70, 0xce, 0x53, 0xe8, 0x85, 0xac, - 0xc3, 0xb3, 0x9c, 0x76, 0x67, 0xef, 0xe7, 0xbb, 0xb4, 0x7f, 0xab, 0x04, 0xc3, 0xa9, 0xc2, 0x6b, - 0xc8, 0x87, 0x2a, 0xf1, 0xd9, 0x59, 0x83, 0x54, 0x36, 0x47, 0x2d, 0xa3, 0xae, 0x14, 0xe4, 0x05, - 0x41, 0x17, 0x2b, 0x0e, 0x0f, 0x46, 0x84, 0xc0, 0xf3, 0x30, 0x24, 0x3b, 0xf4, 0x7e, 0xa7, 0xe9, - 0x8b, 0x01, 0x54, 0x73, 0xf4, 0x82, 0x01, 0xc3, 0x29, 0x4c, 0xfb, 0xf7, 0xca, 0x30, 0xce, 0x0f, - 0x67, 0xea, 0x6a, 0xe6, 0x2d, 0xc9, 0xfd, 0xd6, 0xdf, 0xd0, 0xe5, 0x11, 0xad, 0x22, 0xee, 0x0a, - 0xed, 0xc6, 0xa8, 0xa7, 0xc0, 0xb6, 0xaf, 0x64, 0x02, 0xdb, 0xb8, 0xd9, 0xdd, 0x38, 0xa6, 0x1e, - 0xfd, 0x60, 0x45, 0xba, 0xfd, 0xc3, 0x12, 0x8c, 0x66, 0xae, 0x84, 0x41, 0xaf, 0xa7, 0xab, 0x88, - 0x5b, 0x45, 0xf8, 0xd4, 0xf7, 0xbd, 0x25, 0xe4, 0x70, 0xb5, 0xc4, 0xef, 0xd3, 0x52, 0xb1, 0xbf, - 0x5d, 0x82, 0x91, 0xf4, 0x5d, 0x36, 0x0f, 0xe0, 0x48, 0xbd, 0x03, 0x6a, 0xec, 0xba, 0x06, 0x76, - 0x05, 0x33, 0x77, 0xc9, 0xf3, 0xca, 0xf8, 0xb2, 0x11, 0x6b, 0xf8, 0x03, 0x51, 0xa2, 0xdd, 0xfe, - 0xc7, 0x16, 0x9c, 0xe6, 0x6f, 0x99, 0x9d, 0x87, 0x7f, 0x33, 0x6f, 0x74, 0x5f, 0x2e, 0xb6, 0x83, - 0x99, 0xb2, 0x9e, 0x07, 0x8d, 0x2f, 0xbb, 0x31, 0x55, 0xf4, 0x36, 0x3d, 0x15, 0x1e, 0xc0, 0xce, - 0x1e, 0x6a, 0x32, 0xd8, 0xdf, 0x2e, 0x83, 0xbe, 0x24, 0x16, 0x79, 0x22, 0xcb, 0xb5, 0x90, 0xf2, - 0xa6, 0xab, 0xbb, 0x81, 0xab, 0xaf, 0xa3, 0xad, 0x66, 0x92, 0x5c, 0x7f, 0xd1, 0x82, 0x41, 0x2f, - 0xf0, 0x12, 0xcf, 0x61, 0xdb, 0xe8, 0x62, 0x6e, 0x7a, 0x54, 0xec, 0x16, 0x38, 0xe5, 0x30, 0x32, - 0xcf, 0x71, 0x14, 0x33, 0x6c, 0x72, 0x46, 0x1f, 0x12, 0xb1, 0xe7, 0xe5, 0xc2, 0xf2, 0xb3, 0xab, - 0x99, 0x80, 0xf3, 0x16, 0x35, 0xbc, 0x92, 0xa8, 0xa0, 0xb2, 0x06, 0x98, 0x92, 0x52, 0x95, 0xb2, - 0x95, 0x69, 0xcb, 0x9a, 0x31, 0x67, 0x64, 0xc7, 0x80, 0x3a, 0xc7, 0xe2, 0x90, 0x71, 0xbd, 0x53, - 0x50, 0x73, 0xda, 0x49, 0xd8, 0xa4, 0xc3, 0x24, 0x8e, 0x9a, 0x74, 0xe4, 0xb2, 0x04, 0x60, 0x8d, - 0x63, 0xbf, 0x5e, 0x81, 0x4c, 0xda, 0x29, 0xda, 0x31, 0x2f, 0x38, 0xb6, 0x8a, 0xbd, 0xe0, 0x58, - 0x75, 0x26, 0xef, 0x92, 0x63, 0xd4, 0x80, 0x4a, 0x6b, 0xd3, 0x89, 0xa5, 0x59, 0xfd, 0xa2, 0xda, - 0xc7, 0xd1, 0xc6, 0x3b, 0x7b, 0x13, 0x3f, 0xdd, 0x9b, 0xd7, 0x95, 0xce, 0xd5, 0x29, 0x5e, 0x2a, - 0x47, 0xb3, 0x66, 0x34, 0x30, 0xa7, 0x7f, 0x98, 0xbb, 0x2e, 0x3f, 0x2e, 0xee, 0xa5, 0xc0, 0x24, - 0x6e, 0xfb, 0x89, 0x98, 0x0d, 0x2f, 0x16, 0xb8, 0xca, 0x38, 0x61, 0x5d, 0x30, 0x81, 0xff, 0xc7, - 0x06, 0x53, 0xf4, 0x01, 0xa8, 0xc5, 0x89, 0x13, 0x25, 0x77, 0x99, 0xe2, 0xac, 0x4b, 0x9a, 0x49, - 0x22, 0x58, 0xd3, 0x43, 0x2f, 0xb1, 0x6a, 0xcf, 0x5e, 0xbc, 0x79, 0x97, 0x29, 0x23, 0xb2, 0x32, - 0xb4, 0xa0, 0x80, 0x0d, 0x6a, 0xe8, 0x3c, 0x00, 0x9b, 0xdb, 0x3c, 0xfe, 0xb0, 0xca, 0xbc, 0x4c, - 0x4a, 0x14, 0x62, 0x05, 0xc1, 0x06, 0x96, 0xfd, 0xe3, 0x90, 0xae, 0xf8, 0x81, 0x26, 0x64, 0x81, - 0x11, 0xee, 0x85, 0x66, 0xa9, 0x1f, 0xa9, 0x5a, 0x20, 0xbf, 0x61, 0x81, 0x59, 0x96, 0x04, 0xbd, - 0xca, 0xeb, 0x9f, 0x58, 0x45, 0x9c, 0x1c, 0x1a, 0x74, 0x27, 0x97, 0x9c, 0x56, 0xe6, 0x08, 0x5b, - 0x16, 0x41, 0x39, 0xf3, 0x4e, 0xa8, 0x4a, 0xe8, 0xa1, 0x8c, 0xba, 0x8f, 0xc2, 0x49, 0x99, 0x46, - 0x2a, 0xfd, 0xa6, 0xe2, 0xd4, 0xe9, 0x60, 0xd7, 0x8f, 0xf4, 0xe7, 0x94, 0xba, 0xf9, 0x73, 0x7a, - 0xb8, 0xe6, 0xfa, 0x37, 0x2d, 0x38, 0x97, 0xed, 0x40, 0xbc, 0x14, 0x06, 0x5e, 0x12, 0x46, 0xab, - 0x24, 0x49, 0xbc, 0xa0, 0xc1, 0xca, 0xbe, 0xdd, 0x72, 0x22, 0x59, 0x86, 0x9f, 0x09, 0xca, 0x1b, - 0x4e, 0x14, 0x60, 0xd6, 0x8a, 0x76, 0xa1, 0x9f, 0x07, 0xa9, 0x09, 0x6b, 0xfd, 0x88, 0x6b, 0x23, - 0x67, 0x38, 0xf4, 0x76, 0x81, 0x07, 0xc8, 0x61, 0xc1, 0xd0, 0xfe, 0x9e, 0x05, 0x68, 0x79, 0x9b, - 0x44, 0x91, 0x57, 0x37, 0xc2, 0xea, 0xd8, 0xfd, 0x4e, 0xc6, 0x3d, 0x4e, 0x66, 0x92, 0x73, 0xe6, - 0x7e, 0x27, 0xe3, 0x5f, 0xfe, 0xfd, 0x4e, 0xa5, 0xc3, 0xdd, 0xef, 0x84, 0x96, 0xe1, 0x74, 0x93, - 0x6f, 0x37, 0xf8, 0x9d, 0x29, 0x7c, 0xef, 0xa1, 0xf2, 0xf1, 0x1e, 0xb9, 0xbd, 0x37, 0x71, 0x7a, - 0x29, 0x0f, 0x01, 0xe7, 0x3f, 0x67, 0xbf, 0x13, 0x10, 0x8f, 0xa6, 0x9b, 0xcd, 0x8b, 0x55, 0xea, - 0xea, 0x7e, 0xb1, 0xbf, 0x5c, 0x81, 0xd1, 0x4c, 0x91, 0x66, 0xba, 0xd5, 0xeb, 0x0c, 0x8e, 0x3a, - 0xb2, 0xfe, 0xee, 0xec, 0x5e, 0x4f, 0xe1, 0x56, 0x01, 0x54, 0xbc, 0xa0, 0xd5, 0x4e, 0x8a, 0x49, - 0x07, 0xe6, 0x9d, 0x58, 0xa0, 0x04, 0x0d, 0x77, 0x31, 0xfd, 0x8b, 0x39, 0x9b, 0x22, 0x83, 0xb7, - 0x52, 0xc6, 0x78, 0xdf, 0x7d, 0x72, 0x07, 0x7c, 0x5c, 0x87, 0x52, 0x55, 0x8a, 0x70, 0x2c, 0x66, - 0x26, 0xcb, 0x71, 0x1f, 0xb5, 0x7f, 0xa3, 0x04, 0x83, 0xc6, 0x47, 0x43, 0xbf, 0x9a, 0x2e, 0xda, - 0x65, 0x15, 0xf7, 0x4a, 0x8c, 0xfe, 0xa4, 0x2e, 0xcb, 0xc5, 0x5f, 0xe9, 0x89, 0xce, 0x7a, 0x5d, - 0x77, 0xf6, 0x26, 0x4e, 0x64, 0x2a, 0x72, 0xa5, 0x6a, 0x78, 0x9d, 0xf9, 0x08, 0x8c, 0x66, 0xc8, - 0xe4, 0xbc, 0xf2, 0x9a, 0xf9, 0xca, 0x47, 0x76, 0x4b, 0x99, 0x43, 0xf6, 0x75, 0x3a, 0x64, 0x22, - 0x0b, 0x31, 0xf4, 0x49, 0x0f, 0x3e, 0xd8, 0x4c, 0xb2, 0x71, 0xa9, 0xc7, 0x64, 0xe3, 0x27, 0xa1, - 0xda, 0x0a, 0x7d, 0xcf, 0xf5, 0x54, 0x0d, 0x4d, 0x96, 0xde, 0xbc, 0x22, 0xda, 0xb0, 0x82, 0xa2, - 0x5b, 0x50, 0xbb, 0x79, 0x2b, 0xe1, 0xa7, 0x3f, 0xc2, 0xbf, 0x5d, 0xd4, 0xa1, 0x8f, 0x32, 0x5a, - 0xd4, 0xf1, 0x12, 0xd6, 0xbc, 0x90, 0x0d, 0xfd, 0x4c, 0x09, 0xca, 0x8c, 0x04, 0xe6, 0x7b, 0x67, - 0xda, 0x31, 0xc6, 0x02, 0x62, 0x7f, 0xad, 0x06, 0xa7, 0xf2, 0x2a, 0xe5, 0xa3, 0x0f, 0x43, 0x3f, - 0xef, 0x63, 0x31, 0x97, 0xb1, 0xe4, 0xf1, 0x98, 0x67, 0x04, 0x45, 0xb7, 0xd8, 0x6f, 0x2c, 0x78, - 0x0a, 0xee, 0xbe, 0xb3, 0x2e, 0x66, 0xc8, 0xf1, 0x70, 0x5f, 0x74, 0x34, 0xf7, 0x45, 0x87, 0x73, - 0xf7, 0x9d, 0x75, 0xb4, 0x03, 0x95, 0x86, 0x97, 0x10, 0x47, 0x38, 0x11, 0x6e, 0x1c, 0x0b, 0x73, - 0xe2, 0x70, 0x2b, 0x8d, 0xfd, 0xc4, 0x9c, 0x21, 0xfa, 0xaa, 0x05, 0xa3, 0xeb, 0xe9, 0x2a, 0x07, - 0x42, 0x78, 0x3a, 0xc7, 0x70, 0x1b, 0x42, 0x9a, 0x11, 0xbf, 0xe0, 0x2c, 0xd3, 0x88, 0xb3, 0xdd, - 0x41, 0x9f, 0xb0, 0x60, 0x60, 0xc3, 0xf3, 0x8d, 0x82, 0xd4, 0xc7, 0xf0, 0x71, 0x2e, 0x32, 0x06, - 0x7a, 0xc7, 0xc1, 0xff, 0xc7, 0x58, 0x72, 0xee, 0xa6, 0xa9, 0xfa, 0x8f, 0xaa, 0xa9, 0x06, 0xee, - 0x93, 0xa6, 0xfa, 0xb4, 0x05, 0x35, 0x35, 0xd2, 0x22, 0x5b, 0xfc, 0x03, 0xc7, 0xf8, 0xc9, 0xb9, - 0xe7, 0x44, 0xfd, 0xc5, 0x9a, 0x39, 0xfa, 0x82, 0x05, 0x83, 0xce, 0x6b, 0xed, 0x88, 0xd4, 0xc9, - 0x76, 0xd8, 0x8a, 0xc5, 0xed, 0xa8, 0x2f, 0x17, 0xdf, 0x99, 0x69, 0xca, 0x64, 0x8e, 0x6c, 0x2f, - 0xb7, 0x62, 0x91, 0x2d, 0xa5, 0x1b, 0xb0, 0xd9, 0x05, 0x7b, 0xaf, 0x04, 0x13, 0x07, 0x50, 0x40, - 0xcf, 0xc3, 0x50, 0x18, 0x35, 0x9c, 0xc0, 0x7b, 0xcd, 0x2c, 0x5b, 0xa2, 0xac, 0xac, 0x65, 0x03, - 0x86, 0x53, 0x98, 0x66, 0x3e, 0x7b, 0xe9, 0x80, 0x7c, 0xf6, 0x73, 0xd0, 0x17, 0x91, 0x56, 0x98, - 0xdd, 0x2c, 0xb0, 0x4c, 0x05, 0x06, 0x41, 0x8f, 0x42, 0xd9, 0x69, 0x79, 0x22, 0x10, 0x4d, 0xed, - 0x81, 0xa6, 0x57, 0x16, 0x30, 0x6d, 0x4f, 0x95, 0xd7, 0xa8, 0xdc, 0x93, 0xf2, 0x1a, 0x54, 0x0d, - 0x88, 0xb3, 0x8b, 0x7e, 0xad, 0x06, 0xd2, 0x67, 0x0a, 0xf6, 0x1b, 0x65, 0x78, 0x74, 0xdf, 0xf9, - 0xa2, 0xe3, 0xf0, 0xac, 0x7d, 0xe2, 0xf0, 0xe4, 0xf0, 0x94, 0x0e, 0x1a, 0x9e, 0x72, 0x97, 0xe1, - 0xf9, 0x04, 0x5d, 0x06, 0xb2, 0xdc, 0x4b, 0x31, 0xf7, 0x5b, 0x76, 0xab, 0x1e, 0x23, 0x56, 0x80, - 0x84, 0x62, 0xcd, 0x97, 0xee, 0x01, 0x52, 0xb9, 0xdc, 0x95, 0x22, 0xd4, 0x40, 0xd7, 0x92, 0x2b, - 0x7c, 0xee, 0x77, 0x4b, 0x10, 0xb7, 0x7f, 0xbb, 0x0f, 0x1e, 0xef, 0x41, 0x7a, 0x9b, 0xb3, 0xd8, - 0xea, 0x71, 0x16, 0xff, 0x80, 0x7f, 0xa6, 0x4f, 0xe5, 0x7e, 0x26, 0x5c, 0xfc, 0x67, 0xda, 0xff, - 0x0b, 0xa1, 0xa7, 0xa0, 0xea, 0x05, 0x31, 0x71, 0xdb, 0x11, 0x8f, 0x49, 0x36, 0xd2, 0x98, 0x16, - 0x44, 0x3b, 0x56, 0x18, 0x74, 0x4f, 0xe7, 0x3a, 0x74, 0xf9, 0x0f, 0x14, 0x94, 0xbb, 0x6b, 0x66, - 0x44, 0x71, 0x93, 0x62, 0x76, 0x9a, 0x4a, 0x00, 0xce, 0xc6, 0xfe, 0x5b, 0x16, 0x9c, 0xe9, 0xae, - 0x62, 0xd1, 0x33, 0x30, 0xb8, 0x1e, 0x39, 0x81, 0xbb, 0xc9, 0x6e, 0x36, 0x96, 0x53, 0x87, 0xbd, - 0xaf, 0x6e, 0xc6, 0x26, 0x0e, 0x9a, 0x85, 0x31, 0x1e, 0xb9, 0x61, 0x60, 0xc8, 0xcc, 0xdf, 0xdb, - 0x7b, 0x13, 0x63, 0x6b, 0x59, 0x20, 0xee, 0xc4, 0xb7, 0xbf, 0x5f, 0xce, 0xef, 0x16, 0x37, 0xc5, - 0x0e, 0x33, 0x9b, 0xc5, 0x5c, 0x2d, 0xf5, 0x20, 0x71, 0xcb, 0xf7, 0x5a, 0xe2, 0xf6, 0x75, 0x93, - 0xb8, 0x68, 0x0e, 0x4e, 0x18, 0x57, 0x4f, 0xf1, 0x6c, 0x6e, 0x1e, 0x96, 0xac, 0x4a, 0xb1, 0xac, - 0x64, 0xe0, 0xb8, 0xe3, 0x89, 0x07, 0x7c, 0xea, 0xfd, 0x5a, 0x09, 0x1e, 0xe9, 0x6a, 0xfd, 0xde, - 0x23, 0x8d, 0x62, 0x7e, 0xfe, 0xbe, 0x7b, 0xf3, 0xf9, 0xcd, 0x8f, 0x52, 0x39, 0xe8, 0xa3, 0xd8, - 0x7f, 0x5c, 0xea, 0xba, 0x10, 0xe8, 0x4e, 0xe8, 0x87, 0x76, 0x94, 0x5e, 0x80, 0x61, 0xa7, 0xd5, - 0xe2, 0x78, 0x2c, 0x8a, 0x36, 0x53, 0xfa, 0x69, 0xda, 0x04, 0xe2, 0x34, 0x6e, 0x4f, 0x36, 0xcd, - 0x9f, 0x58, 0x50, 0xc3, 0x64, 0x83, 0x4b, 0x23, 0x74, 0x53, 0x0c, 0x91, 0x55, 0x44, 0x9d, 0x5b, - 0x3a, 0xb0, 0xb1, 0xc7, 0xea, 0xbf, 0xe6, 0x0d, 0x76, 0xe7, 0x55, 0x64, 0xa5, 0x43, 0x5d, 0x45, - 0xa6, 0x2e, 0xa3, 0x2a, 0x77, 0xbf, 0x8c, 0xca, 0xfe, 0xee, 0x00, 0x7d, 0xbd, 0x56, 0x38, 0x1b, - 0x91, 0x7a, 0x4c, 0xbf, 0x6f, 0x3b, 0xf2, 0xc5, 0x24, 0x51, 0xdf, 0xf7, 0x1a, 0x5e, 0xc4, 0xb4, - 0x3d, 0x75, 0x40, 0x56, 0x3a, 0x54, 0xe1, 0x9b, 0xf2, 0x81, 0x85, 0x6f, 0x5e, 0x80, 0xe1, 0x38, - 0xde, 0x5c, 0x89, 0xbc, 0x6d, 0x27, 0x21, 0x57, 0xc8, 0xae, 0xb0, 0x7d, 0x75, 0x11, 0x88, 0xd5, - 0x4b, 0x1a, 0x88, 0xd3, 0xb8, 0x68, 0x1e, 0xc6, 0x74, 0xf9, 0x19, 0x12, 0x25, 0x2c, 0xe7, 0x82, - 0xcf, 0x04, 0x95, 0xf1, 0xad, 0x0b, 0xd6, 0x08, 0x04, 0xdc, 0xf9, 0x0c, 0x95, 0xa7, 0xa9, 0x46, - 0xda, 0x91, 0xfe, 0xb4, 0x3c, 0x4d, 0xd1, 0xa1, 0x7d, 0xe9, 0x78, 0x02, 0x2d, 0xc1, 0x49, 0x3e, - 0x31, 0xa6, 0x5b, 0x2d, 0xe3, 0x8d, 0x06, 0xd2, 0xf5, 0x45, 0xe7, 0x3b, 0x51, 0x70, 0xde, 0x73, - 0xe8, 0x39, 0x18, 0x54, 0xcd, 0x0b, 0x73, 0xe2, 0x6c, 0x47, 0xf9, 0x96, 0x14, 0x99, 0x85, 0x3a, - 0x36, 0xf1, 0xd0, 0xfb, 0xe1, 0x61, 0xfd, 0x97, 0x27, 0xe6, 0xf1, 0x03, 0xcf, 0x39, 0x51, 0xd9, - 0x4b, 0x5d, 0x7d, 0x34, 0x9f, 0x8b, 0x56, 0xc7, 0xdd, 0x9e, 0x47, 0xeb, 0x70, 0x46, 0x81, 0x2e, - 0x04, 0x09, 0xcb, 0xb2, 0x89, 0xc9, 0x8c, 0x13, 0x93, 0x6b, 0x91, 0x2f, 0xae, 0xd0, 0x56, 0xb7, - 0xe3, 0xce, 0x7b, 0xc9, 0xa5, 0x3c, 0x4c, 0xbc, 0x88, 0xf7, 0xa1, 0x82, 0xa6, 0xa0, 0x46, 0x02, - 0x67, 0xdd, 0x27, 0xcb, 0xb3, 0x0b, 0xac, 0x42, 0x98, 0x71, 0xbe, 0x7a, 0x41, 0x02, 0xb0, 0xc6, - 0x51, 0x71, 0xbf, 0x43, 0x5d, 0x6f, 0x6a, 0x5e, 0x81, 0x53, 0x0d, 0xb7, 0x45, 0x2d, 0x42, 0xcf, - 0x25, 0xd3, 0x2e, 0x0b, 0x73, 0xa4, 0x1f, 0x86, 0x17, 0x7e, 0x55, 0x41, 0xed, 0xf3, 0xb3, 0x2b, - 0x1d, 0x38, 0x38, 0xf7, 0x49, 0x16, 0x0e, 0x1b, 0x85, 0x3b, 0xbb, 0xe3, 0x27, 0x33, 0xe1, 0xb0, - 0xb4, 0x11, 0x73, 0x18, 0xba, 0x0c, 0x88, 0x65, 0x48, 0x5c, 0x4a, 0x92, 0x96, 0x32, 0x41, 0xc7, - 0x4f, 0xa5, 0xeb, 0xfc, 0x5c, 0xec, 0xc0, 0xc0, 0x39, 0x4f, 0x51, 0x8b, 0x26, 0x08, 0x19, 0xf5, - 0xf1, 0x87, 0xd3, 0x16, 0xcd, 0x55, 0xde, 0x8c, 0x25, 0xdc, 0xfe, 0xcf, 0x16, 0x0c, 0xab, 0xa5, - 0x7d, 0x0f, 0xd2, 0x89, 0xfc, 0x74, 0x3a, 0xd1, 0xfc, 0xd1, 0x85, 0x23, 0xeb, 0x79, 0x97, 0x98, - 0xf4, 0x6f, 0x0c, 0x02, 0x68, 0x01, 0xaa, 0x74, 0x97, 0xd5, 0x55, 0x77, 0x3d, 0xb0, 0xc2, 0x2b, - 0xaf, 0x22, 0x4f, 0xe5, 0xfe, 0x56, 0xe4, 0x59, 0x85, 0xd3, 0xd2, 0xb2, 0xe0, 0x87, 0x7d, 0x97, - 0xc2, 0x58, 0xc9, 0xc2, 0xea, 0xcc, 0xa3, 0x82, 0xd0, 0xe9, 0x85, 0x3c, 0x24, 0x9c, 0xff, 0x6c, - 0xca, 0xa0, 0x19, 0x38, 0xd0, 0xca, 0x54, 0xcb, 0x7f, 0x71, 0x43, 0x5e, 0x21, 0x94, 0x59, 0xfe, - 0x8b, 0x17, 0x57, 0xb1, 0xc6, 0xc9, 0xd7, 0x01, 0xb5, 0x82, 0x74, 0x00, 0x1c, 0x5a, 0x07, 0x48, - 0x69, 0x34, 0xd8, 0x55, 0x1a, 0xc9, 0x43, 0x85, 0xa1, 0xae, 0x87, 0x0a, 0xef, 0x81, 0x11, 0x2f, - 0xd8, 0x24, 0x91, 0x97, 0x90, 0x3a, 0x5b, 0x0b, 0x4c, 0x52, 0x55, 0xb5, 0x05, 0xb0, 0x90, 0x82, - 0xe2, 0x0c, 0x76, 0x5a, 0x84, 0x8e, 0xf4, 0x20, 0x42, 0xbb, 0x28, 0xae, 0xd1, 0x62, 0x14, 0xd7, - 0x89, 0xa3, 0x2b, 0xae, 0xb1, 0x63, 0x55, 0x5c, 0xa8, 0x10, 0xc5, 0xd5, 0x93, 0x4e, 0x30, 0x76, - 0xa6, 0xa7, 0x0e, 0xd8, 0x99, 0x76, 0xd3, 0x5a, 0xa7, 0xef, 0x5a, 0x6b, 0xe5, 0x2b, 0xa4, 0x87, - 0x8e, 0x5b, 0x21, 0x7d, 0xba, 0x04, 0xa7, 0xb5, 0xc8, 0xa6, 0x0b, 0xc5, 0xdb, 0xa0, 0x42, 0x8b, - 0x5d, 0x58, 0xc7, 0xcf, 0xe8, 0x8c, 0x44, 0x38, 0x9d, 0x53, 0xa7, 0x20, 0xd8, 0xc0, 0x62, 0xf9, - 0x64, 0x24, 0x62, 0xd5, 0xaf, 0xb3, 0xf2, 0x7c, 0x56, 0xb4, 0x63, 0x85, 0x41, 0xa7, 0x22, 0xfd, - 0x2d, 0x72, 0x74, 0xb3, 0x75, 0x15, 0x67, 0x35, 0x08, 0x9b, 0x78, 0xe8, 0x49, 0xce, 0x84, 0xc9, - 0x12, 0x2a, 0xd3, 0x87, 0xc4, 0xad, 0xe0, 0x52, 0x7c, 0x28, 0xa8, 0xec, 0x0e, 0x4b, 0x1c, 0xac, - 0x74, 0x76, 0x87, 0x85, 0xbb, 0x29, 0x0c, 0xfb, 0x7f, 0x5a, 0xf0, 0x48, 0xee, 0x50, 0xdc, 0x03, - 0x3d, 0xbd, 0x93, 0xd6, 0xd3, 0xab, 0x45, 0x6d, 0x62, 0x8c, 0xb7, 0xe8, 0xa2, 0xb3, 0xff, 0xa3, - 0x05, 0x23, 0x1a, 0xff, 0x1e, 0xbc, 0xaa, 0x97, 0x7e, 0xd5, 0xe2, 0xf6, 0x6b, 0xb5, 0x8e, 0x77, - 0xfb, 0xbd, 0x12, 0xa8, 0x5a, 0xa7, 0xd3, 0xae, 0xac, 0x24, 0x7d, 0xc0, 0xa9, 0xf1, 0x2e, 0xf4, - 0xb3, 0x43, 0xef, 0xb8, 0x98, 0x80, 0x9e, 0x34, 0x7f, 0x76, 0x80, 0xae, 0x03, 0x0a, 0xd8, 0xdf, - 0x18, 0x0b, 0x86, 0xac, 0x36, 0x3b, 0x2f, 0x23, 0x59, 0x17, 0x29, 0x78, 0xba, 0x36, 0xbb, 0x68, - 0xc7, 0x0a, 0x83, 0x6a, 0x12, 0xcf, 0x0d, 0x83, 0x59, 0xdf, 0x89, 0xe5, 0x8d, 0xb3, 0x4a, 0x93, - 0x2c, 0x48, 0x00, 0xd6, 0x38, 0xec, 0x3c, 0xdc, 0x8b, 0x5b, 0xbe, 0xb3, 0x6b, 0xec, 0xca, 0x8d, - 0x5a, 0x14, 0x0a, 0x84, 0x4d, 0x3c, 0xbb, 0x09, 0xe3, 0xe9, 0x97, 0x98, 0x23, 0x1b, 0x2c, 0x18, - 0xb5, 0xa7, 0xe1, 0x9c, 0x82, 0x9a, 0xc3, 0x9e, 0x5a, 0x6c, 0x3b, 0x42, 0x26, 0xe8, 0x90, 0x4c, - 0x09, 0xc0, 0x1a, 0xc7, 0xfe, 0x47, 0x16, 0x9c, 0xcc, 0x19, 0xb4, 0x02, 0x53, 0x1c, 0x13, 0x2d, - 0x6d, 0xf2, 0x6c, 0x80, 0x1f, 0x83, 0x81, 0x3a, 0xd9, 0x70, 0x64, 0xb8, 0xa3, 0x21, 0x3d, 0xe7, - 0x78, 0x33, 0x96, 0x70, 0xfb, 0xb7, 0x4a, 0x30, 0x9a, 0xee, 0x6b, 0xcc, 0xd2, 0x86, 0xf8, 0x30, - 0x79, 0xb1, 0x1b, 0x6e, 0x93, 0x68, 0x97, 0xbe, 0xb9, 0x95, 0x49, 0x1b, 0xea, 0xc0, 0xc0, 0x39, - 0x4f, 0xb1, 0x4a, 0xc7, 0x75, 0x35, 0xda, 0x72, 0x46, 0x5e, 0x2f, 0x72, 0x46, 0xea, 0x8f, 0x69, - 0x86, 0x46, 0x28, 0x96, 0xd8, 0xe4, 0x4f, 0x6d, 0x11, 0x16, 0x87, 0x3d, 0xd3, 0xf6, 0xfc, 0xc4, - 0x0b, 0xc4, 0x2b, 0x8b, 0xb9, 0xaa, 0x6c, 0x91, 0xa5, 0x4e, 0x14, 0x9c, 0xf7, 0x9c, 0xfd, 0xbd, - 0x3e, 0x50, 0x29, 0xd5, 0x2c, 0x74, 0xad, 0xa0, 0xc0, 0xbf, 0xc3, 0x26, 0x9f, 0xa9, 0xb9, 0xd5, - 0xb7, 0x5f, 0x2c, 0x09, 0x77, 0xe5, 0x98, 0xfe, 0x5c, 0x35, 0x60, 0x6b, 0x1a, 0x84, 0x4d, 0x3c, - 0xda, 0x13, 0xdf, 0xdb, 0x26, 0xfc, 0xa1, 0xfe, 0x74, 0x4f, 0x16, 0x25, 0x00, 0x6b, 0x1c, 0xda, - 0x93, 0xba, 0xb7, 0xb1, 0x21, 0xfc, 0x12, 0xaa, 0x27, 0x74, 0x74, 0x30, 0x83, 0xf0, 0x5a, 0xf8, - 0xe1, 0x96, 0xb0, 0xbf, 0x8d, 0x5a, 0xf8, 0xe1, 0x16, 0x66, 0x10, 0xfa, 0x95, 0x82, 0x30, 0x6a, - 0x3a, 0xbe, 0xf7, 0x1a, 0xa9, 0x2b, 0x2e, 0xc2, 0xee, 0x56, 0x5f, 0xe9, 0x6a, 0x27, 0x0a, 0xce, - 0x7b, 0x8e, 0x4e, 0xe8, 0x56, 0x44, 0xea, 0x9e, 0x9b, 0x98, 0xd4, 0x20, 0x3d, 0xa1, 0x57, 0x3a, - 0x30, 0x70, 0xce, 0x53, 0x68, 0x1a, 0x46, 0x65, 0x4a, 0xbc, 0x2c, 0x78, 0x34, 0x98, 0x2e, 0xb0, - 0x82, 0xd3, 0x60, 0x9c, 0xc5, 0xa7, 0x42, 0xb2, 0x29, 0x6a, 0xa2, 0x31, 0x33, 0xdd, 0x10, 0x92, - 0xb2, 0x56, 0x1a, 0x56, 0x18, 0xf6, 0xc7, 0xcb, 0x54, 0xa9, 0x77, 0x29, 0x3d, 0x78, 0xcf, 0x02, - 0x4d, 0xd3, 0x33, 0xb2, 0xaf, 0x87, 0x19, 0xf9, 0x2c, 0x0c, 0xdd, 0x8c, 0xc3, 0x40, 0x05, 0x71, - 0x56, 0xba, 0x06, 0x71, 0x1a, 0x58, 0xf9, 0x41, 0x9c, 0xfd, 0x45, 0x05, 0x71, 0x0e, 0xdc, 0x65, - 0x10, 0xe7, 0x1f, 0x54, 0x40, 0xdd, 0x2b, 0x74, 0x95, 0x24, 0xb7, 0xc2, 0x68, 0xcb, 0x0b, 0x1a, - 0xac, 0x94, 0xc0, 0x57, 0x2d, 0x18, 0xe2, 0xeb, 0x65, 0xd1, 0x4c, 0xc2, 0xdb, 0x28, 0xe8, 0xc2, - 0x9a, 0x14, 0xb3, 0xc9, 0x35, 0x83, 0x51, 0xe6, 0xce, 0x61, 0x13, 0x84, 0x53, 0x3d, 0x42, 0x1f, - 0x01, 0x90, 0x4e, 0xdc, 0x0d, 0x29, 0x81, 0x17, 0x8a, 0xe9, 0x1f, 0x26, 0x1b, 0xda, 0xa4, 0x5e, - 0x53, 0x4c, 0xb0, 0xc1, 0x10, 0x7d, 0x5a, 0x27, 0x28, 0xf2, 0x6c, 0x8f, 0x0f, 0x1d, 0xcb, 0xd8, - 0xf4, 0x92, 0x9e, 0x88, 0x61, 0xc0, 0x0b, 0x1a, 0x74, 0x9e, 0x88, 0x60, 0xb7, 0xb7, 0xe7, 0x95, - 0xe1, 0x58, 0x0c, 0x9d, 0xfa, 0x8c, 0xe3, 0x3b, 0x81, 0x4b, 0xa2, 0x05, 0x8e, 0xae, 0x35, 0xa8, - 0x68, 0xc0, 0x92, 0x50, 0xc7, 0x8d, 0x4c, 0x95, 0x5e, 0x6e, 0x64, 0x3a, 0xf3, 0x5e, 0x18, 0xeb, - 0xf8, 0x98, 0x87, 0xca, 0x46, 0xbc, 0xfb, 0x44, 0x46, 0xfb, 0xb7, 0xfb, 0xb5, 0xd2, 0xba, 0x1a, - 0xd6, 0xf9, 0x05, 0x3f, 0x91, 0xfe, 0xa2, 0xc2, 0x64, 0x2e, 0x70, 0x8a, 0x28, 0x35, 0x63, 0x34, - 0x62, 0x93, 0x25, 0x9d, 0xa3, 0x2d, 0x27, 0x22, 0xc1, 0x71, 0xcf, 0xd1, 0x15, 0xc5, 0x04, 0x1b, - 0x0c, 0xd1, 0x66, 0x2a, 0x1d, 0xe9, 0xe2, 0xd1, 0xd3, 0x91, 0x58, 0x81, 0xb2, 0xbc, 0x7b, 0x30, - 0xbe, 0x60, 0xc1, 0x48, 0x90, 0x9a, 0xb9, 0xc5, 0x44, 0x20, 0xe7, 0xaf, 0x0a, 0x7e, 0x2d, 0x5d, - 0xba, 0x0d, 0x67, 0xf8, 0xe7, 0xa9, 0xb4, 0xca, 0x21, 0x55, 0x9a, 0xbe, 0x60, 0xac, 0xbf, 0xdb, - 0x05, 0x63, 0x28, 0x50, 0x37, 0x2c, 0x0e, 0x14, 0x7e, 0xc3, 0x22, 0xe4, 0xdc, 0xae, 0x78, 0x03, - 0x6a, 0x6e, 0x44, 0x9c, 0xe4, 0x2e, 0x2f, 0xdb, 0x63, 0xb1, 0x1d, 0xb3, 0x92, 0x00, 0xd6, 0xb4, - 0xec, 0xff, 0xd3, 0x07, 0x27, 0xe4, 0x88, 0xc8, 0xec, 0x05, 0xaa, 0x1f, 0x39, 0x5f, 0x6d, 0x2b, - 0x2b, 0xfd, 0x78, 0x49, 0x02, 0xb0, 0xc6, 0xa1, 0xf6, 0x58, 0x3b, 0x26, 0xcb, 0x2d, 0x12, 0x2c, - 0x7a, 0xeb, 0xb1, 0x38, 0x8c, 0x55, 0x0b, 0xe5, 0x9a, 0x06, 0x61, 0x13, 0x8f, 0xda, 0xf6, 0x8e, - 0x61, 0xb4, 0x1a, 0xb6, 0xbd, 0x34, 0x54, 0x25, 0x1c, 0xfd, 0x72, 0x6e, 0x2d, 0xe4, 0x62, 0x72, - 0xfe, 0x3a, 0x92, 0x36, 0x0e, 0x79, 0x3f, 0xeb, 0xdf, 0xb7, 0xe0, 0x34, 0x6f, 0x95, 0x23, 0x79, - 0xad, 0x55, 0x77, 0x12, 0x12, 0x17, 0x73, 0x87, 0x42, 0x4e, 0xff, 0xb4, 0x7b, 0x39, 0x8f, 0x2d, - 0xce, 0xef, 0x0d, 0x7a, 0xdd, 0x82, 0xd1, 0xad, 0x54, 0xb9, 0x18, 0xa9, 0x3a, 0x8e, 0x5a, 0xc9, - 0x21, 0x45, 0x54, 0x2f, 0xb5, 0x74, 0x7b, 0x8c, 0xb3, 0xdc, 0xed, 0xff, 0x61, 0x81, 0x29, 0x46, - 0xef, 0x7d, 0x95, 0x99, 0xc3, 0x9b, 0x82, 0xd2, 0xba, 0xac, 0x74, 0xb5, 0x2e, 0x1f, 0x85, 0x72, - 0xdb, 0xab, 0x8b, 0xfd, 0x85, 0x3e, 0x22, 0x5e, 0x98, 0xc3, 0xb4, 0xdd, 0xfe, 0x97, 0x15, 0xed, - 0x06, 0x11, 0x29, 0x75, 0x3f, 0x14, 0xaf, 0xbd, 0xa1, 0xea, 0xd4, 0xf1, 0x37, 0xbf, 0xda, 0x51, - 0xa7, 0xee, 0xa7, 0x0e, 0x9f, 0x31, 0xc9, 0x07, 0xa8, 0x5b, 0x99, 0xba, 0x81, 0x03, 0xd2, 0x25, - 0x6f, 0x42, 0x95, 0x6e, 0xc1, 0x98, 0x3f, 0xb3, 0x9a, 0xea, 0x54, 0xf5, 0x92, 0x68, 0xbf, 0xb3, - 0x37, 0xf1, 0xae, 0xc3, 0x77, 0x4b, 0x3e, 0x8d, 0x15, 0x7d, 0x14, 0x43, 0x8d, 0xfe, 0x66, 0x99, - 0x9d, 0x62, 0x73, 0x77, 0x4d, 0xc9, 0x4c, 0x09, 0x28, 0x24, 0x6d, 0x54, 0xf3, 0x41, 0x01, 0xd4, - 0xd8, 0x55, 0xd6, 0x8c, 0x29, 0xdf, 0x03, 0xae, 0xa8, 0xfc, 0x4a, 0x09, 0xb8, 0xb3, 0x37, 0xf1, - 0xc2, 0xe1, 0x99, 0xaa, 0xc7, 0xb1, 0x66, 0x61, 0xff, 0x75, 0x9f, 0x9e, 0xbb, 0xa2, 0x3c, 0xe1, - 0x0f, 0xc5, 0xdc, 0x7d, 0x3e, 0x33, 0x77, 0xcf, 0x75, 0xcc, 0xdd, 0x11, 0x7d, 0xe5, 0x72, 0x6a, - 0x36, 0xde, 0x6b, 0x43, 0xe0, 0x60, 0x7f, 0x03, 0xb3, 0x80, 0x5e, 0x6d, 0x7b, 0x11, 0x89, 0x57, - 0xa2, 0x76, 0xe0, 0x05, 0x0d, 0x36, 0x1d, 0xab, 0xa6, 0x05, 0x94, 0x02, 0xe3, 0x2c, 0x3e, 0xdd, - 0xd4, 0xd3, 0x6f, 0x7e, 0xc3, 0xd9, 0xe6, 0xb3, 0xca, 0xa8, 0xd8, 0xb6, 0x2a, 0xda, 0xb1, 0xc2, - 0x40, 0x9b, 0x70, 0x56, 0x12, 0x98, 0x23, 0x3e, 0x11, 0x77, 0x26, 0x6f, 0x78, 0x51, 0x93, 0x07, - 0x88, 0xf3, 0xc8, 0x84, 0xb7, 0x09, 0x0a, 0x67, 0xf1, 0x3e, 0xb8, 0x78, 0x5f, 0x4a, 0xf6, 0xd7, - 0xd9, 0x79, 0xbd, 0x91, 0xbc, 0x4e, 0x67, 0x9f, 0xcf, 0x6e, 0x29, 0xe7, 0x85, 0xe5, 0xd4, 0xec, - 0xe3, 0x57, 0x93, 0x73, 0x18, 0xba, 0x05, 0x03, 0xeb, 0xfc, 0xbe, 0xcd, 0x62, 0x6a, 0xfb, 0x8b, - 0xcb, 0x3b, 0xd9, 0x4d, 0x46, 0xf2, 0x26, 0xcf, 0x3b, 0xfa, 0x27, 0x96, 0xdc, 0xec, 0x6f, 0x55, - 0x60, 0x34, 0x73, 0x8f, 0x75, 0xaa, 0xa4, 0x6f, 0xe9, 0xc0, 0x92, 0xbe, 0x1f, 0x04, 0xa8, 0x93, - 0x96, 0x1f, 0xee, 0x32, 0xc3, 0xaf, 0xef, 0xd0, 0x86, 0x9f, 0xda, 0x2b, 0xcc, 0x29, 0x2a, 0xd8, - 0xa0, 0x28, 0xaa, 0xe9, 0xf1, 0x0a, 0xc1, 0x99, 0x6a, 0x7a, 0xc6, 0x0d, 0x20, 0xfd, 0xf7, 0xf6, - 0x06, 0x10, 0x0f, 0x46, 0x79, 0x17, 0x55, 0x8a, 0xf8, 0x5d, 0x64, 0x82, 0xb3, 0x24, 0x9b, 0xb9, - 0x34, 0x19, 0x9c, 0xa5, 0x7b, 0x3f, 0xaf, 0xa9, 0x47, 0xef, 0x80, 0x9a, 0xfc, 0xce, 0xf1, 0x78, - 0x4d, 0x97, 0xd9, 0x90, 0xd3, 0x80, 0x5d, 0x1f, 0x2f, 0x7e, 0x76, 0x54, 0xbb, 0x80, 0xfb, 0x55, - 0xed, 0xc2, 0xfe, 0x7c, 0x89, 0xee, 0x18, 0x78, 0xbf, 0x54, 0xe1, 0xa6, 0x27, 0xa0, 0xdf, 0x69, - 0x27, 0x9b, 0x61, 0xc7, 0x8d, 0x9d, 0xd3, 0xac, 0x15, 0x0b, 0x28, 0x5a, 0x84, 0xbe, 0xba, 0x2e, - 0xc6, 0x73, 0x98, 0xef, 0xa9, 0x9d, 0xaf, 0x4e, 0x42, 0x30, 0xa3, 0x82, 0xce, 0x42, 0x5f, 0xe2, - 0x34, 0x64, 0x5e, 0x20, 0xcb, 0x05, 0x5f, 0x73, 0x1a, 0x31, 0x66, 0xad, 0xa6, 0xa1, 0xd0, 0x77, - 0x80, 0xa1, 0xf0, 0x02, 0x0c, 0xc7, 0x5e, 0x23, 0x70, 0x92, 0x76, 0x44, 0x8c, 0xf3, 0x49, 0x1d, - 0x9d, 0x62, 0x02, 0x71, 0x1a, 0xd7, 0xfe, 0x9d, 0x21, 0x38, 0xb5, 0x3a, 0xbb, 0x24, 0x4b, 0xcc, - 0x1f, 0x5b, 0x6a, 0x5f, 0x1e, 0x8f, 0x7b, 0x97, 0xda, 0xd7, 0x85, 0xbb, 0x6f, 0xa4, 0xf6, 0xf9, - 0x46, 0x6a, 0x5f, 0x3a, 0xcf, 0xaa, 0x5c, 0x44, 0x9e, 0x55, 0x5e, 0x0f, 0x7a, 0xc9, 0xb3, 0x3a, - 0xb6, 0x5c, 0xbf, 0x7d, 0x3b, 0x74, 0xa8, 0x5c, 0x3f, 0x95, 0x08, 0x59, 0x48, 0x06, 0x4c, 0x97, - 0x4f, 0x95, 0x9b, 0x08, 0xa9, 0x92, 0xd0, 0x78, 0x76, 0x97, 0x10, 0xf5, 0x2f, 0x17, 0xdf, 0x81, - 0x1e, 0x92, 0xd0, 0x44, 0x82, 0x99, 0x99, 0xf8, 0x38, 0x50, 0x44, 0xe2, 0x63, 0x5e, 0x77, 0x0e, - 0x4c, 0x7c, 0x7c, 0x01, 0x86, 0x5d, 0x3f, 0x0c, 0xc8, 0x4a, 0x14, 0x26, 0xa1, 0x1b, 0xca, 0x3b, - 0x03, 0xf5, 0x95, 0x37, 0x26, 0x10, 0xa7, 0x71, 0xbb, 0x65, 0x4d, 0xd6, 0x8e, 0x9a, 0x35, 0x09, - 0xf7, 0x29, 0x6b, 0xf2, 0x17, 0x74, 0x7e, 0xff, 0x20, 0xfb, 0x22, 0x1f, 0x2c, 0xfe, 0x8b, 0xf4, - 0x74, 0x29, 0xe0, 0x1b, 0xfc, 0xca, 0x4c, 0x6a, 0x82, 0xcf, 0x86, 0x4d, 0x6a, 0xf8, 0x0d, 0xb1, - 0x21, 0x79, 0xe5, 0x18, 0x26, 0xec, 0x8d, 0x55, 0xcd, 0x46, 0x5d, 0xa3, 0xa9, 0x9b, 0x70, 0xba, - 0x23, 0x47, 0xa9, 0x3f, 0xf0, 0xe5, 0x12, 0xfc, 0xc8, 0x81, 0x5d, 0x40, 0xb7, 0x00, 0x12, 0xa7, - 0x21, 0x26, 0xaa, 0x38, 0x9a, 0x39, 0x62, 0x08, 0xe9, 0x9a, 0xa4, 0xc7, 0x0b, 0xe7, 0xa8, 0xbf, - 0xec, 0xd0, 0x43, 0xfe, 0x66, 0x91, 0xa3, 0xa1, 0xdf, 0x51, 0x5f, 0x14, 0x87, 0x3e, 0xc1, 0x0c, - 0x42, 0xd5, 0x7f, 0x44, 0x1a, 0xfa, 0xbe, 0x79, 0xf5, 0xf9, 0x30, 0x6b, 0xc5, 0x02, 0x8a, 0x9e, - 0x83, 0x41, 0xc7, 0xf7, 0x79, 0x7a, 0x12, 0x89, 0xc5, 0x5d, 0x54, 0xba, 0xd0, 0xa1, 0x06, 0x61, - 0x13, 0xcf, 0xfe, 0xcb, 0x12, 0x4c, 0x1c, 0x20, 0x53, 0x3a, 0xd2, 0x52, 0x2b, 0x3d, 0xa7, 0xa5, - 0x8a, 0x94, 0x8d, 0xfe, 0x2e, 0x29, 0x1b, 0xcf, 0xc1, 0x60, 0x42, 0x9c, 0xa6, 0x08, 0x3a, 0x13, - 0x3e, 0x07, 0x7d, 0xd6, 0xac, 0x41, 0xd8, 0xc4, 0xa3, 0x52, 0x6c, 0xc4, 0x71, 0x5d, 0x12, 0xc7, - 0x32, 0x27, 0x43, 0xf8, 0x6d, 0x0b, 0x4b, 0xf8, 0x60, 0xee, 0xf0, 0xe9, 0x14, 0x0b, 0x9c, 0x61, - 0x99, 0x1d, 0xf0, 0x5a, 0x8f, 0x03, 0xfe, 0xb5, 0x12, 0x3c, 0xba, 0xaf, 0x76, 0xeb, 0x39, 0x5d, - 0xa6, 0x1d, 0x93, 0x28, 0x3b, 0x71, 0xae, 0xc5, 0x24, 0xc2, 0x0c, 0xc2, 0x47, 0xa9, 0xd5, 0x32, - 0xee, 0xf3, 0x2f, 0x3a, 0x77, 0x8c, 0x8f, 0x52, 0x8a, 0x05, 0xce, 0xb0, 0xbc, 0xdb, 0x69, 0xf9, - 0xad, 0x3e, 0x78, 0xbc, 0x07, 0x1b, 0xa0, 0xc0, 0x1c, 0xbb, 0x74, 0x3e, 0x68, 0xf9, 0x3e, 0xe5, - 0x83, 0xde, 0xdd, 0x70, 0xbd, 0x99, 0x46, 0xda, 0x53, 0x2e, 0xdf, 0xd7, 0x4b, 0x70, 0xa6, 0xbb, - 0xc1, 0x82, 0xde, 0x0d, 0xa3, 0x91, 0x0a, 0xb2, 0x33, 0x53, 0x49, 0x4f, 0x72, 0xcf, 0x4e, 0x0a, - 0x84, 0xb3, 0xb8, 0x68, 0x12, 0xa0, 0xe5, 0x24, 0x9b, 0xf1, 0x85, 0x1d, 0x2f, 0x4e, 0x44, 0x41, - 0xa9, 0x11, 0x7e, 0x96, 0x28, 0x5b, 0xb1, 0x81, 0x41, 0xd9, 0xb1, 0x7f, 0x73, 0xe1, 0xd5, 0x30, - 0xe1, 0x0f, 0xf1, 0xcd, 0xd6, 0x49, 0x79, 0xfd, 0x8e, 0x01, 0xc2, 0x59, 0x5c, 0xca, 0x8e, 0x9d, - 0x56, 0xf3, 0x8e, 0xf2, 0x5d, 0x18, 0x63, 0xb7, 0xa8, 0x5a, 0xb1, 0x81, 0x91, 0x4d, 0x92, 0xad, - 0x1c, 0x9c, 0x24, 0x6b, 0xff, 0x8b, 0x12, 0x3c, 0xd2, 0xd5, 0xe0, 0xed, 0x4d, 0x4c, 0x3d, 0x78, - 0x89, 0xad, 0x77, 0xb9, 0xc2, 0x0e, 0x97, 0x10, 0xf9, 0x27, 0x5d, 0x66, 0x9a, 0x48, 0x88, 0xbc, - 0xfb, 0x3a, 0x0f, 0x0f, 0xde, 0x78, 0x76, 0xe4, 0x40, 0xf6, 0x1d, 0x22, 0x07, 0x32, 0xf3, 0x31, - 0x2a, 0x3d, 0x6a, 0x87, 0x3f, 0xeb, 0xeb, 0x3a, 0xbc, 0x74, 0x83, 0xdc, 0x93, 0xdf, 0x7c, 0x0e, - 0x4e, 0x78, 0x01, 0xbb, 0x8a, 0x6d, 0xb5, 0xbd, 0x2e, 0x6a, 0x0c, 0xf1, 0x42, 0x9a, 0x2a, 0xd1, - 0x62, 0x21, 0x03, 0xc7, 0x1d, 0x4f, 0x3c, 0x80, 0x39, 0xa9, 0x77, 0x37, 0xa4, 0x87, 0x94, 0xdc, - 0xcb, 0x70, 0x5a, 0x0e, 0xc5, 0xa6, 0x13, 0x91, 0xba, 0x50, 0xb6, 0xb1, 0x48, 0xad, 0x79, 0x84, - 0xa7, 0xe7, 0xe4, 0x20, 0xe0, 0xfc, 0xe7, 0xd8, 0xed, 0x57, 0x61, 0xcb, 0x73, 0xc5, 0x56, 0x50, - 0xdf, 0x7e, 0x45, 0x1b, 0x31, 0x87, 0x69, 0x7d, 0x51, 0xbb, 0x37, 0xfa, 0xe2, 0x83, 0x50, 0x53, - 0xe3, 0xcd, 0xb3, 0x04, 0xd4, 0x24, 0xef, 0xc8, 0x12, 0x50, 0x33, 0xdc, 0xc0, 0x3a, 0xe8, 0x7a, - 0xd6, 0x9f, 0x80, 0x21, 0xe5, 0xfd, 0xea, 0xf5, 0x0e, 0x32, 0xfb, 0xcf, 0xfb, 0x61, 0x38, 0x55, - 0x57, 0x34, 0xe5, 0xf6, 0xb6, 0x0e, 0x74, 0x7b, 0xb3, 0x04, 0x91, 0x76, 0x20, 0x2f, 0x28, 0x34, - 0x12, 0x44, 0xda, 0x01, 0xc1, 0x1c, 0x46, 0x37, 0x1d, 0xf5, 0x68, 0x17, 0xb7, 0x03, 0x11, 0xf1, - 0xaa, 0x36, 0x1d, 0x73, 0xac, 0x15, 0x0b, 0x28, 0xfa, 0x98, 0x05, 0x43, 0x31, 0x3b, 0xbd, 0xe1, - 0x87, 0x06, 0x62, 0x92, 0x5f, 0x3e, 0x7a, 0xd9, 0x54, 0x55, 0x43, 0x97, 0x45, 0x48, 0x99, 0x2d, - 0x38, 0xc5, 0x11, 0x7d, 0xd2, 0x82, 0x9a, 0xba, 0x47, 0x49, 0xdc, 0x36, 0xba, 0x5a, 0x6c, 0xd9, - 0x56, 0xee, 0x6d, 0x56, 0x07, 0x61, 0xaa, 0x7e, 0x26, 0xd6, 0x8c, 0x51, 0xac, 0x3c, 0xfa, 0x03, - 0xc7, 0xe3, 0xd1, 0x87, 0x1c, 0x6f, 0xfe, 0x3b, 0xa0, 0xd6, 0x74, 0x02, 0x6f, 0x83, 0xc4, 0x09, - 0x77, 0xb2, 0xcb, 0x6a, 0xd2, 0xb2, 0x11, 0x6b, 0x38, 0x35, 0x00, 0x62, 0xf6, 0x62, 0x89, 0xe1, - 0x15, 0x67, 0x06, 0xc0, 0xaa, 0x6e, 0xc6, 0x26, 0x8e, 0xe9, 0xc2, 0x87, 0xfb, 0xea, 0xc2, 0x1f, - 0x3c, 0xc0, 0x85, 0xbf, 0x0a, 0xa7, 0x9d, 0x76, 0x12, 0x5e, 0x22, 0x8e, 0x3f, 0xcd, 0xaf, 0x0e, - 0x16, 0x57, 0xe1, 0x0f, 0x31, 0xb7, 0x90, 0x8a, 0xe9, 0x58, 0x25, 0xfe, 0x46, 0x07, 0x12, 0xce, - 0x7f, 0xd6, 0xfe, 0xa7, 0x16, 0x9c, 0xce, 0x9d, 0x0a, 0x0f, 0x6e, 0x34, 0xad, 0xfd, 0xa5, 0x0a, - 0x9c, 0xcc, 0xa9, 0x3a, 0x8c, 0x76, 0xcd, 0x45, 0x62, 0x15, 0x11, 0x98, 0x92, 0x8e, 0xb3, 0x90, - 0xdf, 0x26, 0x67, 0x65, 0x1c, 0xee, 0x54, 0x4e, 0x9f, 0x8c, 0x95, 0xef, 0xed, 0xc9, 0x98, 0x31, - 0xd7, 0xfb, 0xee, 0xeb, 0x5c, 0xaf, 0x1c, 0x30, 0xd7, 0xbf, 0x61, 0xc1, 0x78, 0xb3, 0xcb, 0x55, - 0x17, 0xc2, 0xc7, 0x7c, 0xfd, 0x78, 0x2e, 0xd2, 0x98, 0x39, 0x7b, 0x7b, 0x6f, 0xa2, 0xeb, 0x0d, - 0x23, 0xb8, 0x6b, 0xaf, 0xec, 0xef, 0x95, 0x81, 0x95, 0xbc, 0x66, 0x95, 0x25, 0x77, 0xd1, 0x47, - 0xcd, 0xe2, 0xe5, 0x56, 0x51, 0x85, 0xb6, 0x39, 0x71, 0x55, 0xfc, 0x9c, 0x8f, 0x60, 0x5e, 0x2d, - 0xf4, 0xac, 0x24, 0x2c, 0xf5, 0x20, 0x09, 0x7d, 0x59, 0x25, 0xbe, 0x5c, 0x7c, 0x95, 0xf8, 0x5a, - 0xb6, 0x42, 0xfc, 0xfe, 0x9f, 0xb8, 0xef, 0x81, 0xfc, 0xc4, 0xbf, 0x62, 0x71, 0xc1, 0x93, 0xf9, - 0x0a, 0xda, 0xdc, 0xb0, 0xf6, 0x31, 0x37, 0x9e, 0x82, 0x6a, 0x2c, 0x24, 0xb3, 0x30, 0x4b, 0x74, - 0x50, 0x84, 0x68, 0xc7, 0x0a, 0x83, 0x5d, 0x23, 0xed, 0xfb, 0xe1, 0xad, 0x0b, 0xcd, 0x56, 0xb2, - 0x2b, 0x0c, 0x14, 0x7d, 0x8d, 0xb4, 0x82, 0x60, 0x03, 0xcb, 0xfe, 0x7b, 0x25, 0x3e, 0x03, 0x45, - 0x64, 0xcd, 0xf3, 0x99, 0x8b, 0x3f, 0x7b, 0x0f, 0x4a, 0xf9, 0x30, 0x80, 0x1b, 0x36, 0x5b, 0xd4, - 0x78, 0x5d, 0x0b, 0xc5, 0xf1, 0xdf, 0xa5, 0xa3, 0x1a, 0xa2, 0x92, 0x9e, 0x7e, 0x0d, 0xdd, 0x86, - 0x0d, 0x7e, 0x29, 0x59, 0x5a, 0x3e, 0x50, 0x96, 0xa6, 0xc4, 0x4a, 0xdf, 0xfe, 0x62, 0xc5, 0xfe, - 0x4b, 0x0b, 0x52, 0x66, 0x16, 0x6a, 0x41, 0x85, 0x76, 0x77, 0x57, 0xac, 0xd0, 0xe5, 0xe2, 0x6c, - 0x3a, 0x2a, 0x1a, 0xc5, 0xb4, 0x67, 0x3f, 0x31, 0x67, 0x84, 0x7c, 0x11, 0x80, 0xc3, 0x47, 0xf5, - 0x6a, 0x71, 0x0c, 0x2f, 0x85, 0xe1, 0x16, 0x3f, 0xc3, 0xd6, 0xc1, 0x3c, 0xf6, 0xf3, 0x30, 0xd6, - 0xd1, 0x29, 0x76, 0xc7, 0x5f, 0x48, 0xb5, 0x4f, 0x66, 0xba, 0xb2, 0x7c, 0x64, 0xcc, 0x61, 0xf6, - 0xd7, 0x2d, 0x38, 0x91, 0x25, 0x8f, 0xde, 0xb0, 0x60, 0x2c, 0xce, 0xd2, 0x3b, 0xae, 0xb1, 0x53, - 0x41, 0xb4, 0x1d, 0x20, 0xdc, 0xd9, 0x09, 0xfb, 0xaf, 0xc5, 0xe4, 0xbf, 0xe1, 0x05, 0xf5, 0xf0, - 0x96, 0x32, 0x4c, 0xac, 0xae, 0x86, 0x09, 0x5d, 0x8f, 0xee, 0x26, 0xa9, 0xb7, 0xfd, 0x8e, 0xec, - 0xe6, 0x55, 0xd1, 0x8e, 0x15, 0x06, 0x4b, 0xe6, 0x6c, 0x8b, 0x6b, 0x24, 0x32, 0x93, 0x72, 0x4e, - 0xb4, 0x63, 0x85, 0x81, 0x9e, 0x85, 0x21, 0xe3, 0x25, 0xe5, 0xbc, 0x64, 0x56, 0xbe, 0xa1, 0x32, - 0x63, 0x9c, 0xc2, 0x42, 0x93, 0x00, 0xca, 0xc8, 0x91, 0x2a, 0x92, 0x79, 0xbb, 0x94, 0x24, 0x8a, - 0xb1, 0x81, 0xc1, 0x52, 0xa7, 0xfd, 0x76, 0xcc, 0x8e, 0x73, 0xfa, 0x75, 0x69, 0xe3, 0x59, 0xd1, - 0x86, 0x15, 0x94, 0x4a, 0x93, 0xa6, 0x13, 0xb4, 0x1d, 0x9f, 0x8e, 0x90, 0xd8, 0xbf, 0xaa, 0x65, - 0xb8, 0xa4, 0x20, 0xd8, 0xc0, 0xa2, 0x6f, 0x9c, 0x78, 0x4d, 0xf2, 0x52, 0x18, 0xc8, 0xe0, 0x47, - 0x7d, 0xc2, 0x27, 0xda, 0xb1, 0xc2, 0xb0, 0xff, 0xc2, 0x82, 0x51, 0x5d, 0xb3, 0x81, 0xdf, 0xe6, - 0x6f, 0x6e, 0xb7, 0xad, 0x03, 0xb7, 0xdb, 0xe9, 0x0c, 0xf5, 0x52, 0x4f, 0x19, 0xea, 0x66, 0xf2, - 0x78, 0x79, 0xdf, 0xe4, 0xf1, 0x1f, 0xd5, 0x37, 0x45, 0xf3, 0x2c, 0xf3, 0xc1, 0xbc, 0x5b, 0xa2, - 0x91, 0x0d, 0xfd, 0xae, 0xa3, 0x6a, 0x1b, 0x0d, 0xf1, 0x0d, 0xc9, 0xec, 0x34, 0x43, 0x12, 0x10, - 0x7b, 0x19, 0x6a, 0xea, 0xa0, 0x4b, 0xee, 0x7e, 0xad, 0xfc, 0xdd, 0x6f, 0x4f, 0x49, 0xac, 0x33, - 0xeb, 0xdf, 0xfc, 0xfe, 0x63, 0x6f, 0xf9, 0xa3, 0xef, 0x3f, 0xf6, 0x96, 0xef, 0x7e, 0xff, 0xb1, - 0xb7, 0x7c, 0xec, 0xf6, 0x63, 0xd6, 0x37, 0x6f, 0x3f, 0x66, 0xfd, 0xd1, 0xed, 0xc7, 0xac, 0xef, - 0xde, 0x7e, 0xcc, 0xfa, 0xde, 0xed, 0xc7, 0xac, 0x2f, 0xfc, 0xd7, 0xc7, 0xde, 0xf2, 0x52, 0x6e, - 0xf4, 0x2b, 0xfd, 0xf1, 0xb4, 0x5b, 0x9f, 0xda, 0x3e, 0xcf, 0x02, 0x30, 0xe9, 0xf2, 0x9a, 0x32, - 0xe6, 0xd4, 0x94, 0x5c, 0x5e, 0xff, 0x37, 0x00, 0x00, 0xff, 0xff, 0x0a, 0x57, 0x97, 0x8d, 0x5b, - 0xec, 0x00, 0x00, + 0x7f, 0xb2, 0x1f, 0x52, 0xe6, 0x24, 0xff, 0xee, 0x3f, 0x06, 0x03, 0x11, 0x69, 0x85, 0xd7, 0xf0, + 0xa2, 0xd0, 0x65, 0x3a, 0xa3, 0x84, 0x37, 0x63, 0x09, 0xa7, 0x3a, 0xaf, 0xe5, 0x24, 0x9b, 0x42, + 0x99, 0x29, 0x9d, 0xb7, 0xe2, 0x24, 0x9b, 0x98, 0x41, 0xd0, 0x7b, 0x60, 0x24, 0x49, 0x1d, 0x85, + 0x8b, 0x23, 0xdf, 0x87, 0x04, 0xee, 0x48, 0xfa, 0xa0, 0x1c, 0x67, 0xb0, 0xd1, 0xab, 0xd0, 0xb7, + 0x49, 0xfc, 0xa6, 0xf8, 0xf4, 0xab, 0xc5, 0xe9, 0x1a, 0xf6, 0xae, 0x97, 0x88, 0xdf, 0xe4, 0x92, + 0x90, 0xfe, 0xc2, 0x8c, 0x15, 0x9d, 0xf7, 0xb5, 0xad, 0x76, 0x9c, 0x84, 0x4d, 0xef, 0x35, 0xe9, + 0xe9, 0x7c, 0x5f, 0xc1, 0x8c, 0xaf, 0x48, 0xfa, 0xdc, 0xa5, 0xa4, 0xfe, 0x62, 0xcd, 0x99, 0xf5, + 0xa3, 0xee, 0x45, 0x6c, 0xca, 0xec, 0x0a, 0x87, 0x65, 0xd1, 0xfd, 0x98, 0x93, 0xf4, 0x79, 0x3f, + 0xd4, 0x5f, 0xac, 0x39, 0xa3, 0x5d, 0xb5, 0xfe, 0x06, 0x59, 0x1f, 0xae, 0x15, 0xdc, 0x07, 0xbe, + 0xf6, 0x72, 0xd7, 0xe1, 0xe3, 0x50, 0x71, 0x37, 0x9d, 0x28, 0x19, 0x1f, 0x62, 0x93, 0x46, 0xcd, + 0xe2, 0x59, 0xda, 0x88, 0x39, 0x0c, 0x3d, 0x0a, 0xe5, 0x88, 0x6c, 0xb0, 0xe8, 0x64, 0x23, 0x2e, + 0x0a, 0x93, 0x0d, 0x4c, 0xdb, 0x95, 0x5d, 0x36, 0xd2, 0x35, 0x60, 0xee, 0x57, 0x4b, 0x69, 0xc3, + 0x2e, 0x3d, 0x32, 0x7c, 0x3d, 0xb8, 0xed, 0x28, 0x96, 0x0e, 0x32, 0x63, 0x3d, 0xb0, 0x66, 0x2c, + 0xe1, 0xe8, 0xe3, 0x16, 0x0c, 0xdc, 0x8c, 0xc3, 0x20, 0x20, 0x89, 0x50, 0xa2, 0xd7, 0x0b, 0x1e, + 0xac, 0xcb, 0x9c, 0xba, 0xee, 0x83, 0x68, 0xc0, 0x92, 0x2f, 0xed, 0x2e, 0xd9, 0x71, 0xfd, 0x76, + 0xbd, 0x23, 0x18, 0xe6, 0x02, 0x6f, 0xc6, 0x12, 0x4e, 0x51, 0xbd, 0x80, 0xa3, 0xf6, 0xa5, 0x51, + 0x17, 0x02, 0x81, 0x2a, 0xe0, 0xf6, 0xf7, 0x07, 0xe0, 0x74, 0xee, 0xf2, 0xa1, 0x26, 0x17, 0x33, + 0x6a, 0x2e, 0x7a, 0x3e, 0x91, 0x61, 0x60, 0xcc, 0xe4, 0xba, 0xae, 0x5a, 0xb1, 0x81, 0x81, 0x7e, + 0x0e, 0xa0, 0xe5, 0x44, 0x4e, 0x93, 0x28, 0x07, 0xf6, 0x91, 0x2d, 0x1b, 0xda, 0x8f, 0x15, 0x49, + 0x53, 0x6f, 0xe2, 0x55, 0x53, 0x8c, 0x0d, 0x96, 0xe8, 0x39, 0x18, 0x8c, 0x88, 0x4f, 0x9c, 0x98, + 0x85, 0xbf, 0x67, 0x73, 0x79, 0xb0, 0x06, 0x61, 0x13, 0x0f, 0x3d, 0xa1, 0x22, 0xe6, 0x32, 0x91, + 0x43, 0xe9, 0xa8, 0x39, 0xf4, 0xba, 0x05, 0x23, 0x1b, 0x9e, 0x4f, 0x34, 0x77, 0x91, 0x79, 0xb3, + 0x7c, 0xf4, 0x97, 0xbc, 0x68, 0xd2, 0xd5, 0x32, 0x34, 0xd5, 0x1c, 0xe3, 0x0c, 0x7b, 0xfa, 0x99, + 0xb7, 0x49, 0xc4, 0x84, 0x6f, 0x7f, 0xfa, 0x33, 0x5f, 0xe7, 0xcd, 0x58, 0xc2, 0xd1, 0x34, 0x8c, + 0xb6, 0x9c, 0x38, 0x9e, 0x8d, 0x48, 0x9d, 0x04, 0x89, 0xe7, 0xf8, 0x3c, 0x2f, 0xa6, 0xaa, 0xc3, + 0xc9, 0x57, 0xd2, 0x60, 0x9c, 0xc5, 0x47, 0xef, 0x87, 0x87, 0xb9, 0x87, 0x68, 0xc9, 0x8b, 0x63, + 0x2f, 0x68, 0xe8, 0x69, 0x20, 0x1c, 0x65, 0x13, 0x82, 0xd4, 0xc3, 0x0b, 0xf9, 0x68, 0xb8, 0xdb, + 0xf3, 0xe8, 0x29, 0xa8, 0xc6, 0x5b, 0x5e, 0x6b, 0x36, 0xaa, 0xc7, 0xec, 0x74, 0xa8, 0xaa, 0xdd, + 0xb2, 0xab, 0xa2, 0x1d, 0x2b, 0x0c, 0xe4, 0xc2, 0x10, 0xff, 0x24, 0x3c, 0xe4, 0x4f, 0x48, 0xd0, + 0xa7, 0xbb, 0x2a, 0x72, 0x91, 0xe6, 0x39, 0x89, 0x9d, 0x5b, 0x17, 0xe4, 0x59, 0x15, 0x3f, 0x5a, + 0xb9, 0x6e, 0x90, 0xc1, 0x29, 0xa2, 0xe9, 0x3d, 0xdd, 0x60, 0x0f, 0x7b, 0xba, 0xe7, 0x60, 0x70, + 0xab, 0xbd, 0x4e, 0xc4, 0xc8, 0x0b, 0xc1, 0xa6, 0x66, 0xdf, 0x15, 0x0d, 0xc2, 0x26, 0x1e, 0x8b, + 0xb6, 0x6c, 0x79, 0xe2, 0x5f, 0x3c, 0x3e, 0x6c, 0x44, 0x5b, 0xae, 0x2c, 0xc8, 0x66, 0x6c, 0xe2, + 0xd0, 0xae, 0xd1, 0xb1, 0x58, 0x23, 0x31, 0x4b, 0xa6, 0xa0, 0xc3, 0xa5, 0xba, 0xb6, 0x2a, 0x01, + 0x58, 0xe3, 0xd8, 0xbf, 0x5c, 0x4a, 0xfb, 0x39, 0x4c, 0x81, 0x83, 0x62, 0x2a, 0x56, 0x92, 0xeb, + 0x4e, 0x24, 0xcd, 0x93, 0x23, 0xa6, 0x22, 0x09, 0xba, 0xd7, 0x9d, 0xc8, 0x14, 0x50, 0x8c, 0x01, + 0x96, 0x9c, 0xd0, 0x4d, 0xe8, 0x4b, 0x7c, 0xa7, 0xa0, 0xdc, 0x45, 0x83, 0xa3, 0x76, 0x3b, 0x2d, + 0x4e, 0xc7, 0x98, 0xf1, 0x40, 0x67, 0xe9, 0x5e, 0x6b, 0x5d, 0x9e, 0x8b, 0x89, 0xed, 0xd1, 0x7a, + 0x8c, 0x59, 0xab, 0xfd, 0x67, 0x83, 0x39, 0x3a, 0x42, 0xa9, 0x6d, 0x74, 0x1e, 0x80, 0x7e, 0xe2, + 0x95, 0x88, 0x6c, 0x78, 0x3b, 0xc2, 0x6c, 0x52, 0x72, 0xe8, 0xaa, 0x82, 0x60, 0x03, 0x4b, 0x3e, + 0xb3, 0xda, 0xde, 0xa0, 0xcf, 0x94, 0x3a, 0x9f, 0xe1, 0x10, 0x6c, 0x60, 0xa1, 0x67, 0xa1, 0xdf, + 0x6b, 0x3a, 0x0d, 0x15, 0xb6, 0x7b, 0x96, 0x0a, 0xa0, 0x05, 0xd6, 0x72, 0x67, 0x6f, 0x62, 0x44, + 0x75, 0x88, 0x35, 0x61, 0x81, 0x8b, 0x7e, 0xdd, 0x82, 0x21, 0x37, 0x6c, 0x36, 0xc3, 0x80, 0x6f, + 0x76, 0xc5, 0xce, 0xfd, 0xe6, 0x71, 0x19, 0x35, 0x93, 0xb3, 0x06, 0x33, 0xbe, 0x75, 0x57, 0x49, + 0x96, 0x26, 0x08, 0xa7, 0x7a, 0x65, 0xca, 0xa9, 0xca, 0x01, 0x72, 0xea, 0x37, 0x2c, 0x18, 0xe3, + 0xcf, 0x1a, 0x7b, 0x70, 0x91, 0x4f, 0x18, 0x1e, 0xf3, 0x6b, 0x75, 0xb8, 0x25, 0x94, 0x6b, 0xb6, + 0x03, 0x8e, 0x3b, 0x3b, 0x89, 0xe6, 0x61, 0x6c, 0x23, 0x8c, 0x5c, 0x62, 0x0e, 0x84, 0x10, 0xb2, + 0x8a, 0xd0, 0xc5, 0x2c, 0x02, 0xee, 0x7c, 0x06, 0x5d, 0x87, 0x87, 0x8c, 0x46, 0x73, 0x1c, 0xb8, + 0x9c, 0x7d, 0x4c, 0x50, 0x7b, 0xe8, 0x62, 0x2e, 0x16, 0xee, 0xf2, 0x74, 0x5a, 0xa4, 0xd5, 0x7a, + 0x10, 0x69, 0xaf, 0xc0, 0x23, 0x6e, 0xe7, 0xc8, 0x6c, 0xc7, 0xed, 0xf5, 0x98, 0x4b, 0xdd, 0xea, + 0xcc, 0x8f, 0x08, 0x02, 0x8f, 0xcc, 0x76, 0x43, 0xc4, 0xdd, 0x69, 0xa0, 0x0f, 0x43, 0x35, 0x22, + 0xec, 0xab, 0xc4, 0x22, 0xb9, 0xee, 0x88, 0xbe, 0x09, 0x6d, 0x6f, 0x73, 0xb2, 0x5a, 0x8f, 0x88, + 0x86, 0x18, 0x2b, 0x8e, 0xe8, 0x16, 0x0c, 0xb4, 0x9c, 0xc4, 0xdd, 0x14, 0x29, 0x75, 0x47, 0xf6, + 0xa4, 0x2b, 0xe6, 0xec, 0xe0, 0xc3, 0x48, 0xc2, 0xe7, 0x4c, 0xb0, 0xe4, 0x46, 0x2d, 0x2b, 0x37, + 0x6c, 0xb6, 0xc2, 0x80, 0x04, 0x89, 0x14, 0xf9, 0x23, 0xfc, 0x74, 0x42, 0xb6, 0x62, 0x03, 0x03, + 0xad, 0xc0, 0x29, 0xe6, 0xa9, 0xbb, 0xe1, 0x25, 0x9b, 0x61, 0x3b, 0x91, 0x1b, 0x4f, 0x21, 0xfb, + 0xd5, 0xf9, 0xd4, 0x62, 0x0e, 0x0e, 0xce, 0x7d, 0x32, 0xab, 0xac, 0x46, 0xef, 0x4e, 0x59, 0x9d, + 0x38, 0x58, 0x59, 0x9d, 0x79, 0x2f, 0x8c, 0x75, 0x08, 0x8d, 0x43, 0xb9, 0xe3, 0xe6, 0xe0, 0xa1, + 0xfc, 0xe5, 0x79, 0x28, 0xa7, 0xdc, 0x3f, 0xcf, 0x44, 0x65, 0x1b, 0x1b, 0x94, 0x1e, 0x1c, 0xbc, + 0x0e, 0x94, 0x49, 0xb0, 0x2d, 0xb4, 0xd5, 0xc5, 0xa3, 0xcd, 0x92, 0x0b, 0xc1, 0x36, 0x97, 0x2e, + 0xcc, 0x8b, 0x75, 0x21, 0xd8, 0xc6, 0x94, 0x36, 0xfa, 0xa2, 0x95, 0x32, 0x9f, 0xb9, 0x5b, 0xf8, + 0x83, 0xc7, 0xb2, 0x23, 0xeb, 0xd9, 0xa2, 0xb6, 0xff, 0x7d, 0x09, 0xce, 0x1d, 0x44, 0xa4, 0x87, + 0xe1, 0x7b, 0x1c, 0xfa, 0x63, 0x16, 0x67, 0x21, 0xc4, 0xff, 0x20, 0x5d, 0x15, 0x3c, 0xf2, 0xe2, + 0x15, 0x2c, 0x40, 0xc8, 0x87, 0x72, 0xd3, 0x69, 0x09, 0x6f, 0xe1, 0xc2, 0x51, 0xb3, 0xd7, 0xe8, + 0x7f, 0xc7, 0x5f, 0x72, 0x5a, 0x7c, 0x7a, 0x1a, 0x0d, 0x98, 0xb2, 0x41, 0x09, 0x54, 0x9c, 0x28, + 0x72, 0xe4, 0xa1, 0xfe, 0x95, 0x62, 0xf8, 0x4d, 0x53, 0x92, 0xfc, 0x4c, 0x34, 0xd5, 0x84, 0x39, + 0x33, 0xfb, 0xb3, 0x03, 0xa9, 0x54, 0x27, 0x16, 0xa9, 0x11, 0x43, 0xbf, 0x70, 0x12, 0x5a, 0x45, + 0x27, 0x0d, 0xf2, 0x5c, 0x62, 0xb6, 0xff, 0x16, 0x15, 0x19, 0x04, 0x2b, 0xf4, 0x19, 0x8b, 0xd5, + 0x3d, 0x90, 0xf9, 0x63, 0x62, 0x4f, 0x7b, 0x3c, 0x65, 0x18, 0xcc, 0x6a, 0x0a, 0xb2, 0x11, 0x9b, + 0xdc, 0x45, 0xfd, 0x12, 0x66, 0xcb, 0x77, 0xd6, 0x2f, 0x61, 0xb6, 0xb9, 0x84, 0xa3, 0x9d, 0x9c, + 0x88, 0x8c, 0x02, 0x72, 0xe7, 0x7b, 0x88, 0xc1, 0xf8, 0xaa, 0x05, 0x63, 0x5e, 0xf6, 0x68, 0x5d, + 0xec, 0x00, 0x6f, 0x14, 0xe3, 0xd1, 0xeb, 0x3c, 0xb9, 0x57, 0x86, 0x43, 0x07, 0x08, 0x77, 0x76, + 0x06, 0xd5, 0xa1, 0xcf, 0x0b, 0x36, 0x42, 0x61, 0x2e, 0xcd, 0x1c, 0xad, 0x53, 0x0b, 0xc1, 0x46, + 0xa8, 0x57, 0x33, 0xfd, 0x87, 0x19, 0x75, 0xb4, 0x08, 0xa7, 0x64, 0xb6, 0xcb, 0x25, 0x2f, 0x4e, + 0xc2, 0x68, 0x77, 0xd1, 0x6b, 0x7a, 0x09, 0x33, 0x75, 0xca, 0x33, 0xe3, 0x54, 0x13, 0xe1, 0x1c, + 0x38, 0xce, 0x7d, 0x0a, 0xbd, 0x06, 0x03, 0xf2, 0x38, 0xbb, 0x5a, 0xc4, 0x6e, 0xba, 0x73, 0xfe, + 0xab, 0xc9, 0xb4, 0x2a, 0xce, 0xb3, 0x25, 0x43, 0xfb, 0xf5, 0x41, 0xe8, 0x3c, 0x75, 0x4f, 0x1f, + 0xb1, 0x5b, 0xf7, 0xfa, 0x88, 0x9d, 0x6e, 0x8d, 0x62, 0x7d, 0x3a, 0x5e, 0xc0, 0xdc, 0x16, 0x5c, + 0xf5, 0xc9, 0xe7, 0x6e, 0xe0, 0x62, 0xc6, 0x03, 0x45, 0xd0, 0xbf, 0x49, 0x1c, 0x3f, 0xd9, 0x2c, + 0xe6, 0x90, 0xe6, 0x12, 0xa3, 0x95, 0x4d, 0x51, 0xe3, 0xad, 0x58, 0x70, 0x42, 0x3b, 0x30, 0xb0, + 0xc9, 0x27, 0x80, 0xd8, 0xad, 0x2c, 0x1d, 0x75, 0x70, 0x53, 0xb3, 0x4a, 0x7f, 0x6e, 0xd1, 0x80, + 0x25, 0x3b, 0x16, 0xce, 0x65, 0x04, 0x9c, 0xf0, 0xa5, 0x5b, 0x5c, 0x76, 0x5e, 0xef, 0xd1, 0x26, + 0x1f, 0x82, 0xa1, 0x88, 0xb8, 0x61, 0xe0, 0x7a, 0x3e, 0xa9, 0x4f, 0xcb, 0x03, 0x98, 0xc3, 0x24, + 0x65, 0x31, 0xef, 0x05, 0x36, 0x68, 0xe0, 0x14, 0x45, 0xf4, 0x69, 0x0b, 0x46, 0x54, 0xa2, 0x36, + 0xfd, 0x20, 0x44, 0x38, 0xda, 0x17, 0x0b, 0x4a, 0x0b, 0x67, 0x34, 0x67, 0xd0, 0xed, 0xbd, 0x89, + 0x91, 0x74, 0x1b, 0xce, 0xf0, 0x45, 0x2f, 0x01, 0x84, 0xeb, 0x3c, 0x66, 0x6b, 0x3a, 0x11, 0x5e, + 0xf7, 0xc3, 0xbc, 0xea, 0x08, 0x4f, 0xee, 0x94, 0x14, 0xb0, 0x41, 0x0d, 0x5d, 0x01, 0xe0, 0xcb, + 0x66, 0x6d, 0xb7, 0x25, 0xb7, 0x34, 0x32, 0xab, 0x0e, 0x56, 0x15, 0xe4, 0xce, 0xde, 0x44, 0xa7, + 0x8f, 0x93, 0x05, 0xa6, 0x18, 0x8f, 0xa3, 0x9f, 0x85, 0x81, 0xb8, 0xdd, 0x6c, 0x3a, 0xca, 0x27, + 0x5f, 0x60, 0xba, 0x28, 0xa7, 0x6b, 0x88, 0x22, 0xde, 0x80, 0x25, 0x47, 0x74, 0x93, 0x0a, 0xd5, + 0x58, 0x38, 0x5f, 0xd9, 0x2a, 0xe2, 0x36, 0x01, 0xf7, 0x3c, 0xbd, 0x53, 0x9a, 0xf8, 0x38, 0x07, + 0xe7, 0xce, 0xde, 0xc4, 0x43, 0xe9, 0xf6, 0xc5, 0x50, 0x24, 0x70, 0xe6, 0xd2, 0x44, 0x97, 0x65, + 0xdd, 0x26, 0xfa, 0xda, 0xb2, 0x9c, 0xc8, 0x93, 0xba, 0x6e, 0x13, 0x6b, 0xee, 0x3e, 0x66, 0xe6, + 0xc3, 0x68, 0x09, 0x4e, 0xba, 0x61, 0x90, 0x44, 0xa1, 0xef, 0xf3, 0xba, 0x65, 0x7c, 0x77, 0xc9, + 0x7d, 0xf6, 0x6f, 0x15, 0xdd, 0x3e, 0x39, 0xdb, 0x89, 0x82, 0xf3, 0x9e, 0xb3, 0x83, 0xf4, 0xf9, + 0x99, 0x18, 0x9c, 0x67, 0x61, 0x88, 0xec, 0x24, 0x24, 0x0a, 0x1c, 0xff, 0x1a, 0x5e, 0x94, 0xbe, + 0x68, 0xb6, 0x06, 0x2e, 0x18, 0xed, 0x38, 0x85, 0x85, 0x6c, 0xe5, 0x52, 0x31, 0x92, 0x92, 0xb9, + 0x4b, 0x45, 0x3a, 0x50, 0xec, 0x6f, 0x94, 0x53, 0x06, 0xd9, 0x7d, 0x39, 0xad, 0x63, 0xd5, 0x6f, + 0x64, 0x99, 0x20, 0x06, 0x10, 0x1b, 0x8d, 0x22, 0x39, 0xab, 0xea, 0x37, 0xcb, 0x26, 0x23, 0x9c, + 0xe6, 0x8b, 0xb6, 0xa0, 0xb2, 0x19, 0xc6, 0x89, 0xdc, 0x7e, 0x1c, 0x71, 0xa7, 0x73, 0x29, 0x8c, + 0x13, 0x66, 0x45, 0xa8, 0xd7, 0xa6, 0x2d, 0x31, 0xe6, 0x3c, 0xe8, 0x1e, 0x34, 0xde, 0x74, 0xa2, + 0x7a, 0x3c, 0xcb, 0x4a, 0x08, 0xf4, 0x31, 0xf3, 0x41, 0x19, 0x8b, 0xab, 0x1a, 0x84, 0x4d, 0x3c, + 0xfb, 0xcf, 0xad, 0xd4, 0x81, 0xc5, 0x0d, 0x16, 0x0f, 0xbe, 0x4d, 0x02, 0x2a, 0x0d, 0xcc, 0x08, + 0xb4, 0x9f, 0xcc, 0x64, 0xd7, 0xbe, 0xbd, 0x5b, 0x35, 0xbf, 0x5b, 0x94, 0xc2, 0x24, 0x23, 0x61, + 0x04, 0xab, 0x7d, 0xcc, 0x4a, 0xa7, 0x49, 0x97, 0x8a, 0xd8, 0x97, 0x98, 0xa5, 0x02, 0x0e, 0xcc, + 0xb8, 0xb6, 0xbf, 0x68, 0xc1, 0xc0, 0x8c, 0xe3, 0x6e, 0x85, 0x1b, 0x1b, 0xe8, 0x29, 0xa8, 0xd6, + 0xdb, 0x91, 0x99, 0xb1, 0xad, 0x3c, 0x1b, 0x73, 0xa2, 0x1d, 0x2b, 0x0c, 0x3a, 0xf5, 0x37, 0x1c, + 0x57, 0x16, 0x0c, 0x28, 0xf3, 0xa9, 0x7f, 0x91, 0xb5, 0x60, 0x01, 0xa1, 0xc3, 0xdf, 0x74, 0x76, + 0xe4, 0xc3, 0xd9, 0xd3, 0x92, 0x25, 0x0d, 0xc2, 0x26, 0x9e, 0xfd, 0xaf, 0x2d, 0x18, 0x9f, 0x71, + 0x62, 0xcf, 0x9d, 0x6e, 0x27, 0x9b, 0x33, 0x5e, 0xb2, 0xde, 0x76, 0xb7, 0x48, 0xc2, 0x0b, 0x4b, + 0xd0, 0x5e, 0xb6, 0x63, 0xba, 0x02, 0xd5, 0x76, 0x50, 0xf5, 0xf2, 0x9a, 0x68, 0xc7, 0x0a, 0x03, + 0xbd, 0x06, 0x83, 0x2d, 0x27, 0x8e, 0x6f, 0x85, 0x51, 0x1d, 0x93, 0x8d, 0x62, 0x4a, 0xcf, 0xac, + 0x12, 0x37, 0x22, 0x09, 0x26, 0x1b, 0x22, 0xf6, 0x40, 0xd3, 0xc7, 0x26, 0x33, 0xfb, 0x97, 0x2c, + 0x38, 0x35, 0x43, 0x9c, 0x88, 0x44, 0xac, 0x52, 0x8d, 0x7a, 0x11, 0xf4, 0x2a, 0x54, 0x13, 0xda, + 0x42, 0x7b, 0x64, 0x15, 0xdb, 0x23, 0x16, 0x35, 0xb0, 0x26, 0x88, 0x63, 0xc5, 0xc6, 0xfe, 0xbc, + 0x05, 0x8f, 0xe4, 0xf5, 0x65, 0xd6, 0x0f, 0xdb, 0xf5, 0xfb, 0xd1, 0xa1, 0xbf, 0x63, 0xc1, 0x10, + 0x3b, 0x89, 0x9d, 0x23, 0x89, 0xe3, 0xf9, 0x1d, 0x55, 0xf2, 0xac, 0x1e, 0xab, 0xe4, 0x9d, 0x83, + 0xbe, 0xcd, 0xb0, 0x49, 0xb2, 0x51, 0x04, 0x97, 0xc2, 0x26, 0xc1, 0x0c, 0x82, 0x9e, 0xa1, 0x93, + 0xd0, 0x0b, 0x12, 0x87, 0x2e, 0x47, 0xe9, 0xfb, 0x1e, 0xe5, 0x13, 0x50, 0x35, 0x63, 0x13, 0xc7, + 0xfe, 0x57, 0x35, 0x18, 0x10, 0x21, 0x2f, 0x3d, 0x17, 0x3a, 0x91, 0x2e, 0x8a, 0x52, 0x57, 0x17, + 0x45, 0x0c, 0xfd, 0x2e, 0x2b, 0xd7, 0x29, 0x2c, 0xe1, 0x2b, 0x85, 0xc4, 0x48, 0xf1, 0x0a, 0xa0, + 0xba, 0x5b, 0xfc, 0x3f, 0x16, 0xac, 0xd0, 0x17, 0x2c, 0x18, 0x75, 0xc3, 0x20, 0x20, 0xae, 0x36, + 0xd3, 0xfa, 0x8a, 0x08, 0x85, 0x99, 0x4d, 0x13, 0xd5, 0x87, 0x7c, 0x19, 0x00, 0xce, 0xb2, 0x47, + 0x2f, 0xc0, 0x30, 0x1f, 0xb3, 0xeb, 0x29, 0x87, 0xbd, 0x2e, 0x9e, 0x66, 0x02, 0x71, 0x1a, 0x17, + 0x4d, 0xf2, 0x83, 0x0f, 0x51, 0xa6, 0xac, 0x5f, 0xfb, 0x35, 0x8d, 0x02, 0x65, 0x06, 0x06, 0x8a, + 0x00, 0x45, 0x64, 0x23, 0x22, 0xf1, 0xa6, 0x08, 0x09, 0x62, 0x26, 0xe2, 0xc0, 0xdd, 0x95, 0x28, + 0xc0, 0x1d, 0x94, 0x70, 0x0e, 0x75, 0xb4, 0x25, 0xf6, 0xc8, 0xd5, 0x22, 0xe4, 0xb9, 0xf8, 0xcc, + 0x5d, 0xb7, 0xca, 0x13, 0x50, 0x61, 0xaa, 0x8b, 0x99, 0xa6, 0x65, 0x9e, 0x16, 0xc7, 0x14, 0x1b, + 0xe6, 0xed, 0x68, 0x0e, 0x4e, 0x64, 0x4a, 0xbf, 0xc5, 0xc2, 0xb1, 0xae, 0x52, 0xa0, 0x32, 0x45, + 0xe3, 0x62, 0xdc, 0xf1, 0x84, 0xe9, 0x3f, 0x19, 0x3c, 0xc0, 0x7f, 0xb2, 0xab, 0x02, 0x4f, 0xb9, + 0xcb, 0xfb, 0xc5, 0x42, 0x06, 0xa0, 0xa7, 0x28, 0xd3, 0xcf, 0x65, 0xa2, 0x4c, 0x87, 0x59, 0x07, + 0xae, 0x17, 0xd3, 0x81, 0xc3, 0x87, 0x94, 0xde, 0xcf, 0x10, 0xd1, 0xff, 0x65, 0x81, 0xfc, 0xae, + 0xb3, 0x8e, 0xbb, 0x49, 0xe8, 0x94, 0x41, 0xef, 0x81, 0x11, 0xe5, 0x05, 0xe0, 0x26, 0x91, 0xc5, + 0x66, 0x8d, 0x8a, 0x06, 0xc0, 0x29, 0x28, 0xce, 0x60, 0xa3, 0x29, 0xa8, 0xd1, 0x71, 0xe2, 0x8f, + 0x72, 0xbd, 0xaf, 0x3c, 0x0d, 0xd3, 0x2b, 0x0b, 0xe2, 0x29, 0x8d, 0x83, 0x42, 0x18, 0xf3, 0x9d, + 0x38, 0x61, 0x3d, 0x58, 0xdd, 0x0d, 0xdc, 0xbb, 0x2c, 0x10, 0xc2, 0xf2, 0x6c, 0x16, 0xb3, 0x84, + 0x70, 0x27, 0x6d, 0xfb, 0x3f, 0x54, 0x60, 0x38, 0x25, 0x19, 0x0f, 0x69, 0x30, 0x3c, 0x05, 0x55, + 0xa9, 0xc3, 0xb3, 0x95, 0x90, 0x94, 0xa2, 0x57, 0x18, 0x54, 0x69, 0xad, 0x6b, 0xad, 0x9a, 0x35, + 0x70, 0x0c, 0x85, 0x8b, 0x4d, 0x3c, 0x26, 0x94, 0x13, 0x3f, 0x9e, 0xf5, 0x3d, 0x12, 0x24, 0xbc, + 0x9b, 0xc5, 0x08, 0xe5, 0xb5, 0xc5, 0x55, 0x93, 0xa8, 0x16, 0xca, 0x19, 0x00, 0xce, 0xb2, 0x47, + 0x9f, 0xb4, 0x60, 0xd8, 0xb9, 0x15, 0xeb, 0x9a, 0xd2, 0x22, 0x9e, 0xf4, 0x88, 0x4a, 0x2a, 0x55, + 0xa6, 0x9a, 0x7b, 0xad, 0x53, 0x4d, 0x38, 0xcd, 0x14, 0xbd, 0x61, 0x01, 0x22, 0x3b, 0xc4, 0x95, + 0x11, 0xaf, 0xa2, 0x2f, 0xfd, 0x45, 0x6c, 0x96, 0x2f, 0x74, 0xd0, 0xe5, 0x52, 0xbd, 0xb3, 0x1d, + 0xe7, 0xf4, 0x01, 0x5d, 0x06, 0x54, 0xf7, 0x62, 0x67, 0xdd, 0x27, 0xb3, 0x61, 0x53, 0xe6, 0x86, + 0x8a, 0xc3, 0xd7, 0x33, 0x62, 0x9c, 0xd1, 0x5c, 0x07, 0x06, 0xce, 0x79, 0x8a, 0xcd, 0xb2, 0x28, + 0xdc, 0xd9, 0xbd, 0x16, 0xf9, 0x4c, 0x4b, 0x98, 0xb3, 0x4c, 0xb4, 0x63, 0x85, 0x61, 0xff, 0x45, + 0x59, 0x2d, 0x65, 0x1d, 0xde, 0xed, 0x18, 0x61, 0xa6, 0xd6, 0xdd, 0x87, 0x99, 0xea, 0x20, 0x98, + 0xce, 0x8c, 0xe7, 0x54, 0x82, 0x64, 0xe9, 0x3e, 0x25, 0x48, 0xfe, 0xbc, 0x95, 0xaa, 0x36, 0x36, + 0x78, 0xfe, 0xa5, 0x62, 0x43, 0xcb, 0x27, 0x79, 0x80, 0x4e, 0x46, 0xaf, 0x64, 0xe2, 0xb2, 0x9e, + 0x82, 0xea, 0x86, 0xef, 0xb0, 0x1a, 0x19, 0x6c, 0xa1, 0x1a, 0xc1, 0x43, 0x17, 0x45, 0x3b, 0x56, + 0x18, 0x54, 0xea, 0x1b, 0x44, 0x0f, 0x25, 0xb5, 0xff, 0x53, 0x19, 0x06, 0x0d, 0x8d, 0x9f, 0x6b, + 0xbe, 0x59, 0x0f, 0x98, 0xf9, 0x56, 0x3a, 0x84, 0xf9, 0xf6, 0x73, 0x50, 0x73, 0xa5, 0x36, 0x2a, + 0xa6, 0x7a, 0x7a, 0x56, 0xc7, 0x69, 0x85, 0xa4, 0x9a, 0xb0, 0xe6, 0x89, 0xe6, 0x53, 0x49, 0x78, + 0x29, 0xbf, 0x40, 0x5e, 0x96, 0x9c, 0xd0, 0x68, 0x9d, 0xcf, 0x64, 0xcf, 0xa9, 0x2b, 0x07, 0x9f, + 0x53, 0xdb, 0xdf, 0xb1, 0xd4, 0xc7, 0xbd, 0x07, 0xd5, 0x56, 0x6e, 0xa6, 0xab, 0xad, 0x5c, 0x28, + 0x64, 0x98, 0xbb, 0x94, 0x59, 0xb9, 0x0a, 0x03, 0xb3, 0x61, 0xb3, 0xe9, 0x04, 0x75, 0xf4, 0xa3, + 0x30, 0xe0, 0xf2, 0x9f, 0xc2, 0x87, 0xc6, 0x4e, 0x62, 0x05, 0x14, 0x4b, 0x18, 0x3a, 0x0b, 0x7d, + 0x4e, 0xd4, 0x90, 0x7e, 0x33, 0x16, 0x31, 0x35, 0x1d, 0x35, 0x62, 0xcc, 0x5a, 0xed, 0x7f, 0xd6, + 0x07, 0x2c, 0x50, 0xc1, 0x89, 0x48, 0x7d, 0x2d, 0x64, 0x45, 0x4f, 0x8f, 0xf5, 0xfc, 0x52, 0x6f, + 0xea, 0x1e, 0xe4, 0x33, 0x4c, 0xe3, 0x1c, 0xab, 0x7c, 0x8f, 0xcf, 0xb1, 0xba, 0x1c, 0x4d, 0xf6, + 0x3d, 0x40, 0x47, 0x93, 0xf6, 0x67, 0x2d, 0x40, 0x2a, 0xba, 0x45, 0xc7, 0x0e, 0x4c, 0x41, 0x4d, + 0xc5, 0xb9, 0x08, 0x03, 0x50, 0x8b, 0x08, 0x09, 0xc0, 0x1a, 0xa7, 0x87, 0x9d, 0xfc, 0xe3, 0x52, + 0x7e, 0x97, 0xd3, 0xa1, 0xe5, 0x4c, 0xea, 0x0b, 0x71, 0x6e, 0xff, 0x6e, 0x09, 0x1e, 0xe2, 0xa6, + 0xc3, 0x92, 0x13, 0x38, 0x0d, 0xd2, 0xa4, 0xbd, 0xea, 0x35, 0x1a, 0xc4, 0xa5, 0x5b, 0x48, 0x4f, + 0x06, 0x82, 0x1f, 0x75, 0xed, 0xf2, 0x35, 0xc7, 0x57, 0xd9, 0x42, 0xe0, 0x25, 0x98, 0x11, 0x47, + 0x31, 0x54, 0xe5, 0xd5, 0x22, 0x42, 0x16, 0x17, 0xc4, 0x48, 0x89, 0x25, 0xa1, 0x65, 0x09, 0x56, + 0x8c, 0xa8, 0x2a, 0xf5, 0x43, 0x77, 0x0b, 0x93, 0x56, 0x98, 0x55, 0xa5, 0x8b, 0xa2, 0x1d, 0x2b, + 0x0c, 0xbb, 0x09, 0xa3, 0x72, 0x0c, 0x5b, 0x57, 0xc8, 0x2e, 0x26, 0x1b, 0x54, 0xff, 0xb8, 0xb2, + 0xc9, 0xb8, 0xed, 0x44, 0xe9, 0x9f, 0x59, 0x13, 0x88, 0xd3, 0xb8, 0xb2, 0x0e, 0x6a, 0x29, 0xbf, + 0x0e, 0xaa, 0xfd, 0xbb, 0x16, 0x64, 0x15, 0xa0, 0x51, 0xf5, 0xd1, 0xda, 0xb7, 0xea, 0xe3, 0x21, + 0xea, 0x26, 0xfe, 0x0c, 0x0c, 0x3a, 0x09, 0xb5, 0x70, 0xb8, 0x37, 0xa2, 0x7c, 0x77, 0x07, 0x56, + 0x4b, 0x61, 0xdd, 0xdb, 0xf0, 0x98, 0x17, 0xc2, 0x24, 0x67, 0xff, 0x55, 0x1f, 0x8c, 0x75, 0xe4, + 0x71, 0xa1, 0xe7, 0x61, 0x48, 0x0d, 0x85, 0xf4, 0xf3, 0xd5, 0xcc, 0xd0, 0x4a, 0x0d, 0xc3, 0x29, + 0xcc, 0x1e, 0xd6, 0xc3, 0x02, 0x9c, 0x8c, 0xc8, 0xab, 0x6d, 0xd2, 0x26, 0xd3, 0x1b, 0x09, 0x89, + 0x56, 0x89, 0x1b, 0x06, 0x75, 0x5e, 0x9b, 0xb4, 0x3c, 0xf3, 0xf0, 0xed, 0xbd, 0x89, 0x93, 0xb8, + 0x13, 0x8c, 0xf3, 0x9e, 0x41, 0x2d, 0x18, 0xf6, 0x4d, 0x03, 0x55, 0xec, 0x8b, 0xee, 0xca, 0xb6, + 0x55, 0x53, 0x22, 0xd5, 0x8c, 0xd3, 0x0c, 0xd2, 0x56, 0x6e, 0xe5, 0x3e, 0x59, 0xb9, 0x9f, 0xd0, + 0x56, 0x2e, 0x8f, 0xac, 0xf8, 0x40, 0xc1, 0x79, 0x7c, 0xbd, 0x98, 0xb9, 0x47, 0x31, 0x5c, 0x5f, + 0x84, 0xaa, 0x8c, 0x3a, 0xeb, 0x29, 0x5a, 0xcb, 0xa4, 0xd3, 0x45, 0x80, 0x3e, 0x01, 0x6f, 0xbb, + 0x10, 0x45, 0xc6, 0x60, 0x5e, 0x0d, 0x93, 0x69, 0xdf, 0x0f, 0x6f, 0x51, 0x9b, 0xe0, 0x5a, 0x4c, + 0x84, 0xe3, 0xc9, 0xbe, 0x53, 0x82, 0x9c, 0x3d, 0x1c, 0x5d, 0x8f, 0xda, 0x10, 0x49, 0xad, 0xc7, + 0xc3, 0x19, 0x23, 0x68, 0x87, 0x47, 0xe6, 0x71, 0x95, 0xfb, 0xfe, 0xa2, 0xf7, 0xa0, 0x3a, 0x58, + 0x4f, 0x89, 0x23, 0x15, 0xb0, 0x77, 0x1e, 0x40, 0xdb, 0x8f, 0x22, 0x75, 0x44, 0x1d, 0xfc, 0x6b, + 0x33, 0x13, 0x1b, 0x58, 0xe8, 0x39, 0x18, 0xf4, 0x82, 0x38, 0x71, 0x7c, 0xff, 0x92, 0x17, 0x24, + 0xc2, 0xb7, 0xaa, 0x6c, 0x8b, 0x05, 0x0d, 0xc2, 0x26, 0xde, 0x99, 0x77, 0x1a, 0xdf, 0xef, 0x30, + 0xdf, 0x7d, 0x13, 0x1e, 0x99, 0xf7, 0x12, 0x95, 0xf0, 0xa4, 0xe6, 0x1b, 0x35, 0x0f, 0x55, 0x8a, + 0x9f, 0xd5, 0x35, 0xc5, 0xcf, 0x48, 0x38, 0x2a, 0xa5, 0xf3, 0xa3, 0xb2, 0x09, 0x47, 0xf6, 0xf3, + 0x70, 0x6a, 0xde, 0x4b, 0x2e, 0x7a, 0x3e, 0x39, 0x24, 0x13, 0xfb, 0x77, 0xfa, 0x61, 0xc8, 0x4c, + 0xee, 0x3d, 0x4c, 0x96, 0xe2, 0xe7, 0xa9, 0x05, 0x28, 0xde, 0xce, 0x53, 0xc7, 0xa6, 0x37, 0x8e, + 0x9c, 0x69, 0x9c, 0x3f, 0x62, 0x86, 0x11, 0xa8, 0x79, 0x62, 0xb3, 0x03, 0xe8, 0x16, 0x54, 0x36, + 0x58, 0x42, 0x4c, 0xb9, 0x88, 0xd8, 0x92, 0xbc, 0x11, 0xd5, 0xcb, 0x91, 0xa7, 0xd4, 0x70, 0x7e, + 0x54, 0x71, 0x47, 0xe9, 0x3c, 0x4c, 0x23, 0xf0, 0x59, 0x64, 0x60, 0x2a, 0x8c, 0x6e, 0x2a, 0xa1, + 0x72, 0x17, 0x2a, 0x21, 0x25, 0xa0, 0xfb, 0xef, 0x93, 0x80, 0x66, 0xc9, 0x4d, 0xc9, 0x26, 0x33, + 0x2b, 0x45, 0xa6, 0xc6, 0x00, 0x1b, 0x04, 0x23, 0xb9, 0x29, 0x05, 0xc6, 0x59, 0x7c, 0xf4, 0x51, + 0x25, 0xe2, 0xab, 0x45, 0xb8, 0xa5, 0xcd, 0x19, 0x7d, 0xdc, 0xd2, 0xfd, 0xb3, 0x25, 0x18, 0x99, + 0x0f, 0xda, 0x2b, 0xf3, 0x2b, 0xed, 0x75, 0xdf, 0x73, 0xaf, 0x90, 0x5d, 0x2a, 0xc2, 0xb7, 0xc8, + 0xee, 0xc2, 0x9c, 0x58, 0x41, 0x6a, 0xce, 0x5c, 0xa1, 0x8d, 0x98, 0xc3, 0xa8, 0x30, 0xda, 0xf0, + 0x82, 0x06, 0x89, 0x5a, 0x91, 0x27, 0x3c, 0xc6, 0x86, 0x30, 0xba, 0xa8, 0x41, 0xd8, 0xc4, 0xa3, + 0xb4, 0xc3, 0x5b, 0x01, 0x89, 0xb2, 0xf6, 0xf5, 0x32, 0x6d, 0xc4, 0x1c, 0x46, 0x91, 0x92, 0xa8, + 0x2d, 0x1c, 0x32, 0x06, 0xd2, 0x1a, 0x6d, 0xc4, 0x1c, 0x46, 0x57, 0x7a, 0xdc, 0x5e, 0x67, 0xa1, + 0x3b, 0x99, 0xb4, 0x90, 0x55, 0xde, 0x8c, 0x25, 0x9c, 0xa2, 0x6e, 0x91, 0xdd, 0x39, 0xba, 0x19, + 0xcf, 0x64, 0xba, 0x5d, 0xe1, 0xcd, 0x58, 0xc2, 0x59, 0xf5, 0xd4, 0xf4, 0x70, 0xfc, 0xc0, 0x55, + 0x4f, 0x4d, 0x77, 0xbf, 0xcb, 0xb6, 0xfe, 0xd7, 0x2c, 0x18, 0x32, 0x03, 0xee, 0x50, 0x23, 0x63, + 0x0b, 0x2f, 0x77, 0x14, 0xdf, 0x7e, 0x77, 0xde, 0xc5, 0x94, 0x0d, 0x2f, 0x09, 0x5b, 0xf1, 0xd3, + 0x24, 0x68, 0x78, 0x01, 0x61, 0x01, 0x11, 0x3c, 0x50, 0x2f, 0x15, 0xcd, 0x37, 0x1b, 0xd6, 0xc9, + 0x5d, 0x18, 0xd3, 0xf6, 0x0d, 0x18, 0xeb, 0x48, 0x6f, 0xec, 0xc1, 0x04, 0x39, 0x30, 0xfd, 0xdc, + 0xc6, 0x30, 0x48, 0x09, 0xcb, 0x0a, 0x5e, 0xb3, 0x30, 0xc6, 0x17, 0x12, 0xe5, 0xb4, 0xea, 0x6e, + 0x92, 0xa6, 0x4a, 0x59, 0x65, 0xc7, 0x13, 0xd7, 0xb3, 0x40, 0xdc, 0x89, 0x6f, 0x7f, 0xce, 0x82, + 0xe1, 0x54, 0xc6, 0x69, 0x41, 0xc6, 0x12, 0x5b, 0x69, 0x21, 0x8b, 0xff, 0x64, 0x41, 0xf0, 0x65, + 0xa6, 0x4c, 0xf5, 0x4a, 0xd3, 0x20, 0x6c, 0xe2, 0xd9, 0x5f, 0x2c, 0x41, 0x55, 0xc6, 0xd0, 0xf4, + 0xd0, 0x95, 0xcf, 0x58, 0x30, 0xac, 0x8e, 0x84, 0x98, 0x0f, 0xaf, 0x54, 0x44, 0x4a, 0x0d, 0xed, + 0x81, 0xf2, 0x02, 0x04, 0x1b, 0xa1, 0xb6, 0xdc, 0xb1, 0xc9, 0x0c, 0xa7, 0x79, 0xa3, 0xeb, 0x00, + 0xf1, 0x6e, 0x9c, 0x90, 0xa6, 0xe1, 0x4d, 0xb4, 0x8d, 0x15, 0x37, 0xe9, 0x86, 0x11, 0xa1, 0xeb, + 0xeb, 0x6a, 0x58, 0x27, 0xab, 0x0a, 0x53, 0x9b, 0x50, 0xba, 0x0d, 0x1b, 0x94, 0xec, 0x7f, 0x52, + 0x82, 0x13, 0xd9, 0x2e, 0xa1, 0x0f, 0xc0, 0x90, 0xe4, 0x6e, 0xec, 0x3a, 0x65, 0x04, 0xd0, 0x10, + 0x36, 0x60, 0x77, 0xf6, 0x26, 0x26, 0x3a, 0x2f, 0x39, 0x9d, 0x34, 0x51, 0x70, 0x8a, 0x18, 0x3f, + 0x97, 0x13, 0x07, 0xc8, 0x33, 0xbb, 0xd3, 0xad, 0x96, 0x38, 0x5c, 0x33, 0xce, 0xe5, 0x4c, 0x28, + 0xce, 0x60, 0xa3, 0x15, 0x38, 0x65, 0xb4, 0x5c, 0x25, 0x5e, 0x63, 0x73, 0x3d, 0x8c, 0xe4, 0x0e, + 0xec, 0xac, 0x0e, 0xed, 0xeb, 0xc4, 0xc1, 0xb9, 0x4f, 0x52, 0x6d, 0xef, 0x3a, 0x2d, 0xc7, 0xf5, + 0x92, 0x5d, 0xe1, 0x1e, 0x55, 0xb2, 0x69, 0x56, 0xb4, 0x63, 0x85, 0x61, 0x2f, 0x41, 0x5f, 0x8f, + 0x33, 0xa8, 0x27, 0xcb, 0xff, 0x45, 0xa8, 0x52, 0x72, 0xd2, 0xbc, 0x2b, 0x82, 0x64, 0x08, 0x55, + 0x79, 0x65, 0x14, 0xb2, 0xa1, 0xec, 0x39, 0xf2, 0xe8, 0x53, 0xbd, 0xd6, 0x42, 0x1c, 0xb7, 0xd9, + 0x66, 0x9a, 0x02, 0xd1, 0xe3, 0x50, 0x26, 0x3b, 0xad, 0xec, 0x19, 0xe7, 0x85, 0x9d, 0x96, 0x17, + 0x91, 0x98, 0x22, 0x91, 0x9d, 0x16, 0x3a, 0x03, 0x25, 0xaf, 0x2e, 0x94, 0x14, 0x08, 0x9c, 0xd2, + 0xc2, 0x1c, 0x2e, 0x79, 0x75, 0x7b, 0x07, 0x6a, 0xea, 0x8e, 0x2a, 0xb4, 0x25, 0x65, 0xb7, 0x55, + 0x44, 0xd0, 0x9b, 0xa4, 0xdb, 0x45, 0x6a, 0xb7, 0x01, 0x74, 0xba, 0x6a, 0x51, 0xf2, 0xe5, 0x1c, + 0xf4, 0xb9, 0xa1, 0x28, 0x0b, 0x50, 0xd5, 0x64, 0x98, 0xd0, 0x66, 0x10, 0xfb, 0x06, 0x8c, 0x5c, + 0x09, 0xc2, 0x5b, 0xec, 0x2a, 0x09, 0x56, 0x39, 0x91, 0x12, 0xde, 0xa0, 0x3f, 0xb2, 0x26, 0x02, + 0x83, 0x62, 0x0e, 0x53, 0x35, 0xdd, 0x4a, 0xdd, 0x6a, 0xba, 0xd9, 0x1f, 0xb3, 0x60, 0x48, 0xe5, + 0xbd, 0xcd, 0x6f, 0x6f, 0x51, 0xba, 0x8d, 0x28, 0x6c, 0xb7, 0xb2, 0x74, 0xd9, 0x75, 0x78, 0x98, + 0xc3, 0xcc, 0x84, 0xd0, 0xd2, 0x01, 0x09, 0xa1, 0xe7, 0xa0, 0x6f, 0xcb, 0x0b, 0xea, 0xd9, 0x6b, + 0x91, 0xae, 0x78, 0x41, 0x1d, 0x33, 0x08, 0xed, 0xc2, 0x09, 0xd5, 0x05, 0xa9, 0x10, 0x9e, 0x87, + 0xa1, 0xf5, 0xb6, 0xe7, 0xd7, 0x65, 0x49, 0xc8, 0x8c, 0x47, 0x65, 0xc6, 0x80, 0xe1, 0x14, 0x26, + 0xdd, 0xd7, 0xad, 0x7b, 0x81, 0x13, 0xed, 0xae, 0x68, 0x0d, 0xa4, 0x84, 0xd2, 0x8c, 0x82, 0x60, + 0x03, 0xcb, 0x7e, 0xbd, 0x0c, 0x23, 0xe9, 0xec, 0xbf, 0x1e, 0xb6, 0x57, 0x8f, 0x43, 0x85, 0x25, + 0x04, 0x66, 0x3f, 0x2d, 0xaf, 0xa2, 0xc8, 0x61, 0x28, 0x86, 0x7e, 0x5e, 0x38, 0xa5, 0x98, 0x2b, + 0xc5, 0x54, 0x27, 0x95, 0x1f, 0x86, 0x85, 0x06, 0x8a, 0x5a, 0x2d, 0x82, 0x15, 0xfa, 0xa4, 0x05, + 0x03, 0x61, 0xcb, 0xac, 0x05, 0xf6, 0xfe, 0x22, 0x33, 0x23, 0x45, 0xba, 0x94, 0xb0, 0x88, 0xd5, + 0xa7, 0x97, 0x9f, 0x43, 0xb2, 0x3e, 0xf3, 0x2e, 0x18, 0x32, 0x31, 0x0f, 0x32, 0x8a, 0xab, 0xa6, + 0x51, 0xfc, 0x19, 0x73, 0x52, 0x88, 0xdc, 0xcf, 0x1e, 0x96, 0xdb, 0x35, 0xa8, 0xb8, 0x2a, 0x7e, + 0xe2, 0xae, 0x0a, 0x09, 0xab, 0x4a, 0x26, 0xec, 0x6c, 0x8a, 0x53, 0xb3, 0xbf, 0x63, 0x19, 0xf3, + 0x03, 0x93, 0x78, 0xa1, 0x8e, 0x22, 0x28, 0x37, 0xb6, 0xb7, 0x84, 0x29, 0x7a, 0xb9, 0xa0, 0xe1, + 0x9d, 0xdf, 0xde, 0xd2, 0x73, 0xdc, 0x6c, 0xc5, 0x94, 0x59, 0x0f, 0xce, 0xc2, 0x54, 0x8a, 0x70, + 0xf9, 0xe0, 0x14, 0x61, 0xfb, 0x8d, 0x12, 0x8c, 0x75, 0x4c, 0x2a, 0xf4, 0x1a, 0x54, 0x22, 0xfa, + 0x96, 0xe2, 0xf5, 0x16, 0x0b, 0x4b, 0xea, 0x8d, 0x17, 0xea, 0x5a, 0xef, 0xa6, 0xdb, 0x31, 0x67, + 0x89, 0x2e, 0x03, 0xd2, 0x51, 0x3e, 0xca, 0x53, 0xc9, 0x5f, 0x59, 0x85, 0x02, 0x4c, 0x77, 0x60, + 0xe0, 0x9c, 0xa7, 0xd0, 0x0b, 0x59, 0x87, 0x67, 0x39, 0xed, 0xce, 0xde, 0xcf, 0x77, 0x69, 0xff, + 0x56, 0x09, 0x86, 0x53, 0xa5, 0xd9, 0x90, 0x0f, 0x55, 0xe2, 0xb3, 0xb3, 0x06, 0xa9, 0x6c, 0x8e, + 0x5a, 0x68, 0x5d, 0x29, 0xc8, 0x0b, 0x82, 0x2e, 0x56, 0x1c, 0x1e, 0x8c, 0x08, 0x81, 0xe7, 0x61, + 0x48, 0x76, 0xe8, 0xfd, 0x4e, 0xd3, 0x17, 0x03, 0xa8, 0xe6, 0xe8, 0x05, 0x03, 0x86, 0x53, 0x98, + 0xf6, 0xef, 0x95, 0x61, 0x9c, 0x1f, 0xce, 0xd4, 0xd5, 0xcc, 0x5b, 0x92, 0xfb, 0xad, 0xbf, 0xa1, + 0x0b, 0x28, 0x5a, 0x45, 0xdc, 0x26, 0xda, 0x8d, 0x51, 0x4f, 0x81, 0x6d, 0x5f, 0xc9, 0x04, 0xb6, + 0x71, 0xb3, 0xbb, 0x71, 0x4c, 0x3d, 0xfa, 0xc1, 0x8a, 0x74, 0xfb, 0x87, 0x25, 0x18, 0xcd, 0x5c, + 0x1a, 0x83, 0x5e, 0x4f, 0xd7, 0x19, 0xb7, 0x8a, 0xf0, 0xa9, 0xef, 0x7b, 0x8f, 0xc8, 0xe1, 0xaa, + 0x8d, 0xdf, 0xa7, 0xa5, 0x62, 0x7f, 0xbb, 0x04, 0x23, 0xe9, 0xdb, 0x6e, 0x1e, 0xc0, 0x91, 0x7a, + 0x07, 0xd4, 0xd8, 0x85, 0x0e, 0xec, 0x92, 0x66, 0xee, 0x92, 0xe7, 0xb5, 0xf3, 0x65, 0x23, 0xd6, + 0xf0, 0x07, 0xa2, 0x88, 0xbb, 0xfd, 0x8f, 0x2d, 0x38, 0xcd, 0xdf, 0x32, 0x3b, 0x0f, 0xff, 0x66, + 0xde, 0xe8, 0xbe, 0x5c, 0x6c, 0x07, 0x33, 0x85, 0x3f, 0x0f, 0x1a, 0x5f, 0x76, 0xa7, 0xaa, 0xe8, + 0x6d, 0x7a, 0x2a, 0x3c, 0x80, 0x9d, 0x3d, 0xd4, 0x64, 0xb0, 0xbf, 0x5d, 0x06, 0x7d, 0x8d, 0x2c, + 0xf2, 0x44, 0x96, 0x6b, 0x21, 0x05, 0x50, 0x57, 0x77, 0x03, 0x57, 0x5f, 0x58, 0x5b, 0xcd, 0x24, + 0xb9, 0xfe, 0xa2, 0x05, 0x83, 0x5e, 0xe0, 0x25, 0x9e, 0xc3, 0xb6, 0xd1, 0xc5, 0xdc, 0x05, 0xa9, + 0xd8, 0x2d, 0x70, 0xca, 0x61, 0x64, 0x9e, 0xe3, 0x28, 0x66, 0xd8, 0xe4, 0x8c, 0x3e, 0x24, 0x62, + 0xcf, 0xcb, 0x85, 0xe5, 0x67, 0x57, 0x33, 0x01, 0xe7, 0x2d, 0x6a, 0x78, 0x25, 0x51, 0x41, 0x65, + 0x0d, 0x30, 0x25, 0xa5, 0x6a, 0x69, 0x2b, 0xd3, 0x96, 0x35, 0x63, 0xce, 0xc8, 0x8e, 0x01, 0x75, + 0x8e, 0xc5, 0x21, 0xe3, 0x7a, 0xa7, 0xa0, 0xe6, 0xb4, 0x93, 0xb0, 0x49, 0x87, 0x49, 0x1c, 0x35, + 0xe9, 0xc8, 0x65, 0x09, 0xc0, 0x1a, 0xc7, 0x7e, 0xbd, 0x02, 0x99, 0xb4, 0x53, 0xb4, 0x63, 0x5e, + 0x81, 0x6c, 0x15, 0x7b, 0x05, 0xb2, 0xea, 0x4c, 0xde, 0x35, 0xc8, 0xa8, 0x01, 0x95, 0xd6, 0xa6, + 0x13, 0x4b, 0xb3, 0xfa, 0x45, 0xb5, 0x8f, 0xa3, 0x8d, 0x77, 0xf6, 0x26, 0x7e, 0xba, 0x37, 0xaf, + 0x2b, 0x9d, 0xab, 0x53, 0xbc, 0x54, 0x8e, 0x66, 0xcd, 0x68, 0x60, 0x4e, 0xff, 0x30, 0xb7, 0x61, + 0x7e, 0x5c, 0xdc, 0x5c, 0x81, 0x49, 0xdc, 0xf6, 0x13, 0x31, 0x1b, 0x5e, 0x2c, 0x70, 0x95, 0x71, + 0xc2, 0xba, 0x60, 0x02, 0xff, 0x8f, 0x0d, 0xa6, 0xe8, 0x03, 0x50, 0x8b, 0x13, 0x27, 0x4a, 0xee, + 0x32, 0xc5, 0x59, 0x97, 0x34, 0x93, 0x44, 0xb0, 0xa6, 0x87, 0x5e, 0x62, 0xf5, 0xa0, 0xbd, 0x78, + 0xf3, 0x2e, 0x53, 0x46, 0x64, 0xed, 0x68, 0x41, 0x01, 0x1b, 0xd4, 0xd0, 0x79, 0x00, 0x36, 0xb7, + 0x79, 0xfc, 0x61, 0x95, 0x79, 0x99, 0x94, 0x28, 0xc4, 0x0a, 0x82, 0x0d, 0x2c, 0xfb, 0xc7, 0x21, + 0x5d, 0xf1, 0x03, 0x4d, 0xc8, 0x02, 0x23, 0xdc, 0x0b, 0xcd, 0x52, 0x3f, 0x52, 0xb5, 0x40, 0x7e, + 0xc3, 0x02, 0xb3, 0x2c, 0x09, 0x7a, 0x95, 0xd7, 0x3f, 0xb1, 0x8a, 0x38, 0x39, 0x34, 0xe8, 0x4e, + 0x2e, 0x39, 0xad, 0xcc, 0x11, 0xb6, 0x2c, 0x82, 0x72, 0xe6, 0x9d, 0x50, 0x95, 0xd0, 0x43, 0x19, + 0x75, 0x1f, 0x85, 0x93, 0x32, 0x8d, 0x54, 0xfa, 0x4d, 0xc5, 0xa9, 0xd3, 0xc1, 0xae, 0x1f, 0xe9, + 0xcf, 0x29, 0x75, 0xf3, 0xe7, 0xf4, 0x70, 0x11, 0xf6, 0x6f, 0x5a, 0x70, 0x2e, 0xdb, 0x81, 0x78, + 0x29, 0x0c, 0xbc, 0x24, 0x8c, 0x56, 0x49, 0x92, 0x78, 0x41, 0x83, 0x95, 0x7d, 0xbb, 0xe5, 0x44, + 0xb2, 0x50, 0x3f, 0x13, 0x94, 0x37, 0x9c, 0x28, 0xc0, 0xac, 0x15, 0xed, 0x42, 0x3f, 0x0f, 0x52, + 0x13, 0xd6, 0xfa, 0x11, 0xd7, 0x46, 0xce, 0x70, 0xe8, 0xed, 0x02, 0x0f, 0x90, 0xc3, 0x82, 0xa1, + 0xfd, 0x3d, 0x0b, 0xd0, 0xf2, 0x36, 0x89, 0x22, 0xaf, 0x6e, 0x84, 0xd5, 0xb1, 0x1b, 0xa0, 0x8c, + 0x9b, 0x9e, 0xcc, 0x24, 0xe7, 0xcc, 0x0d, 0x50, 0xc6, 0xbf, 0xfc, 0x1b, 0xa0, 0x4a, 0x87, 0xbb, + 0x01, 0x0a, 0x2d, 0xc3, 0xe9, 0x26, 0xdf, 0x6e, 0xf0, 0x5b, 0x55, 0xf8, 0xde, 0x43, 0xe5, 0xe3, + 0x3d, 0x72, 0x7b, 0x6f, 0xe2, 0xf4, 0x52, 0x1e, 0x02, 0xce, 0x7f, 0xce, 0x7e, 0x27, 0x20, 0x1e, + 0x4d, 0x37, 0x9b, 0x17, 0xab, 0xd4, 0xd5, 0xfd, 0x62, 0x7f, 0xb9, 0x02, 0xa3, 0x99, 0x32, 0xce, + 0x74, 0xab, 0xd7, 0x19, 0x1c, 0x75, 0x64, 0xfd, 0xdd, 0xd9, 0xbd, 0x9e, 0xc2, 0xad, 0x02, 0xa8, + 0x78, 0x41, 0xab, 0x9d, 0x14, 0x93, 0x0e, 0xcc, 0x3b, 0xb1, 0x40, 0x09, 0x1a, 0xee, 0x62, 0xfa, + 0x17, 0x73, 0x36, 0x45, 0x06, 0x6f, 0xa5, 0x8c, 0xf1, 0xbe, 0xfb, 0xe4, 0x0e, 0xf8, 0xb8, 0x0e, + 0xa5, 0xaa, 0x14, 0xe1, 0x58, 0xcc, 0x4c, 0x96, 0xe3, 0x3e, 0x6a, 0xff, 0x46, 0x09, 0x06, 0x8d, + 0x8f, 0x86, 0x7e, 0x35, 0x5d, 0xb4, 0xcb, 0x2a, 0xee, 0x95, 0x18, 0xfd, 0x49, 0x5d, 0x96, 0x8b, + 0xbf, 0xd2, 0x13, 0x9d, 0xf5, 0xba, 0xee, 0xec, 0x4d, 0x9c, 0xc8, 0x54, 0xe4, 0x4a, 0xd5, 0xf0, + 0x3a, 0xf3, 0x11, 0x18, 0xcd, 0x90, 0xc9, 0x79, 0xe5, 0x35, 0xf3, 0x95, 0x8f, 0xec, 0x96, 0x32, + 0x87, 0xec, 0xeb, 0x74, 0xc8, 0x44, 0x16, 0x62, 0xe8, 0x93, 0x1e, 0x7c, 0xb0, 0x99, 0x64, 0xe3, + 0x52, 0x8f, 0xc9, 0xc6, 0x4f, 0x42, 0xb5, 0x15, 0xfa, 0x9e, 0xeb, 0xa9, 0x1a, 0x9a, 0x2c, 0xbd, + 0x79, 0x45, 0xb4, 0x61, 0x05, 0x45, 0xb7, 0xa0, 0x76, 0xf3, 0x56, 0xc2, 0x4f, 0x7f, 0x84, 0x7f, + 0xbb, 0xa8, 0x43, 0x1f, 0x65, 0xb4, 0xa8, 0xe3, 0x25, 0xac, 0x79, 0x21, 0x1b, 0xfa, 0x99, 0x12, + 0x94, 0x19, 0x09, 0xcc, 0xf7, 0xce, 0xb4, 0x63, 0x8c, 0x05, 0xc4, 0xfe, 0x5a, 0x0d, 0x4e, 0xe5, + 0xd5, 0xd2, 0x47, 0x1f, 0x86, 0x7e, 0xde, 0xc7, 0x62, 0xae, 0x6b, 0xc9, 0xe3, 0x31, 0xcf, 0x08, + 0x8a, 0x6e, 0xb1, 0xdf, 0x58, 0xf0, 0x14, 0xdc, 0x7d, 0x67, 0x5d, 0xcc, 0x90, 0xe3, 0xe1, 0xbe, + 0xe8, 0x68, 0xee, 0x8b, 0x0e, 0xe7, 0xee, 0x3b, 0xeb, 0x68, 0x07, 0x2a, 0x0d, 0x2f, 0x21, 0x8e, + 0x70, 0x22, 0xdc, 0x38, 0x16, 0xe6, 0xc4, 0xe1, 0x56, 0x1a, 0xfb, 0x89, 0x39, 0x43, 0xf4, 0x55, + 0x0b, 0x46, 0xd7, 0xd3, 0x55, 0x0e, 0x84, 0xf0, 0x74, 0x8e, 0xe1, 0xbe, 0x84, 0x34, 0x23, 0x7e, + 0x05, 0x5a, 0xa6, 0x11, 0x67, 0xbb, 0x83, 0x3e, 0x61, 0xc1, 0xc0, 0x86, 0xe7, 0x1b, 0x05, 0xa9, + 0x8f, 0xe1, 0xe3, 0x5c, 0x64, 0x0c, 0xf4, 0x8e, 0x83, 0xff, 0x8f, 0xb1, 0xe4, 0xdc, 0x4d, 0x53, + 0xf5, 0x1f, 0x55, 0x53, 0x0d, 0xdc, 0x27, 0x4d, 0xf5, 0x69, 0x0b, 0x6a, 0x6a, 0xa4, 0x45, 0xb6, + 0xf8, 0x07, 0x8e, 0xf1, 0x93, 0x73, 0xcf, 0x89, 0xfa, 0x8b, 0x35, 0x73, 0xf4, 0x05, 0x0b, 0x06, + 0x9d, 0xd7, 0xda, 0x11, 0xa9, 0x93, 0xed, 0xb0, 0x15, 0x8b, 0xfb, 0x53, 0x5f, 0x2e, 0xbe, 0x33, + 0xd3, 0x94, 0xc9, 0x1c, 0xd9, 0x5e, 0x6e, 0xc5, 0x22, 0x5b, 0x4a, 0x37, 0x60, 0xb3, 0x0b, 0xf6, + 0x5e, 0x09, 0x26, 0x0e, 0xa0, 0x80, 0x9e, 0x87, 0xa1, 0x30, 0x6a, 0x38, 0x81, 0xf7, 0x9a, 0x59, + 0xb6, 0x44, 0x59, 0x59, 0xcb, 0x06, 0x0c, 0xa7, 0x30, 0xcd, 0x7c, 0xf6, 0xd2, 0x01, 0xf9, 0xec, + 0xe7, 0xa0, 0x2f, 0x22, 0xad, 0x30, 0xbb, 0x59, 0x60, 0x99, 0x0a, 0x0c, 0x82, 0x1e, 0x85, 0xb2, + 0xd3, 0xf2, 0x44, 0x20, 0x9a, 0xda, 0x03, 0x4d, 0xaf, 0x2c, 0x60, 0xda, 0x9e, 0x2a, 0xaf, 0x51, + 0xb9, 0x27, 0xe5, 0x35, 0xa8, 0x1a, 0x10, 0x67, 0x17, 0xfd, 0x5a, 0x0d, 0xa4, 0xcf, 0x14, 0xec, + 0x37, 0xca, 0xf0, 0xe8, 0xbe, 0xf3, 0x45, 0xc7, 0xe1, 0x59, 0xfb, 0xc4, 0xe1, 0xc9, 0xe1, 0x29, + 0x1d, 0x34, 0x3c, 0xe5, 0x2e, 0xc3, 0xf3, 0x09, 0xba, 0x0c, 0x64, 0xb9, 0x97, 0x62, 0x6e, 0xc0, + 0xec, 0x56, 0x3d, 0x46, 0xac, 0x00, 0x09, 0xc5, 0x9a, 0x2f, 0xdd, 0x03, 0xa4, 0x72, 0xb9, 0x2b, + 0x45, 0xa8, 0x81, 0xae, 0x25, 0x57, 0xf8, 0xdc, 0xef, 0x96, 0x20, 0x6e, 0xff, 0x76, 0x1f, 0x3c, + 0xde, 0x83, 0xf4, 0x36, 0x67, 0xb1, 0xd5, 0xe3, 0x2c, 0xfe, 0x01, 0xff, 0x4c, 0x9f, 0xca, 0xfd, + 0x4c, 0xb8, 0xf8, 0xcf, 0xb4, 0xff, 0x17, 0x42, 0x4f, 0x41, 0xd5, 0x0b, 0x62, 0xe2, 0xb6, 0x23, + 0x1e, 0x93, 0x6c, 0xa4, 0x31, 0x2d, 0x88, 0x76, 0xac, 0x30, 0xe8, 0x9e, 0xce, 0x75, 0xe8, 0xf2, + 0x1f, 0x28, 0x28, 0x77, 0xd7, 0xcc, 0x88, 0xe2, 0x26, 0xc5, 0xec, 0x34, 0x95, 0x00, 0x9c, 0x8d, + 0xfd, 0xb7, 0x2c, 0x38, 0xd3, 0x5d, 0xc5, 0xa2, 0x67, 0x60, 0x70, 0x3d, 0x72, 0x02, 0x77, 0x93, + 0xdd, 0x7d, 0x2c, 0xa7, 0x0e, 0x7b, 0x5f, 0xdd, 0x8c, 0x4d, 0x1c, 0x34, 0x0b, 0x63, 0x3c, 0x72, + 0xc3, 0xc0, 0x90, 0x99, 0xbf, 0xb7, 0xf7, 0x26, 0xc6, 0xd6, 0xb2, 0x40, 0xdc, 0x89, 0x6f, 0x7f, + 0xbf, 0x9c, 0xdf, 0x2d, 0x6e, 0x8a, 0x1d, 0x66, 0x36, 0x8b, 0xb9, 0x5a, 0xea, 0x41, 0xe2, 0x96, + 0xef, 0xb5, 0xc4, 0xed, 0xeb, 0x26, 0x71, 0xd1, 0x1c, 0x9c, 0x30, 0x2e, 0xa7, 0xe2, 0xd9, 0xdc, + 0x3c, 0x2c, 0x59, 0x95, 0x62, 0x59, 0xc9, 0xc0, 0x71, 0xc7, 0x13, 0x0f, 0xf8, 0xd4, 0xfb, 0xb5, + 0x12, 0x3c, 0xd2, 0xd5, 0xfa, 0xbd, 0x47, 0x1a, 0xc5, 0xfc, 0xfc, 0x7d, 0xf7, 0xe6, 0xf3, 0x9b, + 0x1f, 0xa5, 0x72, 0xd0, 0x47, 0xb1, 0xff, 0xb8, 0xd4, 0x75, 0x21, 0xd0, 0x9d, 0xd0, 0x0f, 0xed, + 0x28, 0xbd, 0x00, 0xc3, 0x4e, 0xab, 0xc5, 0xf1, 0x58, 0x14, 0x6d, 0xa6, 0xf4, 0xd3, 0xb4, 0x09, + 0xc4, 0x69, 0xdc, 0x9e, 0x6c, 0x9a, 0x3f, 0xb1, 0xa0, 0x86, 0xc9, 0x06, 0x97, 0x46, 0xe8, 0xa6, + 0x18, 0x22, 0xab, 0x88, 0x3a, 0xb7, 0x74, 0x60, 0x63, 0x8f, 0xd5, 0x7f, 0xcd, 0x1b, 0xec, 0xce, + 0xcb, 0xca, 0x4a, 0x87, 0xba, 0xac, 0x4c, 0x5d, 0x57, 0x55, 0xee, 0x7e, 0x5d, 0x95, 0xfd, 0xdd, + 0x01, 0xfa, 0x7a, 0xad, 0x70, 0x36, 0x22, 0xf5, 0x98, 0x7e, 0xdf, 0x76, 0xe4, 0x8b, 0x49, 0xa2, + 0xbe, 0xef, 0x35, 0xbc, 0x88, 0x69, 0x7b, 0xea, 0x80, 0xac, 0x74, 0xa8, 0xc2, 0x37, 0xe5, 0x03, + 0x0b, 0xdf, 0xbc, 0x00, 0xc3, 0x71, 0xbc, 0xb9, 0x12, 0x79, 0xdb, 0x4e, 0x42, 0xae, 0x90, 0x5d, + 0x61, 0xfb, 0xea, 0x22, 0x10, 0xab, 0x97, 0x34, 0x10, 0xa7, 0x71, 0xd1, 0x3c, 0x8c, 0xe9, 0xf2, + 0x33, 0x24, 0x4a, 0x58, 0xce, 0x05, 0x9f, 0x09, 0x2a, 0xe3, 0x5b, 0x17, 0xac, 0x11, 0x08, 0xb8, + 0xf3, 0x19, 0x2a, 0x4f, 0x53, 0x8d, 0xb4, 0x23, 0xfd, 0x69, 0x79, 0x9a, 0xa2, 0x43, 0xfb, 0xd2, + 0xf1, 0x04, 0x5a, 0x82, 0x93, 0x7c, 0x62, 0x4c, 0xb7, 0x5a, 0xc6, 0x1b, 0x0d, 0xa4, 0xeb, 0x8b, + 0xce, 0x77, 0xa2, 0xe0, 0xbc, 0xe7, 0xd0, 0x73, 0x30, 0xa8, 0x9a, 0x17, 0xe6, 0xc4, 0xd9, 0x8e, + 0xf2, 0x2d, 0x29, 0x32, 0x0b, 0x75, 0x6c, 0xe2, 0xa1, 0xf7, 0xc3, 0xc3, 0xfa, 0x2f, 0x4f, 0xcc, + 0xe3, 0x07, 0x9e, 0x73, 0xa2, 0xb2, 0x97, 0xba, 0xfa, 0x68, 0x3e, 0x17, 0xad, 0x8e, 0xbb, 0x3d, + 0x8f, 0xd6, 0xe1, 0x8c, 0x02, 0x5d, 0x08, 0x12, 0x96, 0x65, 0x13, 0x93, 0x19, 0x27, 0x26, 0xd7, + 0x22, 0x5f, 0x5c, 0xb2, 0xad, 0xee, 0xcf, 0x9d, 0xf7, 0x92, 0x4b, 0x79, 0x98, 0x78, 0x11, 0xef, + 0x43, 0x05, 0x4d, 0x41, 0x8d, 0x04, 0xce, 0xba, 0x4f, 0x96, 0x67, 0x17, 0x58, 0x85, 0x30, 0xe3, + 0x7c, 0xf5, 0x82, 0x04, 0x60, 0x8d, 0xa3, 0xe2, 0x7e, 0x87, 0xba, 0xde, 0xe5, 0xbc, 0x02, 0xa7, + 0x1a, 0x6e, 0x8b, 0x5a, 0x84, 0x9e, 0x4b, 0xa6, 0x5d, 0x16, 0xe6, 0x48, 0x3f, 0x0c, 0x2f, 0xfc, + 0xaa, 0x82, 0xda, 0xe7, 0x67, 0x57, 0x3a, 0x70, 0x70, 0xee, 0x93, 0x2c, 0x1c, 0x36, 0x0a, 0x77, + 0x76, 0xc7, 0x4f, 0x66, 0xc2, 0x61, 0x69, 0x23, 0xe6, 0x30, 0x74, 0x19, 0x10, 0xcb, 0x90, 0xb8, + 0x94, 0x24, 0x2d, 0x65, 0x82, 0x8e, 0x9f, 0x4a, 0xd7, 0xf9, 0xb9, 0xd8, 0x81, 0x81, 0x73, 0x9e, + 0xa2, 0x16, 0x4d, 0x10, 0x32, 0xea, 0xe3, 0x0f, 0xa7, 0x2d, 0x9a, 0xab, 0xbc, 0x19, 0x4b, 0xb8, + 0xfd, 0x9f, 0x2d, 0x18, 0x56, 0x4b, 0xfb, 0x1e, 0xa4, 0x13, 0xf9, 0xe9, 0x74, 0xa2, 0xf9, 0xa3, + 0x0b, 0x47, 0xd6, 0xf3, 0x2e, 0x31, 0xe9, 0xdf, 0x18, 0x04, 0xd0, 0x02, 0x54, 0xe9, 0x2e, 0xab, + 0xab, 0xee, 0x7a, 0x60, 0x85, 0x57, 0x5e, 0x45, 0x9e, 0xca, 0xfd, 0xad, 0xc8, 0xb3, 0x0a, 0xa7, + 0xa5, 0x65, 0xc1, 0x0f, 0xfb, 0x2e, 0x85, 0xb1, 0x92, 0x85, 0xd5, 0x99, 0x47, 0x05, 0xa1, 0xd3, + 0x0b, 0x79, 0x48, 0x38, 0xff, 0xd9, 0x94, 0x41, 0x33, 0x70, 0xa0, 0x95, 0xa9, 0x96, 0xff, 0xe2, + 0x86, 0xbc, 0x42, 0x28, 0xb3, 0xfc, 0x17, 0x2f, 0xae, 0x62, 0x8d, 0x93, 0xaf, 0x03, 0x6a, 0x05, + 0xe9, 0x00, 0x38, 0xb4, 0x0e, 0x90, 0xd2, 0x68, 0xb0, 0xab, 0x34, 0x92, 0x87, 0x0a, 0x43, 0x5d, + 0x0f, 0x15, 0xde, 0x03, 0x23, 0x5e, 0xb0, 0x49, 0x22, 0x2f, 0x21, 0x75, 0xb6, 0x16, 0x98, 0xa4, + 0xaa, 0x6a, 0x0b, 0x60, 0x21, 0x05, 0xc5, 0x19, 0xec, 0xb4, 0x08, 0x1d, 0xe9, 0x41, 0x84, 0x76, + 0x51, 0x5c, 0xa3, 0xc5, 0x28, 0xae, 0x13, 0x47, 0x57, 0x5c, 0x63, 0xc7, 0xaa, 0xb8, 0x50, 0x21, + 0x8a, 0xab, 0x27, 0x9d, 0x60, 0xec, 0x4c, 0x4f, 0x1d, 0xb0, 0x33, 0xed, 0xa6, 0xb5, 0x4e, 0xdf, + 0xb5, 0xd6, 0xca, 0x57, 0x48, 0x0f, 0x1d, 0xb7, 0x42, 0xfa, 0x74, 0x09, 0x4e, 0x6b, 0x91, 0x4d, + 0x17, 0x8a, 0xb7, 0x41, 0x85, 0x16, 0xbb, 0xb0, 0x8e, 0x9f, 0xd1, 0x19, 0x89, 0x70, 0x3a, 0xa7, + 0x4e, 0x41, 0xb0, 0x81, 0xc5, 0xf2, 0xc9, 0x48, 0xc4, 0xaa, 0x5f, 0x67, 0xe5, 0xf9, 0xac, 0x68, + 0xc7, 0x0a, 0x83, 0x4e, 0x45, 0xfa, 0x5b, 0xe4, 0xe8, 0x66, 0xeb, 0x2a, 0xce, 0x6a, 0x10, 0x36, + 0xf1, 0xd0, 0x93, 0x9c, 0x09, 0x93, 0x25, 0x54, 0xa6, 0x0f, 0x89, 0x7b, 0xc3, 0xa5, 0xf8, 0x50, + 0x50, 0xd9, 0x1d, 0x96, 0x38, 0x58, 0xe9, 0xec, 0x0e, 0x0b, 0x77, 0x53, 0x18, 0xf6, 0xff, 0xb4, + 0xe0, 0x91, 0xdc, 0xa1, 0xb8, 0x07, 0x7a, 0x7a, 0x27, 0xad, 0xa7, 0x57, 0x8b, 0xda, 0xc4, 0x18, + 0x6f, 0xd1, 0x45, 0x67, 0xff, 0x47, 0x0b, 0x46, 0x34, 0xfe, 0x3d, 0x78, 0x55, 0x2f, 0xfd, 0xaa, + 0xc5, 0xed, 0xd7, 0x6a, 0x1d, 0xef, 0xf6, 0x7b, 0x25, 0x50, 0xb5, 0x4e, 0xa7, 0x5d, 0x59, 0x49, + 0xfa, 0x80, 0x53, 0xe3, 0x5d, 0xe8, 0x67, 0x87, 0xde, 0x71, 0x31, 0x01, 0x3d, 0x69, 0xfe, 0xec, + 0x00, 0x5d, 0x07, 0x14, 0xb0, 0xbf, 0x31, 0x16, 0x0c, 0x59, 0x6d, 0x76, 0x5e, 0x46, 0xb2, 0x2e, + 0x52, 0xf0, 0x74, 0x6d, 0x76, 0xd1, 0x8e, 0x15, 0x06, 0xd5, 0x24, 0x9e, 0x1b, 0x06, 0xb3, 0xbe, + 0x13, 0xcb, 0x1b, 0x67, 0x95, 0x26, 0x59, 0x90, 0x00, 0xac, 0x71, 0xd8, 0x79, 0xb8, 0x17, 0xb7, + 0x7c, 0x67, 0xd7, 0xd8, 0x95, 0x1b, 0xb5, 0x28, 0x14, 0x08, 0x9b, 0x78, 0x76, 0x13, 0xc6, 0xd3, + 0x2f, 0x31, 0x47, 0x36, 0x58, 0x30, 0x6a, 0x4f, 0xc3, 0x39, 0x05, 0x35, 0x87, 0x3d, 0xb5, 0xd8, + 0x76, 0x84, 0x4c, 0xd0, 0x21, 0x99, 0x12, 0x80, 0x35, 0x8e, 0xfd, 0x8f, 0x2c, 0x38, 0x99, 0x33, + 0x68, 0x05, 0xa6, 0x38, 0x26, 0x5a, 0xda, 0xe4, 0xd9, 0x00, 0x3f, 0x06, 0x03, 0x75, 0xb2, 0xe1, + 0xc8, 0x70, 0x47, 0x43, 0x7a, 0xce, 0xf1, 0x66, 0x2c, 0xe1, 0xf6, 0x6f, 0x95, 0x60, 0x34, 0xdd, + 0xd7, 0x98, 0xa5, 0x0d, 0xf1, 0x61, 0xf2, 0x62, 0x37, 0xdc, 0x26, 0xd1, 0x2e, 0x7d, 0x73, 0x2b, + 0x93, 0x36, 0xd4, 0x81, 0x81, 0x73, 0x9e, 0x62, 0x95, 0x8e, 0xeb, 0x6a, 0xb4, 0xe5, 0x8c, 0xbc, + 0x5e, 0xe4, 0x8c, 0xd4, 0x1f, 0xd3, 0x0c, 0x8d, 0x50, 0x2c, 0xb1, 0xc9, 0x9f, 0xda, 0x22, 0x2c, + 0x0e, 0x7b, 0xa6, 0xed, 0xf9, 0x89, 0x17, 0x88, 0x57, 0x16, 0x73, 0x55, 0xd9, 0x22, 0x4b, 0x9d, + 0x28, 0x38, 0xef, 0x39, 0xfb, 0x7b, 0x7d, 0xa0, 0x52, 0xaa, 0x59, 0xe8, 0x5a, 0x41, 0x81, 0x7f, + 0x87, 0x4d, 0x3e, 0x53, 0x73, 0xab, 0x6f, 0xbf, 0x58, 0x12, 0xee, 0xca, 0x31, 0xfd, 0xb9, 0x6a, + 0xc0, 0xd6, 0x34, 0x08, 0x9b, 0x78, 0xb4, 0x27, 0xbe, 0xb7, 0x4d, 0xf8, 0x43, 0xfd, 0xe9, 0x9e, + 0x2c, 0x4a, 0x00, 0xd6, 0x38, 0xb4, 0x27, 0x75, 0x6f, 0x63, 0x43, 0xf8, 0x25, 0x54, 0x4f, 0xe8, + 0xe8, 0x60, 0x06, 0xe1, 0xb5, 0xf0, 0xc3, 0x2d, 0x61, 0x7f, 0x1b, 0xb5, 0xf0, 0xc3, 0x2d, 0xcc, + 0x20, 0xf4, 0x2b, 0x05, 0x61, 0xd4, 0x74, 0x7c, 0xef, 0x35, 0x52, 0x57, 0x5c, 0x84, 0xdd, 0xad, + 0xbe, 0xd2, 0xd5, 0x4e, 0x14, 0x9c, 0xf7, 0x1c, 0x9d, 0xd0, 0xad, 0x88, 0xd4, 0x3d, 0x37, 0x31, + 0xa9, 0x41, 0x7a, 0x42, 0xaf, 0x74, 0x60, 0xe0, 0x9c, 0xa7, 0xd0, 0x34, 0x8c, 0xca, 0x94, 0x78, + 0x59, 0xf0, 0x68, 0x30, 0x5d, 0x60, 0x05, 0xa7, 0xc1, 0x38, 0x8b, 0x4f, 0x85, 0x64, 0x53, 0xd4, + 0x44, 0x63, 0x66, 0xba, 0x21, 0x24, 0x65, 0xad, 0x34, 0xac, 0x30, 0xec, 0x8f, 0x97, 0xa9, 0x52, + 0xef, 0x52, 0x7a, 0xf0, 0x9e, 0x05, 0x9a, 0xa6, 0x67, 0x64, 0x5f, 0x0f, 0x33, 0xf2, 0x59, 0x18, + 0xba, 0x19, 0x87, 0x81, 0x0a, 0xe2, 0xac, 0x74, 0x0d, 0xe2, 0x34, 0xb0, 0xf2, 0x83, 0x38, 0xfb, + 0x8b, 0x0a, 0xe2, 0x1c, 0xb8, 0xcb, 0x20, 0xce, 0x3f, 0xa8, 0x80, 0xba, 0x57, 0xe8, 0x2a, 0x49, + 0x6e, 0x85, 0xd1, 0x96, 0x17, 0x34, 0x58, 0x29, 0x81, 0xaf, 0x5a, 0x30, 0xc4, 0xd7, 0xcb, 0xa2, + 0x99, 0x84, 0xb7, 0x51, 0xd0, 0x85, 0x35, 0x29, 0x66, 0x93, 0x6b, 0x06, 0xa3, 0xcc, 0x9d, 0xc3, + 0x26, 0x08, 0xa7, 0x7a, 0x84, 0x3e, 0x02, 0x20, 0x9d, 0xb8, 0x1b, 0x52, 0x02, 0x2f, 0x14, 0xd3, + 0x3f, 0x4c, 0x36, 0xb4, 0x49, 0xbd, 0xa6, 0x98, 0x60, 0x83, 0x21, 0xfa, 0xb4, 0x4e, 0x50, 0xe4, + 0xd9, 0x1e, 0x1f, 0x3a, 0x96, 0xb1, 0xe9, 0x25, 0x3d, 0x11, 0xc3, 0x80, 0x17, 0x34, 0xe8, 0x3c, + 0x11, 0xc1, 0x6e, 0x6f, 0xcf, 0x2b, 0xc3, 0xb1, 0x18, 0x3a, 0xf5, 0x19, 0xc7, 0x77, 0x02, 0x97, + 0x44, 0x0b, 0x1c, 0x5d, 0x6b, 0x50, 0xd1, 0x80, 0x25, 0xa1, 0x8e, 0x1b, 0x99, 0x2a, 0xbd, 0xdc, + 0xc8, 0x74, 0xe6, 0xbd, 0x30, 0xd6, 0xf1, 0x31, 0x0f, 0x95, 0x8d, 0x78, 0xf7, 0x89, 0x8c, 0xf6, + 0x6f, 0xf7, 0x6b, 0xa5, 0x75, 0x35, 0xac, 0xf3, 0x0b, 0x7e, 0x22, 0xfd, 0x45, 0x85, 0xc9, 0x5c, + 0xe0, 0x14, 0x51, 0x6a, 0xc6, 0x68, 0xc4, 0x26, 0x4b, 0x3a, 0x47, 0x5b, 0x4e, 0x44, 0x82, 0xe3, + 0x9e, 0xa3, 0x2b, 0x8a, 0x09, 0x36, 0x18, 0xa2, 0xcd, 0x54, 0x3a, 0xd2, 0xc5, 0xa3, 0xa7, 0x23, + 0xb1, 0x02, 0x65, 0x79, 0xf7, 0x60, 0x7c, 0xc1, 0x82, 0x91, 0x20, 0x35, 0x73, 0x8b, 0x89, 0x40, + 0xce, 0x5f, 0x15, 0xfc, 0x5a, 0xba, 0x74, 0x1b, 0xce, 0xf0, 0xcf, 0x53, 0x69, 0x95, 0x43, 0xaa, + 0x34, 0x7d, 0xc1, 0x58, 0x7f, 0xb7, 0x0b, 0xc6, 0x50, 0xa0, 0x6e, 0x58, 0x1c, 0x28, 0xfc, 0x86, + 0x45, 0xc8, 0xb9, 0x5d, 0xf1, 0x06, 0xd4, 0xdc, 0x88, 0x38, 0xc9, 0x5d, 0x5e, 0xb6, 0xc7, 0x62, + 0x3b, 0x66, 0x25, 0x01, 0xac, 0x69, 0xd9, 0xff, 0xa7, 0x0f, 0x4e, 0xc8, 0x11, 0x91, 0xd9, 0x0b, + 0x54, 0x3f, 0x72, 0xbe, 0xda, 0x56, 0x56, 0xfa, 0xf1, 0x92, 0x04, 0x60, 0x8d, 0x43, 0xed, 0xb1, + 0x76, 0x4c, 0x96, 0x5b, 0x24, 0x58, 0xf4, 0xd6, 0x63, 0x71, 0x18, 0xab, 0x16, 0xca, 0x35, 0x0d, + 0xc2, 0x26, 0x1e, 0xb5, 0xed, 0x1d, 0xc3, 0x68, 0x35, 0x6c, 0x7b, 0x69, 0xa8, 0x4a, 0x38, 0xfa, + 0xe5, 0xdc, 0x5a, 0xc8, 0xc5, 0xe4, 0xfc, 0x75, 0x24, 0x6d, 0x1c, 0xf2, 0x7e, 0xd6, 0xbf, 0x6f, + 0xc1, 0x69, 0xde, 0x2a, 0x47, 0xf2, 0x5a, 0xab, 0xee, 0x24, 0x24, 0x2e, 0xe6, 0x0e, 0x85, 0x9c, + 0xfe, 0x69, 0xf7, 0x72, 0x1e, 0x5b, 0x9c, 0xdf, 0x1b, 0xf4, 0xba, 0x05, 0xa3, 0x5b, 0xa9, 0x72, + 0x31, 0x52, 0x75, 0x1c, 0xb5, 0x92, 0x43, 0x8a, 0xa8, 0x5e, 0x6a, 0xe9, 0xf6, 0x18, 0x67, 0xb9, + 0xdb, 0xff, 0xc3, 0x02, 0x53, 0x8c, 0xde, 0xfb, 0x2a, 0x33, 0x87, 0x37, 0x05, 0xa5, 0x75, 0x59, + 0xe9, 0x6a, 0x5d, 0x3e, 0x0a, 0xe5, 0xb6, 0x57, 0x17, 0xfb, 0x0b, 0x7d, 0x44, 0xbc, 0x30, 0x87, + 0x69, 0xbb, 0xfd, 0x2f, 0x2b, 0xda, 0x0d, 0x22, 0x52, 0xea, 0x7e, 0x28, 0x5e, 0x7b, 0x43, 0xd5, + 0xa9, 0xe3, 0x6f, 0x7e, 0xb5, 0xa3, 0x4e, 0xdd, 0x4f, 0x1d, 0x3e, 0x63, 0x92, 0x0f, 0x50, 0xb7, + 0x32, 0x75, 0x03, 0x07, 0xa4, 0x4b, 0xde, 0x84, 0x2a, 0xdd, 0x82, 0x31, 0x7f, 0x66, 0x35, 0xd5, + 0xa9, 0xea, 0x25, 0xd1, 0x7e, 0x67, 0x6f, 0xe2, 0x5d, 0x87, 0xef, 0x96, 0x7c, 0x1a, 0x2b, 0xfa, + 0x28, 0x86, 0x1a, 0xfd, 0xcd, 0x32, 0x3b, 0xc5, 0xe6, 0xee, 0x9a, 0x92, 0x99, 0x12, 0x50, 0x48, + 0xda, 0xa8, 0xe6, 0x83, 0x02, 0xa8, 0xb1, 0xab, 0xac, 0x19, 0x53, 0xbe, 0x07, 0x5c, 0x51, 0xf9, + 0x95, 0x12, 0x70, 0x67, 0x6f, 0xe2, 0x85, 0xc3, 0x33, 0x55, 0x8f, 0x63, 0xcd, 0xc2, 0xfe, 0xeb, + 0x3e, 0x3d, 0x77, 0x45, 0x79, 0xc2, 0x1f, 0x8a, 0xb9, 0xfb, 0x7c, 0x66, 0xee, 0x9e, 0xeb, 0x98, + 0xbb, 0x23, 0xfa, 0xca, 0xe5, 0xd4, 0x6c, 0xbc, 0xd7, 0x86, 0xc0, 0xc1, 0xfe, 0x06, 0x66, 0x01, + 0xbd, 0xda, 0xf6, 0x22, 0x12, 0xaf, 0x44, 0xed, 0xc0, 0x0b, 0x1a, 0x6c, 0x3a, 0x56, 0x4d, 0x0b, + 0x28, 0x05, 0xc6, 0x59, 0x7c, 0xba, 0xa9, 0xa7, 0xdf, 0xfc, 0x86, 0xb3, 0xcd, 0x67, 0x95, 0x51, + 0xb1, 0x6d, 0x55, 0xb4, 0x63, 0x85, 0x81, 0x36, 0xe1, 0xac, 0x24, 0x30, 0x47, 0x7c, 0x22, 0xee, + 0x4c, 0xde, 0xf0, 0xa2, 0x26, 0x0f, 0x10, 0xe7, 0x91, 0x09, 0x6f, 0x13, 0x14, 0xce, 0xe2, 0x7d, + 0x70, 0xf1, 0xbe, 0x94, 0xec, 0xaf, 0xb3, 0xf3, 0x7a, 0x23, 0x79, 0x9d, 0xce, 0x3e, 0x9f, 0xdd, + 0x52, 0xce, 0x0b, 0xcb, 0xa9, 0xd9, 0xc7, 0xaf, 0x26, 0xe7, 0x30, 0x74, 0x0b, 0x06, 0xd6, 0xf9, + 0x7d, 0x9b, 0xc5, 0xd4, 0xf6, 0x17, 0x97, 0x77, 0xb2, 0x9b, 0x8c, 0xe4, 0x4d, 0x9e, 0x77, 0xf4, + 0x4f, 0x2c, 0xb9, 0xd9, 0xdf, 0xaa, 0xc0, 0x68, 0xe6, 0x1e, 0xeb, 0x54, 0x49, 0xdf, 0xd2, 0x81, + 0x25, 0x7d, 0x3f, 0x08, 0x50, 0x27, 0x2d, 0x3f, 0xdc, 0x65, 0x86, 0x5f, 0xdf, 0xa1, 0x0d, 0x3f, + 0xb5, 0x57, 0x98, 0x53, 0x54, 0xb0, 0x41, 0x51, 0x54, 0xd3, 0xe3, 0x15, 0x82, 0x33, 0xd5, 0xf4, + 0x8c, 0x1b, 0x40, 0xfa, 0xef, 0xed, 0x0d, 0x20, 0x1e, 0x8c, 0xf2, 0x2e, 0xaa, 0x14, 0xf1, 0xbb, + 0xc8, 0x04, 0x67, 0x49, 0x36, 0x73, 0x69, 0x32, 0x38, 0x4b, 0xf7, 0x7e, 0x5e, 0x53, 0x8f, 0xde, + 0x01, 0x35, 0xf9, 0x9d, 0xe3, 0xf1, 0x9a, 0x2e, 0xb3, 0x21, 0xa7, 0x01, 0xbb, 0x3e, 0x5e, 0xfc, + 0xec, 0xa8, 0x76, 0x01, 0xf7, 0xab, 0xda, 0x85, 0xfd, 0xf9, 0x12, 0xdd, 0x31, 0xf0, 0x7e, 0xa9, + 0xc2, 0x4d, 0x4f, 0x40, 0xbf, 0xd3, 0x4e, 0x36, 0xc3, 0x8e, 0x1b, 0x3b, 0xa7, 0x59, 0x2b, 0x16, + 0x50, 0xb4, 0x08, 0x7d, 0x75, 0x5d, 0x8c, 0xe7, 0x30, 0xdf, 0x53, 0x3b, 0x5f, 0x9d, 0x84, 0x60, + 0x46, 0x05, 0x9d, 0x85, 0xbe, 0xc4, 0x69, 0xc8, 0xbc, 0x40, 0x96, 0x0b, 0xbe, 0xe6, 0x34, 0x62, + 0xcc, 0x5a, 0x4d, 0x43, 0xa1, 0xef, 0x00, 0x43, 0xe1, 0x05, 0x18, 0x8e, 0xbd, 0x46, 0xe0, 0x24, + 0xed, 0x88, 0x18, 0xe7, 0x93, 0x3a, 0x3a, 0xc5, 0x04, 0xe2, 0x34, 0xae, 0xfd, 0x3b, 0x43, 0x70, + 0x6a, 0x75, 0x76, 0x49, 0x96, 0x98, 0x3f, 0xb6, 0xd4, 0xbe, 0x3c, 0x1e, 0xf7, 0x2e, 0xb5, 0xaf, + 0x0b, 0x77, 0xdf, 0x48, 0xed, 0xf3, 0x8d, 0xd4, 0xbe, 0x74, 0x9e, 0x55, 0xb9, 0x88, 0x3c, 0xab, + 0xbc, 0x1e, 0xf4, 0x92, 0x67, 0x75, 0x6c, 0xb9, 0x7e, 0xfb, 0x76, 0xe8, 0x50, 0xb9, 0x7e, 0x2a, + 0x11, 0xb2, 0x90, 0x0c, 0x98, 0x2e, 0x9f, 0x2a, 0x37, 0x11, 0x52, 0x25, 0xa1, 0xf1, 0xec, 0x2e, + 0x21, 0xea, 0x5f, 0x2e, 0xbe, 0x03, 0x3d, 0x24, 0xa1, 0x89, 0x04, 0x33, 0x33, 0xf1, 0x71, 0xa0, + 0x88, 0xc4, 0xc7, 0xbc, 0xee, 0x1c, 0x98, 0xf8, 0xf8, 0x02, 0x0c, 0xbb, 0x7e, 0x18, 0x90, 0x95, + 0x28, 0x4c, 0x42, 0x37, 0x94, 0x77, 0x06, 0xea, 0x2b, 0x6f, 0x4c, 0x20, 0x4e, 0xe3, 0x76, 0xcb, + 0x9a, 0xac, 0x1d, 0x35, 0x6b, 0x12, 0xee, 0x53, 0xd6, 0xe4, 0x2f, 0xe8, 0xfc, 0xfe, 0x41, 0xf6, + 0x45, 0x3e, 0x58, 0xfc, 0x17, 0xe9, 0xe9, 0x52, 0xc0, 0x37, 0xf8, 0x95, 0x99, 0xd4, 0x04, 0x9f, + 0x0d, 0x9b, 0xd4, 0xf0, 0x1b, 0x62, 0x43, 0xf2, 0xca, 0x31, 0x4c, 0xd8, 0x1b, 0xab, 0x9a, 0x8d, + 0xba, 0x46, 0x53, 0x37, 0xe1, 0x74, 0x47, 0x8e, 0x52, 0x7f, 0xe0, 0xcb, 0x25, 0xf8, 0x91, 0x03, + 0xbb, 0x80, 0x6e, 0x01, 0x24, 0x4e, 0x43, 0x4c, 0x54, 0x71, 0x34, 0x73, 0xc4, 0x10, 0xd2, 0x35, + 0x49, 0x8f, 0x17, 0xce, 0x51, 0x7f, 0xd9, 0xa1, 0x87, 0xfc, 0xcd, 0x22, 0x47, 0x43, 0xbf, 0xa3, + 0xbe, 0x28, 0x0e, 0x7d, 0x82, 0x19, 0x84, 0xaa, 0xff, 0x88, 0x34, 0xf4, 0x7d, 0xf3, 0xea, 0xf3, + 0x61, 0xd6, 0x8a, 0x05, 0x14, 0x3d, 0x07, 0x83, 0x8e, 0xef, 0xf3, 0xf4, 0x24, 0x12, 0x8b, 0xbb, + 0xa8, 0x74, 0xa1, 0x43, 0x0d, 0xc2, 0x26, 0x9e, 0xfd, 0x97, 0x25, 0x98, 0x38, 0x40, 0xa6, 0x74, + 0xa4, 0xa5, 0x56, 0x7a, 0x4e, 0x4b, 0x15, 0x29, 0x1b, 0xfd, 0x5d, 0x52, 0x36, 0x9e, 0x83, 0xc1, + 0x84, 0x38, 0x4d, 0x11, 0x74, 0x26, 0x7c, 0x0e, 0xfa, 0xac, 0x59, 0x83, 0xb0, 0x89, 0x47, 0xa5, + 0xd8, 0x88, 0xe3, 0xba, 0x24, 0x8e, 0x65, 0x4e, 0x86, 0xf0, 0xdb, 0x16, 0x96, 0xf0, 0xc1, 0xdc, + 0xe1, 0xd3, 0x29, 0x16, 0x38, 0xc3, 0x32, 0x3b, 0xe0, 0xb5, 0x1e, 0x07, 0xfc, 0x6b, 0x25, 0x78, + 0x74, 0x5f, 0xed, 0xd6, 0x73, 0xba, 0x4c, 0x3b, 0x26, 0x51, 0x76, 0xe2, 0x5c, 0x8b, 0x49, 0x84, + 0x19, 0x84, 0x8f, 0x52, 0xab, 0x65, 0xdc, 0xe7, 0x5f, 0x74, 0xee, 0x18, 0x1f, 0xa5, 0x14, 0x0b, + 0x9c, 0x61, 0x79, 0xb7, 0xd3, 0xf2, 0x5b, 0x7d, 0xf0, 0x78, 0x0f, 0x36, 0x40, 0x81, 0x39, 0x76, + 0xe9, 0x7c, 0xd0, 0xf2, 0x7d, 0xca, 0x07, 0xbd, 0xbb, 0xe1, 0x7a, 0x33, 0x8d, 0xb4, 0xa7, 0x5c, + 0xbe, 0xaf, 0x97, 0xe0, 0x4c, 0x77, 0x83, 0x05, 0xbd, 0x1b, 0x46, 0x23, 0x15, 0x64, 0x67, 0xa6, + 0x92, 0x9e, 0xe4, 0x9e, 0x9d, 0x14, 0x08, 0x67, 0x71, 0xd1, 0x24, 0x40, 0xcb, 0x49, 0x36, 0xe3, + 0x0b, 0x3b, 0x5e, 0x9c, 0x88, 0x82, 0x52, 0x23, 0xfc, 0x2c, 0x51, 0xb6, 0x62, 0x03, 0x83, 0xb2, + 0x63, 0xff, 0xe6, 0xc2, 0xab, 0x61, 0xc2, 0x1f, 0xe2, 0x9b, 0xad, 0x93, 0xf2, 0xfa, 0x1d, 0x03, + 0x84, 0xb3, 0xb8, 0x94, 0x1d, 0x3b, 0xad, 0xe6, 0x1d, 0xe5, 0xbb, 0x30, 0xc6, 0x6e, 0x51, 0xb5, + 0x62, 0x03, 0x23, 0x9b, 0x24, 0x5b, 0x39, 0x38, 0x49, 0xd6, 0xfe, 0x17, 0x25, 0x78, 0xa4, 0xab, + 0xc1, 0xdb, 0x9b, 0x98, 0x7a, 0xf0, 0x12, 0x5b, 0xef, 0x72, 0x85, 0x1d, 0x2e, 0x21, 0xf2, 0x4f, + 0xba, 0xcc, 0x34, 0x91, 0x10, 0x79, 0xf7, 0x75, 0x1e, 0x1e, 0xbc, 0xf1, 0xec, 0xc8, 0x81, 0xec, + 0x3b, 0x44, 0x0e, 0x64, 0xe6, 0x63, 0x54, 0x7a, 0xd4, 0x0e, 0x7f, 0xd6, 0xd7, 0x75, 0x78, 0xe9, + 0x06, 0xb9, 0x27, 0xbf, 0xf9, 0x1c, 0x9c, 0xf0, 0x02, 0x76, 0x15, 0xdb, 0x6a, 0x7b, 0x5d, 0xd4, + 0x18, 0xe2, 0x85, 0x34, 0x55, 0xa2, 0xc5, 0x42, 0x06, 0x8e, 0x3b, 0x9e, 0x78, 0x00, 0x73, 0x52, + 0xef, 0x6e, 0x48, 0x0f, 0x29, 0xb9, 0x97, 0xe1, 0xb4, 0x1c, 0x8a, 0x4d, 0x27, 0x22, 0x75, 0xa1, + 0x6c, 0x63, 0x91, 0x5a, 0xf3, 0x08, 0x4f, 0xcf, 0xc9, 0x41, 0xc0, 0xf9, 0xcf, 0xb1, 0xdb, 0xaf, + 0xc2, 0x96, 0xe7, 0x8a, 0xad, 0xa0, 0xbe, 0xfd, 0x8a, 0x36, 0x62, 0x0e, 0xd3, 0xfa, 0xa2, 0x76, + 0x6f, 0xf4, 0xc5, 0x07, 0xa1, 0xa6, 0xc6, 0x9b, 0x67, 0x09, 0xa8, 0x49, 0xde, 0x91, 0x25, 0xa0, + 0x66, 0xb8, 0x81, 0x75, 0xd0, 0xf5, 0xac, 0x3f, 0x01, 0x43, 0xca, 0xfb, 0xd5, 0xeb, 0x1d, 0x64, + 0xf6, 0x9f, 0xf7, 0xc3, 0x70, 0xaa, 0xae, 0x68, 0xca, 0xed, 0x6d, 0x1d, 0xe8, 0xf6, 0x66, 0x09, + 0x22, 0xed, 0x40, 0x5e, 0x50, 0x68, 0x24, 0x88, 0xb4, 0x03, 0x82, 0x39, 0x8c, 0x6e, 0x3a, 0xea, + 0xd1, 0x2e, 0x6e, 0x07, 0x22, 0xe2, 0x55, 0x6d, 0x3a, 0xe6, 0x58, 0x2b, 0x16, 0x50, 0xf4, 0x31, + 0x0b, 0x86, 0x62, 0x76, 0x7a, 0xc3, 0x0f, 0x0d, 0xc4, 0x24, 0xbf, 0x7c, 0xf4, 0xb2, 0xa9, 0xaa, + 0x86, 0x2e, 0x8b, 0x90, 0x32, 0x5b, 0x70, 0x8a, 0x23, 0xfa, 0xa4, 0x05, 0x35, 0x75, 0x8f, 0x92, + 0xb8, 0x6d, 0x74, 0xb5, 0xd8, 0xb2, 0xad, 0xdc, 0xdb, 0xac, 0x0e, 0xc2, 0x54, 0xfd, 0x4c, 0xac, + 0x19, 0xa3, 0x58, 0x79, 0xf4, 0x07, 0x8e, 0xc7, 0xa3, 0x0f, 0x39, 0xde, 0xfc, 0x77, 0x40, 0xad, + 0xe9, 0x04, 0xde, 0x06, 0x89, 0x13, 0xee, 0x64, 0x97, 0xd5, 0xa4, 0x65, 0x23, 0xd6, 0x70, 0x6a, + 0x00, 0xc4, 0xec, 0xc5, 0x12, 0xc3, 0x2b, 0xce, 0x0c, 0x80, 0x55, 0xdd, 0x8c, 0x4d, 0x1c, 0xd3, + 0x85, 0x0f, 0xf7, 0xd5, 0x85, 0x3f, 0x78, 0x80, 0x0b, 0x7f, 0x15, 0x4e, 0x3b, 0xed, 0x24, 0xbc, + 0x44, 0x1c, 0x7f, 0x9a, 0x5f, 0x1d, 0x2c, 0xae, 0xc2, 0x1f, 0x62, 0x6e, 0x21, 0x15, 0xd3, 0xb1, + 0x4a, 0xfc, 0x8d, 0x0e, 0x24, 0x9c, 0xff, 0xac, 0xfd, 0x4f, 0x2d, 0x38, 0x9d, 0x3b, 0x15, 0x1e, + 0xdc, 0x68, 0x5a, 0xfb, 0x4b, 0x15, 0x38, 0x99, 0x53, 0x75, 0x18, 0xed, 0x9a, 0x8b, 0xc4, 0x2a, + 0x22, 0x30, 0x25, 0x1d, 0x67, 0x21, 0xbf, 0x4d, 0xce, 0xca, 0x38, 0xdc, 0xa9, 0x9c, 0x3e, 0x19, + 0x2b, 0xdf, 0xdb, 0x93, 0x31, 0x63, 0xae, 0xf7, 0xdd, 0xd7, 0xb9, 0x5e, 0x39, 0x60, 0xae, 0x7f, + 0xc3, 0x82, 0xf1, 0x66, 0x97, 0xab, 0x2e, 0x84, 0x8f, 0xf9, 0xfa, 0xf1, 0x5c, 0xa4, 0x31, 0x73, + 0xf6, 0xf6, 0xde, 0x44, 0xd7, 0x1b, 0x46, 0x70, 0xd7, 0x5e, 0xd9, 0xdf, 0x2b, 0x03, 0x2b, 0x79, + 0xcd, 0x2a, 0x4b, 0xee, 0xa2, 0x8f, 0x9a, 0xc5, 0xcb, 0xad, 0xa2, 0x0a, 0x6d, 0x73, 0xe2, 0xaa, + 0xf8, 0x39, 0x1f, 0xc1, 0xbc, 0x5a, 0xe8, 0x59, 0x49, 0x58, 0xea, 0x41, 0x12, 0xfa, 0xb2, 0x4a, + 0x7c, 0xb9, 0xf8, 0x2a, 0xf1, 0xb5, 0x6c, 0x85, 0xf8, 0xfd, 0x3f, 0x71, 0xdf, 0x03, 0xf9, 0x89, + 0x7f, 0xc5, 0xe2, 0x82, 0x27, 0xf3, 0x15, 0xb4, 0xb9, 0x61, 0xed, 0x63, 0x6e, 0x3c, 0x05, 0xd5, + 0x58, 0x48, 0x66, 0x61, 0x96, 0xe8, 0xa0, 0x08, 0xd1, 0x8e, 0x15, 0x06, 0xbb, 0x46, 0xda, 0xf7, + 0xc3, 0x5b, 0x17, 0x9a, 0xad, 0x64, 0x57, 0x18, 0x28, 0xfa, 0x1a, 0x69, 0x05, 0xc1, 0x06, 0x96, + 0xfd, 0xf7, 0x4a, 0x7c, 0x06, 0x8a, 0xc8, 0x9a, 0xe7, 0x33, 0x17, 0x7f, 0xf6, 0x1e, 0x94, 0xf2, + 0x61, 0x00, 0x37, 0x6c, 0xb6, 0xa8, 0xf1, 0xba, 0x16, 0x8a, 0xe3, 0xbf, 0x4b, 0x47, 0x35, 0x44, + 0x25, 0x3d, 0xfd, 0x1a, 0xba, 0x0d, 0x1b, 0xfc, 0x52, 0xb2, 0xb4, 0x7c, 0xa0, 0x2c, 0x4d, 0x89, + 0x95, 0xbe, 0xfd, 0xc5, 0x8a, 0xfd, 0x97, 0x16, 0xa4, 0xcc, 0x2c, 0xd4, 0x82, 0x0a, 0xed, 0xee, + 0xae, 0x58, 0xa1, 0xcb, 0xc5, 0xd9, 0x74, 0x54, 0x34, 0x8a, 0x69, 0xcf, 0x7e, 0x62, 0xce, 0x08, + 0xf9, 0x22, 0x00, 0x87, 0x8f, 0xea, 0xd5, 0xe2, 0x18, 0x5e, 0x0a, 0xc3, 0x2d, 0x7e, 0x86, 0xad, + 0x83, 0x79, 0xec, 0xe7, 0x61, 0xac, 0xa3, 0x53, 0xec, 0x8e, 0xbf, 0x90, 0x6a, 0x9f, 0xcc, 0x74, + 0x65, 0xf9, 0xc8, 0x98, 0xc3, 0xec, 0xaf, 0x5b, 0x70, 0x22, 0x4b, 0x1e, 0xbd, 0x61, 0xc1, 0x58, + 0x9c, 0xa5, 0x77, 0x5c, 0x63, 0xa7, 0x82, 0x68, 0x3b, 0x40, 0xb8, 0xb3, 0x13, 0xf6, 0x5f, 0x8b, + 0xc9, 0x7f, 0xc3, 0x0b, 0xea, 0xe1, 0x2d, 0x65, 0x98, 0x58, 0x5d, 0x0d, 0x13, 0xba, 0x1e, 0xdd, + 0x4d, 0x52, 0x6f, 0xfb, 0x1d, 0xd9, 0xcd, 0xab, 0xa2, 0x1d, 0x2b, 0x0c, 0x96, 0xcc, 0xd9, 0x16, + 0xd7, 0x48, 0x64, 0x26, 0xe5, 0x9c, 0x68, 0xc7, 0x0a, 0x03, 0x3d, 0x0b, 0x43, 0xc6, 0x4b, 0xca, + 0x79, 0xc9, 0xac, 0x7c, 0x43, 0x65, 0xc6, 0x38, 0x85, 0x85, 0x26, 0x01, 0x94, 0x91, 0x23, 0x55, + 0x24, 0xf3, 0x76, 0x29, 0x49, 0x14, 0x63, 0x03, 0x83, 0xa5, 0x4e, 0xfb, 0xed, 0x98, 0x1d, 0xe7, + 0xf4, 0xeb, 0xd2, 0xc6, 0xb3, 0xa2, 0x0d, 0x2b, 0x28, 0x95, 0x26, 0x4d, 0x27, 0x68, 0x3b, 0x3e, + 0x1d, 0x21, 0xb1, 0x7f, 0x55, 0xcb, 0x70, 0x49, 0x41, 0xb0, 0x81, 0x45, 0xdf, 0x38, 0xf1, 0x9a, + 0xe4, 0xa5, 0x30, 0x90, 0xc1, 0x8f, 0xfa, 0x84, 0x4f, 0xb4, 0x63, 0x85, 0x61, 0xff, 0x85, 0x05, + 0xa3, 0xba, 0x66, 0x03, 0xbf, 0xcd, 0xdf, 0xdc, 0x6e, 0x5b, 0x07, 0x6e, 0xb7, 0xd3, 0x19, 0xea, + 0xa5, 0x9e, 0x32, 0xd4, 0xcd, 0xe4, 0xf1, 0xf2, 0xbe, 0xc9, 0xe3, 0x3f, 0xaa, 0x6f, 0x8a, 0xe6, + 0x59, 0xe6, 0x83, 0x79, 0xb7, 0x44, 0x23, 0x1b, 0xfa, 0x5d, 0x47, 0xd5, 0x36, 0x1a, 0xe2, 0x1b, + 0x92, 0xd9, 0x69, 0x86, 0x24, 0x20, 0xf6, 0x32, 0xd4, 0xd4, 0x41, 0x97, 0xdc, 0xfd, 0x5a, 0xf9, + 0xbb, 0xdf, 0x9e, 0x92, 0x58, 0x67, 0xd6, 0xbf, 0xf9, 0xfd, 0xc7, 0xde, 0xf2, 0x47, 0xdf, 0x7f, + 0xec, 0x2d, 0xdf, 0xfd, 0xfe, 0x63, 0x6f, 0xf9, 0xd8, 0xed, 0xc7, 0xac, 0x6f, 0xde, 0x7e, 0xcc, + 0xfa, 0xa3, 0xdb, 0x8f, 0x59, 0xdf, 0xbd, 0xfd, 0x98, 0xf5, 0xbd, 0xdb, 0x8f, 0x59, 0x5f, 0xf8, + 0xaf, 0x8f, 0xbd, 0xe5, 0xa5, 0xdc, 0xe8, 0x57, 0xfa, 0xe3, 0x69, 0xb7, 0x3e, 0xb5, 0x7d, 0x9e, + 0x05, 0x60, 0xd2, 0xe5, 0x35, 0x65, 0xcc, 0xa9, 0x29, 0xb9, 0xbc, 0xfe, 0x6f, 0x00, 0x00, 0x00, + 0xff, 0xff, 0x54, 0x39, 0x21, 0x09, 0x7d, 0xec, 0x00, 0x00, } func (m *AWSAuthConfig) Marshal() (dAtA []byte, err error) { @@ -7231,6 +7231,11 @@ func (m *ApplicationSource) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l + i -= len(m.Name) + copy(dAtA[i:], m.Name) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Name))) + i-- + dAtA[i] = 0x72 i -= len(m.Ref) copy(dAtA[i:], m.Ref) i = encodeVarintGenerated(dAtA, i, uint64(len(m.Ref))) @@ -15672,6 +15677,8 @@ func (m *ApplicationSource) Size() (n int) { n += 1 + l + sovGenerated(uint64(l)) l = len(m.Ref) n += 1 + l + sovGenerated(uint64(l)) + l = len(m.Name) + n += 1 + l + sovGenerated(uint64(l)) return n } @@ -19046,6 +19053,7 @@ func (this *ApplicationSource) String() string { `Plugin:` + strings.Replace(this.Plugin.String(), "ApplicationSourcePlugin", "ApplicationSourcePlugin", 1) + `,`, `Chart:` + fmt.Sprintf("%v", this.Chart) + `,`, `Ref:` + fmt.Sprintf("%v", this.Ref) + `,`, + `Name:` + fmt.Sprintf("%v", this.Name) + `,`, `}`, }, "") return s @@ -27189,6 +27197,38 @@ func (m *ApplicationSource) Unmarshal(dAtA []byte) error { } m.Ref = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex + case 14: + 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 default: iNdEx = preIndex skippy, err := skipGenerated(dAtA[iNdEx:]) diff --git a/pkg/apis/application/v1alpha1/generated.proto b/pkg/apis/application/v1alpha1/generated.proto index 5911cfd171e3d9..729286e069e5f1 100644 --- a/pkg/apis/application/v1alpha1/generated.proto +++ b/pkg/apis/application/v1alpha1/generated.proto @@ -454,6 +454,9 @@ message ApplicationSource { // Ref is reference to another source within sources field. This field will not be used if used with a `source` tag. optional string ref = 13; + + // Name is used to refer to a source and is displayed in the UI. It is used in multi-source Applications. + optional string name = 14; } // ApplicationSourceDirectory holds options for applications of type plain YAML or Jsonnet diff --git a/pkg/apis/application/v1alpha1/types.go b/pkg/apis/application/v1alpha1/types.go index 998b1fbf1dfb61..75a5c12f7e2775 100644 --- a/pkg/apis/application/v1alpha1/types.go +++ b/pkg/apis/application/v1alpha1/types.go @@ -191,6 +191,8 @@ type ApplicationSource struct { Chart string `json:"chart,omitempty" protobuf:"bytes,12,opt,name=chart"` // Ref is reference to another source within sources field. This field will not be used if used with a `source` tag. Ref string `json:"ref,omitempty" protobuf:"bytes,13,opt,name=ref"` + // Name is used to refer to a source and is displayed in the UI. It is used in multi-source Applications. + Name string `json:"name,omitempty" protobuf:"bytes,14,opt,name=name"` } // ApplicationSources contains list of required information about the sources of an application diff --git a/server/application/application.go b/server/application/application.go index de961c82ea5f7f..838110c388e1d8 100644 --- a/server/application/application.go +++ b/server/application/application.go @@ -1229,6 +1229,18 @@ func (s *Server) validateAndNormalizeApp(ctx context.Context, app *appv1.Applica if app.GetName() == "" { return fmt.Errorf("resource name may not be empty") } + + // ensure sources names are unique + if app.Spec.HasMultipleSources() { + sourceNames := make(map[string]bool) + for _, source := range app.Spec.Sources { + if len(source.Name) > 0 && sourceNames[source.Name] { + return fmt.Errorf("application %s has duplicate source name: %s", app.Name, source.Name) + } + sourceNames[source.Name] = true + } + } + appNs := s.appNamespaceOrDefault(app.Namespace) currApp, err := s.appclientset.ArgoprojV1alpha1().Applications(appNs).Get(ctx, app.Name, metav1.GetOptions{}) if err != nil { diff --git a/test/e2e/app_multiple_sources_test.go b/test/e2e/app_multiple_sources_test.go index fd5f2d8d5fb696..e3118244e18d0b 100644 --- a/test/e2e/app_multiple_sources_test.go +++ b/test/e2e/app_multiple_sources_test.go @@ -167,3 +167,131 @@ func TestMultiSourceAppWithSourceOverride(t *testing.T) { assert.Contains(t, output, "foo=bar") }) } + +func TestMultiSourceAppWithSourceName(t *testing.T) { + sources := []ApplicationSource{{ + RepoURL: RepoURL(RepoURLTypeFile), + Path: guestbookPath, + Name: "guestbook", + }, { + RepoURL: RepoURL(RepoURLTypeFile), + Path: "two-nice-pods", + Name: "dynamic duo", + }} + ctx := Given(t) + ctx. + Sources(sources). + When(). + CreateMultiSourceAppFromFile(). + Then(). + And(func(app *Application) { + assert.Equal(t, Name(), app.Name) + for i, source := range app.Spec.GetSources() { + assert.Equal(t, sources[i].RepoURL, source.RepoURL) + assert.Equal(t, sources[i].Path, source.Path) + assert.Equal(t, sources[i].Name, source.Name) + } + assert.Equal(t, DeploymentNamespace(), app.Spec.Destination.Namespace) + assert.Equal(t, KubernetesInternalAPIServerAddr, app.Spec.Destination.Server) + }). + Expect(Event(EventReasonResourceCreated, "create")). + And(func(app *Application) { + // we remove the first source + output, err := RunCli("app", "remove-source", Name(), "--source-name", sources[0].Name) + require.NoError(t, err) + assert.Contains(t, output, "updated successfully") + }). + Expect(Success("")). + And(func(app *Application) { + assert.Len(t, app.Spec.GetSources(), 1) + // we add a source + output, err := RunCli("app", "add-source", Name(), "--source-name", sources[0].Name, "--repo", RepoURL(RepoURLTypeFile), "--path", guestbookPath) + require.NoError(t, err) + assert.Contains(t, output, "updated successfully") + }). + Expect(Success("")). + Given().Timeout(60). + When().Wait().Then(). + Expect(Success("")). + And(func(app *Application) { + assert.Len(t, app.Spec.GetSources(), 2) + // sources order has been inverted + assert.Equal(t, sources[1].Name, app.Spec.GetSources()[0].Name) + assert.Equal(t, sources[0].Name, app.Spec.GetSources()[1].Name) + statusByName := map[string]SyncStatusCode{} + for _, r := range app.Status.Resources { + statusByName[r.Name] = r.Status + } + // check if the app has 3 resources, guestbook and 2 pods + assert.Len(t, statusByName, 3) + assert.Equal(t, SyncStatusCodeSynced, statusByName["pod-1"]) + assert.Equal(t, SyncStatusCodeSynced, statusByName["pod-2"]) + assert.Equal(t, SyncStatusCodeSynced, statusByName["guestbook-ui"]) + }) +} + +func TestMultiSourceAppSetWithSourceName(t *testing.T) { + sources := []ApplicationSource{{ + RepoURL: RepoURL(RepoURLTypeFile), + Path: guestbookPath, + Name: "guestbook", + }, { + RepoURL: RepoURL(RepoURLTypeFile), + Path: "two-nice-pods", + Name: "dynamic duo", + }} + ctx := Given(t) + ctx. + Sources(sources). + When(). + CreateMultiSourceAppFromFile(). + Then(). + And(func(app *Application) { + assert.Equal(t, Name(), app.Name) + for i, source := range app.Spec.GetSources() { + assert.Equal(t, sources[i].RepoURL, source.RepoURL) + assert.Equal(t, sources[i].Path, source.Path) + assert.Equal(t, sources[i].Name, source.Name) + } + assert.Equal(t, DeploymentNamespace(), app.Spec.Destination.Namespace) + assert.Equal(t, KubernetesInternalAPIServerAddr, app.Spec.Destination.Server) + }). + Expect(Event(EventReasonResourceCreated, "create")). + And(func(app *Application) { + _, err := RunCli("app", "set", Name(), "--source-name", sources[1].Name, "--path", "deployment") + require.NoError(t, err) + }). + Expect(Success("")). + And(func(app *Application) { + assert.Equal(t, "deployment", app.Spec.GetSources()[1].Path) + }) +} + +func TestMultiSourceApptErrorWhenSourceNameAndSourcePosition(t *testing.T) { + sources := []ApplicationSource{{ + RepoURL: RepoURL(RepoURLTypeFile), + Path: guestbookPath, + Name: "guestbook", + }, { + RepoURL: RepoURL(RepoURLTypeFile), + Path: "two-nice-pods", + Name: "dynamic duo", + }} + ctx := Given(t) + ctx. + Sources(sources). + When(). + CreateMultiSourceAppFromFile(). + Then(). + Expect(Event(EventReasonResourceCreated, "create")). + And(func(app *Application) { + _, err := RunCli("app", "get", Name(), "--source-name", sources[1].Name, "--source-position", "1") + require.Error(t, err) + assert.Contains(t, err.Error(), "Only one of source-position and source-name can be specified.") + }). + And(func(app *Application) { + _, err := RunCli("app", "manifests", Name(), "--revisions", "0.0.2", "--source-names", sources[0].Name, "--revisions", "0.0.2", "--source-positions", "1") + require.Error(t, err) + assert.Contains(t, err.Error(), "Only one of source-positions and source-names can be specified.") + }) +} diff --git a/ui/src/app/applications/components/application-parameters/application-parameters.tsx b/ui/src/app/applications/components/application-parameters/application-parameters.tsx index 3771d32d3cf1a2..aacbfc6b20bfd2 100644 --- a/ui/src/app/applications/components/application-parameters/application-parameters.tsx +++ b/ui/src/app/applications/components/application-parameters/application-parameters.tsx @@ -307,7 +307,7 @@ export const ApplicationParameters = (props: {
-
Source {index + 1 + ': ' + appSource.repoURL}
+
Source {index + 1 + (appSource.name ? ' - ' + appSource.name : '') + ': ' + appSource.repoURL}
{(appSource.path ? 'PATH=' + appSource.path : '') + (appSource.targetRevision ? (appSource.path ? ', ' : '') + 'REVISION=' + appSource.targetRevision : '')}
@@ -586,6 +586,7 @@ function gatherCoreSourceDetails(i: number, attributes: EditablePanelItem[], sou const repoUrlField = 'spec.sources[' + i + '].repoURL'; const sourcesPathField = 'spec.sources[' + i + '].path'; const refField = 'spec.sources[' + i + '].ref'; + const nameField = 'spec.sources[' + i + '].name'; const chartField = 'spec.sources[' + i + '].chart'; const revisionField = 'spec.sources[' + i + '].targetRevision'; // For single source apps using the source field, these fields are shown in the Summary tab. @@ -595,6 +596,11 @@ function gatherCoreSourceDetails(i: number, attributes: EditablePanelItem[], sou view: , edit: (formApi: FormApi) => }); + attributes.push({ + title: 'NAME', + view: {source?.name}, + edit: (formApi: FormApi) => + }); if (isHelm) { attributes.push({ title: 'CHART', diff --git a/ui/src/app/applications/components/application-parameters/source-panel.tsx b/ui/src/app/applications/components/application-parameters/source-panel.tsx index c5d6ca4050291b..0e956670a6c081 100644 --- a/ui/src/app/applications/components/application-parameters/source-panel.tsx +++ b/ui/src/app/applications/components/application-parameters/source-panel.tsx @@ -57,6 +57,7 @@ const DEFAULT_APP: Partial = { path: '', repoURL: '', ref: '', + name: '', targetRevision: 'HEAD' }, sources: [], @@ -204,6 +205,11 @@ export const SourcePanel = (props: {
+
+
+ +
+
{(repoType === 'git' && ( diff --git a/ui/src/app/shared/models.ts b/ui/src/app/shared/models.ts index c9d37184539d3b..7d77bff2aab769 100644 --- a/ui/src/app/shared/models.ts +++ b/ui/src/app/shared/models.ts @@ -210,6 +210,8 @@ export interface ApplicationSource { directory?: ApplicationSourceDirectory; ref?: string; + + name?: string; } export interface ApplicationSourceHelm {