diff --git a/internal/cloudapi/v2/compose.go b/internal/cloudapi/v2/compose.go index 0bbcf07b1c..bf2fc02bd3 100644 --- a/internal/cloudapi/v2/compose.go +++ b/internal/cloudapi/v2/compose.go @@ -514,6 +514,9 @@ func (request *ComposeRequest) GetBlueprintFromCompose() (blueprint.Blueprint, e if rbp.Distro != nil { bp.Distro = *rbp.Distro } + if rbp.Architecture != nil { + bp.Arch = *rbp.Architecture + } if rbp.Packages != nil { for _, pkg := range *rbp.Packages { @@ -1150,6 +1153,10 @@ func (request *ComposeRequest) GetImageRequests(distroFactory *distrofactory.Fac } var irs []imageRequest for _, ir := range *request.ImageRequests { + // If there is an architecture in the blueprint it must match the request's arch + if len(bp.Arch) > 0 && ir.Architecture != bp.Arch { + return nil, HTTPError(ErrorMismatchedArchitecture) + } arch, err := distribution.GetArch(ir.Architecture) if err != nil { return nil, HTTPError(ErrorUnsupportedArchitecture) diff --git a/internal/cloudapi/v2/compose_test.go b/internal/cloudapi/v2/compose_test.go index f7f8dc7b78..49f9a294d0 100644 --- a/internal/cloudapi/v2/compose_test.go +++ b/internal/cloudapi/v2/compose_test.go @@ -848,6 +848,81 @@ func TestGetImageRequests_BlueprintDistro(t *testing.T) { assert.Equal(t, got[0].blueprint.Distro, "fedora-39") } +// TestGetImageRequests_BlueprintArchEmpty test blueprint with no arch +func TestGetImageRequests_BlueprintArchEmpty(t *testing.T) { + uo := UploadOptions(struct{}{}) + request := &ComposeRequest{ + Distribution: "fedora-40", + ImageRequest: &ImageRequest{ + Architecture: "x86_64", + ImageType: ImageTypesAws, + UploadOptions: &uo, + Repositories: []Repository{}, + }, + Blueprint: &Blueprint{ + Name: "arch-test", + }, + } + // NOTE: current directory is the location of this file, back up so it can use ./repositories/ + rr, err := reporegistry.New([]string{"../../../"}) + require.NoError(t, err) + got, err := request.GetImageRequests(distrofactory.NewDefault(), rr) + assert.NoError(t, err) + require.Len(t, got, 1) + require.Greater(t, len(got[0].repositories), 0) + assert.Equal(t, got[0].imageType.Arch().Name(), "x86_64") +} + +// TestGetImageRequests_BlueprintArch test to make sure matching arch works +func TestGetImageRequests_BlueprintArch(t *testing.T) { + uo := UploadOptions(struct{}{}) + request := &ComposeRequest{ + Distribution: "fedora-40", + ImageRequest: &ImageRequest{ + Architecture: "x86_64", + ImageType: ImageTypesAws, + UploadOptions: &uo, + Repositories: []Repository{}, + }, + Blueprint: &Blueprint{ + Name: "arch-test", + Architecture: common.ToPtr("x86_64"), + }, + } + // NOTE: current directory is the location of this file, back up so it can use ./repositories/ + rr, err := reporegistry.New([]string{"../../../"}) + require.NoError(t, err) + got, err := request.GetImageRequests(distrofactory.NewDefault(), rr) + assert.NoError(t, err) + require.Len(t, got, 1) + require.Greater(t, len(got[0].repositories), 0) + assert.Equal(t, got[0].imageType.Arch().Name(), "x86_64") +} + +// TestGetImageRequests_BlueprintArchError test to make sure mismatched arch returns error +func TestGetImageRequests_BlueprintArchError(t *testing.T) { + uo := UploadOptions(struct{}{}) + request := &ComposeRequest{ + Distribution: "fedora-40", + ImageRequest: &ImageRequest{ + Architecture: "x86_64", + ImageType: ImageTypesAws, + UploadOptions: &uo, + Repositories: []Repository{}, + }, + Blueprint: &Blueprint{ + Name: "arch-test", + Architecture: common.ToPtr("aarch64"), + }, + } + // NOTE: current directory is the location of this file, back up so it can use ./repositories/ + rr, err := reporegistry.New([]string{"../../../"}) + require.NoError(t, err) + _, err = request.GetImageRequests(distrofactory.NewDefault(), rr) + require.Error(t, err) + assert.Equal(t, HTTPError(ErrorMismatchedArchitecture), err) +} + func TestOpenSCAPTailoringOptions(t *testing.T) { cr := ComposeRequest{ Customizations: &Customizations{ diff --git a/internal/cloudapi/v2/errors.go b/internal/cloudapi/v2/errors.go index 4f1cbd0836..4376f5ebd1 100644 --- a/internal/cloudapi/v2/errors.go +++ b/internal/cloudapi/v2/errors.go @@ -50,6 +50,7 @@ const ( ErrorInvalidPartitioningMode ServiceErrorCode = 37 ErrorInvalidUploadTarget ServiceErrorCode = 38 ErrorBlueprintOrCustomNotBoth ServiceErrorCode = 39 + ErrorMismatchedArchitecture ServiceErrorCode = 40 // Internal errors, these are bugs ErrorFailedToInitializeBlueprint ServiceErrorCode = 1000 @@ -131,6 +132,7 @@ func getServiceErrors() serviceErrors { serviceError{ErrorInvalidPartitioningMode, http.StatusBadRequest, "Requested partitioning mode is invalid"}, serviceError{ErrorInvalidUploadTarget, http.StatusBadRequest, "Invalid upload target for image type"}, serviceError{ErrorBlueprintOrCustomNotBoth, http.StatusBadRequest, "Invalid request, include blueprint or customizations, not both"}, + serviceError{ErrorMismatchedArchitecture, http.StatusBadRequest, "Invalid request, Blueprint and Cloud API request Architecture must match."}, serviceError{ErrorFailedToInitializeBlueprint, http.StatusInternalServerError, "Failed to initialize blueprint"}, serviceError{ErrorFailedToGenerateManifestSeed, http.StatusInternalServerError, "Failed to generate manifest seed"}, diff --git a/internal/cloudapi/v2/openapi.v2.gen.go b/internal/cloudapi/v2/openapi.v2.gen.go index 779680745b..8e0f8dad8b 100644 --- a/internal/cloudapi/v2/openapi.v2.gen.go +++ b/internal/cloudapi/v2/openapi.v2.gen.go @@ -246,6 +246,10 @@ type AzureUploadStatus struct { // Blueprint defines model for Blueprint. type Blueprint struct { + // Architecture to use for the compose. If left empty the host arch + // will be used. + Architecture *string `json:"architecture,omitempty"` + // Container images to embed into the final artfact Containers *[]Container `json:"containers,omitempty"` Customizations *BlueprintCustomizations `json:"customizations,omitempty"` @@ -1518,191 +1522,191 @@ func RegisterHandlersWithBaseURL(router EchoRouter, si ServerInterface, baseURL var swaggerSpec = []string{ "H4sIAAAAAAAC/+x9eXPbOLL4V0HpTVVmftFlHbacqql9snzJtnxJtmOvUl6IhEhYJMAAoGR5Xr77r3CQ", - "IiXqSjy7O7v5Y3diEUej0d3obnQ3/shZ1A8oQUTw3Kc/cgFk0EcCMfOXg+R/bcQthgOBKcl9yl1DBwFM", - "bPSay+fQK/QDD6Waj6EXotyn3E7u27d8Dss+X0PEprl8jkBfflEt8zluuciHsouYBvJ3LhgmjurG8VvG", - "3JehP0AM0CHAAvkcYAIQtFxgBkxCEw0QQ1MuL4VHtV0Fz7fooxq6+dA9alVaHiWoJdHH1UTQtrEEE3rX", - "jAaICSwBGUKPo3wuSPz0R44hR61nYaJ8jruQoecJFu4ztCwamo0xK8t9+ntup1Kt1Xf3GvvlnUruSz6n", - "MJE5lvkBMganau0MfQ0xQ7YcxsDwJW5GBy/IErKfXt9d4FFoXynU8+9eYAx4DoWFCeKisJPL/zOXnc9x", - "AgPuUvGsdzsJkz8tRF8XocpGWDas69DYFVCEmktSiII+TkMEfVwoW41qeW+/urdXr+/X7dogC2Nbonhu", - "MXLe/Boa6FZ/hASCcOBhS7PwEIaeiNulWbo9BBwJIChQn8GvwkXAdAGKeX/LAwg8Spw8oINhyC0okA3u", - "bi/6BHPAkAgZQXYRtAUH6DXADMqhgY8dV4ABApxSghgQLiRgSBmgwkUMhGptfSIgc5DgxT7pkxksgoVI", - "TstdygRicjaQmAxAYvcJTk+IOZCwc+gjALmaSv6dnA7MZptt0YBSD0Hy45u62XYuI8WQedmiODmFbJQ5", - "/lvI0I+QizsNEHsePzuIII3PFOnk7uXy05TTcinlSOH4vgPavjyXTuUw92A2Sh7YeDhEDBEBhgiKkCEO", - "KAEKYADl/8YQe3DgoT6xUYCIjYkjW8hxF4bTG4dI6EtsKKDuKwmMzPgTS3hikTN3jEkSoUM1hSYMZAPV", - "QVIx8EOuCDck+Gsoz1rV0MFjRABDnIbMQsBhNAyKimblJJL6qI+FZI0ho77qIncOcSEJmUFiUx9QgsAA", - "cmTLFUJwd9c+BJj3iVkhss0CkxJSAZYlgjxqJXYqucAL8yVaZMDoGMtFRuA/K/DzYOIiprdQzSL5LfRs", - "tfgIL5DIbg7mAjEF3ymdSBb1MBcAeh6IwOCf+sQVIuCfSiWbWrzoY4tRToeiaFG/hEgh5CXLwyUo975k", - "ZPffxhhNflc/FSwPFzwoEBf/A98i4f4sJ3qOJ/mgUC4hjn6SqCdUAB4gCw8xsvMAC/mjjezQSm3IEjzM", - "I13yOwolf2RL/mTf1dSVJpcN0D0PSo+GFiS3ZpgTNWPW+R0OYhCesb0IVPtQgpRs9h3A1FDdbgwqVgEO", - "KrVCrbZTLeyXrXphd6dSLe+iRnkfVbKgE4hAIlbAJYHQjTaDypDgEBNb7bXmUC1TrikT0NuEFiM6FHiM", - "CjZmyBKUTUvDkNjQR0RAjy98Lbh0UhC0IKcuaJDnkFS39tCwPtgt7FjVYaFmw3IB7lYqhfKgvFuuVPft", - "PXtv7VEyw9ji3i5Q4JoDYdmBk5aQm4icOSATA2SBcOCFKGCYiC2PIosSATExRtDcmRN909TBJRUgfyDF", - "N5Fqg4skUUAPQCaG0JJaZayo/sLQMPcp9z+lmc1VMlZFKR43S4G1Qi6oj99gfLCuGipedivd7dvc+Zmh", - "OduYC0YXV92TKpn8hgehYl1BQchRrOJY2goqgvYQeGgoAPIDMVWfXMpFn+iBwQR7nuIkvsjbQ2RTBgvV", - "/SwGVnTGs2xRaySZVH+XYA3keckF9Dxkb4p8M4oWbhn496kdGqsyPX2TAOhho+sFehSel1qi3Etb/TyA", - "1mgCmc0VlqCAA+xhMVWr3wa6LMAi3lnAVwTLUoz9KK6yoBkjxjO1gSbgyB8jBkwLQJQZn9r+veJeca+8", - "luXXM3trgVm2YX1oISbWc2uzJZulptL8o6U0zsL84eyjRL7FEBSxchcLDbyN1IiGnGZtx9Cm6/ofH16p", - "ljiTuo/lz+8Farw/ctRMcOVsUy6Qn6FOSlWPDsGsDfClahZQTEQCxO8CxkyaCVKWzDki0lgAx+3rLvCp", - "jTINuSFmaAI9bwtITIdI2i3HwkzYbbfqpfJNyuhsQ6VFyRA7ymaKhLlqmGXvOARHB8sqKNpRO+WLU9JH", - "8c+zjcbYWmMsJTsA3SEPrJBJ886bAkq8qTxchqEXn03IdlCBYz/wlG5eiCQeA3IJc4dQyUbjErdh5gKj", - "jmtXGDf8ls+NECNoLRmc61bGpvLQuvYXutW3fI4GiHALBhsT2lWASLfVvNbHBBNqMzBxnhUtp2xuGApa", - "8Mb+guXdRR6yBHClFqxVg5HRlqMTPh4Z2UXwIRrog/4uVQcGJyAkHuK8T4RSuaUtLs1TyoBPGUpxOJbW", - "ArZcYEGOpMYdj3Nx3ymCD2ps6E3glPdJyBGXv+cBkhbzxEVKcJkpCAXoVTCYHL8IPjA4+QBUTwlZDD7v", - "k6xBlsCZ9g4wOMnlcxp/MSq/ZBp0AeV42blxm/gqmX7CsEDyHyUkrNI09Iuqf9EupSW08SdcUoEkiqGQ", - "33iEBKGUMAAFGITYs4HAPipurpTE5BRDl3kGMZf764a6Pe12Fk5SFqzvd73YjSMmZcJa8LtRO9mHuyM0", - "XS5uOXfBCE35pqjpdk/PUSY2JI7fKFnL3b2o3bd8LuRa4GTDJr/+yPl3x7Msjm+r9Ct1fmeoeNpIUUf0", - "Op1B01la87KhgNnmloQ8kv9qdMhB4EE5MnoVS62FxcHU+Tc/EgQOtiUvQ+MiMefb7ExgVF0OUIKuhrlP", - "f1/UtuNfMBHIkQj9oo2GrMszxHzMpRLMgR4gPqgURJgAagmoji8fihQg5d1aLWu5ARRulqIvXBCbpF56", - "TUp0+FPz+8KI2UR3NSH67i2NvzDCn+z1Tuib0/rVCr+so8qZ9pgmLR+T7NtE+WtyPUa1xAQMpgLx5DIq", - "O7W9WqO6W2vkc68FhxYMKCEmYremjcToGEh7M0pjyNaaNYnO+RjeNQueKZgrDZx5nV53s4FlVDstOxdu", - "b6gxg7LljvoMfpVWL2UCMEgcxH9TrtqAUUEt6imxJLWTJBr/nqtUPgkryOVzjbL5B/ZhoP653aXehpI+", - "WnBS4kvZqj1QmwjLaIQn1Ws7YRkrWwtEKeUdFwxBP3O5L5ySZwGxR9Uva0CMpjnrXl324k5SNFAPW9NM", - "x+d1KCT3xk5roNuC9mEktOXBDKS85nnApSCBAkAy1Uo4saSqFLvlgaB9IunWcQWPtUCp9fhQYAt63lRS", - "HEHKH27EklyJh+VQ0eRmZosSTj2jjxhJ+CkXhsr5uCj/GJXca1a5SDnbYjGBwXk5NJtpJXMmlKKFjR9A", - "jkLmpelvJi4ip7FlkyJDtgu1w9jSB2HJxlyUmIu8RqlRem3sPu/WSnJEykuUl1LYYjjTFT7HR0hZs0nM", - "paxYDy31MTmBY7nIGmV3dQJHKU3JVa4FZskO+khAD5NRNqZ8zBhlvKgdiAGjcjuKlDmlqN/fpIL8e+Rg", - "rPTDcrmyC5nl/q4xuAHa9CQe5mIRiBgG+bloISIoV/P/jSEPQY5+bxQ0qydmhvL/d2v6FwXfAeToqrsJ", - "LMod+exSMcSv2Z4mLjeVA9USMiym8nwTKKFvqMvsiEqXXUcv9y8yTOWwiY/x6a3tmefV5MG5N0YMD6dZ", - "n+fd/Gu47c5oK1v4+dY5wp0sian1R2xH3m8pBxG0Iw0ispvzGRhZ5r9u6ltMOgQz4BP+HWjb+o5YalaC", - "JtX7GQmq5jub8LpLs3w8PTPBBw5kAxBfNWUNmWkpSQtJh3tIQyml/XHuFpBdqdd39kGz2Wy2qpdvsLXj", - "PR22dy57R3X5W/uSnZwfsc4j/tjp3E3CU3jbPPNvL2j77XZY+XpYsQ/rb+WD3mtp9zULpsUbJLmcnWxV", - "mfMJZVn3gOai2jQAXECmTjLhgl92f8mDX+q/5KWe+0tl8EvsgRggwAWV5x/kfQIJQMRi00CecdFIRXAl", - "XMQmOOG4GCAglH1kaxV6Zs70SdwvyZPJQCmklb75C3cHE6A+GvLM1OuzyFqyz/dQ9aae+Uxn+ZaxRMh/", - "jh3zCWWyUCgcHJ20L0Hr6LbXPm63mr2jQqHQ75NOu90qH7ZazQF2mpP2QdNp37WLxWK/TwqFwtHl4VyX", - "HwikmwGXufpElOABtRX3zGyhVepIRpShMiyTv9wiHlBi4g89b4NRrxRkt0iFxFhI2V9z17J2mpl2KlVU", - "q+/uFVBjf1DYqdjVAqzVdwu1yu5uvV6rlcvl8no1bROZHq9udmP8/Yta1T51L62n1fhs2/9BmNRLuqAO", - "f9dFqUt35TTM1O4MCGkzWQoNNoQW+uNb1sE0oi94rYucvmC1luwoAAPQSlR0IMFDxMW74sNPDvrjyJh3", - "DMSjr14ZEjDyoL3XwqjUWdGzRX0fi8zAmV9dyN3fopNC7oAApnn+O+6ktS6EieWFKgbv8uj+trnlvXSM", - "iA3s9AT+bnWg3NpjiVChw5tnOzQXnJHPDeKwky/f5g+yQTIkZSMP7fbxHxlhH4nQjbREkpZkoZFbGr7I", - "ZnhZeeMlG0c4nO+8uadlfpjvFRMLXJRCQGLbuwdXnfcVjtEyF1VsORewqRX6yqEtrTCVuqDvzTTzxO4P", - "HU6TpP2NBpyFiZrLn6PZDCEPlRfGVZqqANIyFUBMqBqI59WdVjSIvhNCZIwZJXJ85dpLtOgTaIkQesA4", - "JuILWjXvpkyrNlxOn3lbskou6uFXysT3UCKyjj4ej7t+aUbDyKe6oi05YjZKFkNsCI/ki9lAm/VJIfJe", - "5dHM74MZKL3ATfbliDHKMtyiSECsnGPz7qCUfwHyTMN9UTWKGy8AoNcjpaG5ruWhZSEu1zKE2AuZtKBM", - "OLhcUMKmjRsuSM1ZGN/CylZEgi9E00UxhnHc8NIQbB2HmXVpbMh45muNBo0iFtO3NMqTy6ZF85NyOqpZ", - "PwnoZDoXPP48c+EsXtsx6oHeRReoNniIreiiIZ5U5Visc/6YBWaaVtGSfiTvYMW2xPthTHUrHfs5FzpC", - "uRKamaiCToYIh86WM+jI9EyDYB1uErJwCycZdszZP+9elL9HEj/SUBfyGWaLMckUEY1lOzZM+sncddXN", - "4WV2osQcbr6GcFrEtORPTdR+yezHpxVYm09syUdLzqQ2pVZt4Nn/N3HsK+frsxM42Q5Y/Tny1Ga3+aG7", - "AeMp/On8/9Od/+/mt+fce/5Rr/y/Mvw2Hbj/XnH3z6vDs45UMFmyTSoaPHHBiglIW3JF0HMRR32S6p0M", - "kpeHtY0CTr0xMolQgmE0RvH4RdCM8etN8yqYjs8+z9zUcGxyqbAfUJa4hf3HQhzZP2Z3AH1ihPdM6G6G", - "13lpmYHeuWjpf0nE84YRAJuELG881PqA45UjtK+720QYR+ELC9yy7E7q3yrMOJkV9DP6+C8bfZwOOp75", - "ARN3OQHlwmGIbxcG9DOC+d8igjmAU6mc/0uOSsV2G5+XfRKx5lUXYMGRN1QlB6Z6MEJV5nWcEz7nEWOU", - "CkBZn0AyNYn9EtFJF7iKgLMQ578pmKOJnzkSHAwx8uxozIXlYA6wQyiLkuM2Erf/AQHYifzStf2SbX8g", - "pHrzw3/zEOnDy+NrL3Qw0cfZooG4wp7KHC/WdZaHW8eK2vfEXCPCQ4aeA8ii+j+rS3UcqfYgyiUAuiNI", - "6HEAveKksZ0MCNsgKHu2Gh2ZHQdkmwBtbP9LIrNnYK0Mz96r178vPDsZcbMQo21j9p0h2nPYjMOzTbT2", - "eyBz0zjt2Nv7Xq54y+zhYgpz0oEse8BESYKMzJvNPMmWzvMzzecGzvZ2qyVfGJ/BZstWrVdcKm0krzSq", - "f+T+RNpIW0aVtw+vjEIMKBlQyNbFl9v42R86zxrdzxKIZx9az1JULdlXHJLnIBw8j9D02YXcXd8KE46s", - "kG0wnqT9WYDRos8FklDK0FABK484xJ6XlstZIH5lsW2H0K7ORIhzTAFHQhXeWHqgrJPcOiBU1SeaGzuX", - "3+g0+gvk/fyJ59maS4ufOUf/PTlHa1KNnv9quUbPS5ONsl1HPxOOtkw4+rYCtd3EqN+F1Qgsda2rKxNQ", - "BmydAZBx7PLEiZGZ7ZoYbzZKAp8CeQSJ7XCXOqfWzaobpycdCrlxRARbxukuxftTlAK2BdIPMLEBjCP2", - "CRITykZA31DreH0gbUz5L4YkVJYAgsHhEFvqKr9PhEs5invEhdjUsYyEwMSJjzw5UtaBme1BJQk3peyZ", - "B3ihFE80rXJ0wCDwpiprK1lvcTbpkkiDFSwaDR+dLcrcXhrB1A/L5aql+6h/o7+X9G8+5CP9y5f/0790", - "mi39w//hgCPxSf+q/q1/X38fmkULJ63rH4kcGITWCInlHmNItPYgz9tur3l52Lw9BF1BGXQQsDzIOThQ", - "QxTnC+6ZPwpmhi2LC/ZcpM28ubCS+N5HCk1Vw9QGLeoHoUDgiDiYRNFbfdKLq5+pgebqEU6wcI1+d9K6", - "BubSNW/8m5grT1zaz6Yj0HQJzNkdlKoXlaqcFxcq7JMPJgqOFWCAC3rLwxDbesc/RJqMmU6qBSIF9TaF", - "DGdlNxdRKZeovydKw8VrirzFyUu1BH4l1xt8qlKmMSqh/BvbavSojmARdBECcZyAR0O76FDqmGgcrklH", - "lZMrxeUITQXIdPlBFZcRegIXDORxqULLoxxxESlphv/Ir6ZKYESemjDjbr9JNFtSdpF0Tuc8klG4RXHf", - "bDFi8KLWDaLmEl41SpqSs8hXkWexT1TooyEShXVzO5zIeY0VSzONupMpgnsFgVaGOYAMfeoTAArgg1Q2", - "P/2BfIg9bH/78Ak0CVB/AWjbDHGuTQmGAoa4Ml/iuSw5BJhbVhEcUwYM9vLgA/Swhf43EYH1oWhmNudj", - "U/fbEgY9tRli2dz+tKD82QUYBP8Lg4AHVBQd0ynqkwRJWS7bYsOsPyp6KeGaQ4HtY8IzcWBTH2Ly6Q/9", - "XzmhYk/QDbFAQP8Kfg0Y9iGb/rY4uefpCaOEOnPSQmH6zmNkxnofpEr1YQ6mbK5bTZpRoVAtHFRuGSTT", - "Ponw25/TXRXBLVBFLlZGI3rYdPNyxk79tIjmXD5nEJz88U8pLx6fu+9XGFKdzXL85/mcG8gtRGxIRGHA", - "ILYL1XK1vlNdayQlhsuvqzN5Epn+WygPqxNMjVjSzoGZU+VXGujhf8tMMl1fa3huwO+vttdOXLdvoUFH", - "3dbYgio81db2wiaX+UdRex0WwcWAUrFp5+O4Q6aSuDDH1rVEzVXQOgezarcK18fJlW0BQmZg5TWjY8z1", - "vTm4u73YKD4yE7pkzsZ2gEFmuVggSxgf7Yxp48i8JYqv/nmD0PneNNB3jDqZaW2YQrcnW2WU5HqHq9iZ", - "X8j4JMsLXl/jI1KLzMe+oSJ4cBGJKtOXk7WJZQcsD1YfE+yHfp/YaKhKjw6miXZKr0kfLrXKfm1/d6+y", - "v7vMyaTV9WcabJR1lLakZt1Nwfts3VrOqTNLdD9lqyjFNfDQfMl8k8wikA/0InmfQMBRAJkUjqa1jaTF", - "pZVddcBiwQGdkGiKIuiY8ftkVhnezCGtiAmS1jGfgRF9MzJUlfcfKVcAQ33Cw0Cf+Ftc2Wtc9dS4aw/S", - "FJekGGCOSr9E3KgSahYO1QAHyMNkrdVolmnCp0HUzVh3rrGz4pgNPcpAGnzGJlR5SXFd2WLmYR3BEoQs", - "ej5lERzzMa4hbzrpsIp/KPAYpeIfCRihsQaHlGnHxmIikx0iKfNmzKGamEHVL7MBVXxGpEBqQ2F50hM4", - "DONsC6IeGgB02Cec+kk25HkThONDFbUSk1k0Z4rQ+sQgoZiIyolXHpFDZkgOH1B/g8Sx6Kbmg2yv6OqD", - "MX0SO7dJGmvcfwWrm5WlACiCVjqCrnt9+FkKtRlnJdbOA/s1Y7nzSSMDrSXHIOXnyD+DBGfss0QrRdEd", - "9sYpU/FV7NYpYybZKpaimw2QTmuf67zFOTY/zkr5FKV8pdG3VXZVXpO0/qcGWv87qi9lUrAWaDxxxiem", - "ghM5DZzwggsLzA2x+SvxTw6D+M83DYx+AQLBYC/1Jf1Hop+K7Iyznc1fUTC5+WEWtJnPOeruwbHiARyp", - "MsUGjfpvqgOmoiDVPTjw0kPLD/HE+o/0x/lRGJzM5qEiMx41l895eJyGQCkV0CvoMEBqSajHPJDia/av", - "Ah3DXD434d6SLZJMfG5KQaU5ajEK+zu8uO1kYGx6fB7atECoqqhib5eMEhIoBCL25tFa53Go7TYqcCB5", - "IONaXf3OAWSOSe81B4skCJUGxYCO7VUJ91KFksIs5YsjlPvi9yFlFlpVNWe5tWgmiMvJzIbWXwo2GoTO", - "Zvlo5yZ1+zsy82bTHusknpZHQ7twAPkSX65Ku0n3rJQr5fJ+ea9YzvRPqoiO7ASjEX3BGdlF8mc3HGyS", - "lwX5aN4rUatk2e+J+vkzOKrrn30y4M+mMps7G3GGlS9L9iaqEjLviJHMa5JxiaoCsRBIRLQY0i2XDb/s", - "TFVyfxPsZNFUFFyVHlKq5kveRHDQkrwnY5ktfhFUQC/r0xwW1KT5+F1D/Zyg7pxfGmuVV88keT9yB6Xi", - "9Z85HKP10S49F/P4ugQTKTgGKUtJX2wc3LUvDp8vrlrNi27z/iipO0OvT8aQYX3LHF1bSuJL3D5zOI70", - "a3ODo64RPG8qdWzM1aNt0s6z0Rh5NFBKaCjVfOJN8/p2SLtJZ0HYWgSxJc+mze1FAidLcY62dFzpTmvc", - "ViM0VaFvi1K1i4z9EDUBHpzSMB1qE2ZmlHuQOGF22ZToxkQnbSy86JE3sSZMtiIIDJBFfcSB8ZDn1WNM", - "6GuoDBlpd0Amt9OixIYmSTfhikbk+a5bvOsdFxo/egd/1WpvR/PLR/hT3rIzXqBPf2S8C4SIyPSnNdUL", - "gcpGVlfvHIl8zGyS2odIWK5kDDNKEbSlEobMLck/Qub9Q1k9SEReiHyfaKM7lRGoXCSmyo3imSX39TqY", - "LSO0DhI5FsIqewGagj3gV7PXn0C5sluuDSo23EX79drArtYGjUGjAhvVOqrDvT27MtgtD4fwt7wOwRow", - "SCy34OERAiwuOzAbj7nIm+U0S734t7lbw8UW2Qf7cLF4zQbdTAbEauF4iARivjK/Jy4yqNFXkak3y3xI", - "oIMY+NWCxPZQgMlvANuICCym+oFITV8qsgIqk2eh2CZoUcJDHzFgSeJSpRHm8z4hB5aHJWum27iI9ElM", - "SzEdSKkZEdaSWp6bx6vOR18vMIJrtmLRO5t98i45krOqdZiDVM2QyZtLCyr/rJj8F6yYnL0NmYZiFHG6", - "3WKWg5OfjboKshVQcZVDiLa2LL+nXxafRk9xvVvBk8jRasqxCRopE0VwjD0EHI8OBiboJvbO5fsEOUXw", - "QaWCcrfw/z7MSXfhh5llW5c+F3Zlbjnj58JWwBU9ODfwIBnpwlS64EdCe4yGSb0+Bx6wZ1vqXTal90TL", - "MaupFXd2igtLqRar8PsvTVPPzL3HpqVev1uMgoYEKmWuICj1+A/DnawxuHiRl0nDKKBLviytUJEw3xft", - "dOz4dn3ZJ+1zX8FLf6ykwTXvYWov8lK7Oq+REMP4ReIt9AKtS/5QmCHkKDva/sB80dZUXOLOGF8zhSO3", - "6smh6YoHh1RSobbszZ2QYAhFGqOqR73El/JsQoCU8F7pIJnDc7zaTEKcQ+gy7V9VtdnIBIhbZk2n8mKX", - "pHLaZPgcqGRPvkHKageSODmUmyHnH801muVmo0VjfFsG9nzE/rKohLV5wasmul43j6ad5+ghgNWXH7Gf", - "OHuyzQg2ZaEX+6QZFTpU+e76HPlgCjV9yIMPs9o96i9TM+gDmK1DBQ/2yQDNFD917KjMeT2ir4+QdCQY", - "ZbYOMAwYspCtjCKsSwXET8TLeaWyP6DjzFjvREWpf14hqa0LR22WeuYEjqkFl34afCaJYnNmiQUzKyo1", - "FzZ1fQJGaBoXAJBnweyCWinIaQMsdUoWCnEV8euTa3B9d3DRboHzo0dwcHHVOlef+6RP/Jv25cFJ0+pa", - "9OCoeXgxbDyejtDb2S60vc7jZA+enLS9M+iJxtlL5bV0UDn/6LaH7fD1RAT3L3uoTy5uncO7vd0X2KsH", - "94d1/7hzVg1GiKDbktXzv369GV1Ob7j7uUJvPk+O3u66g53WZac1bJ04o8+Nm0qfvD2NWNtqsePyTWXC", - "zgceDG337iO+h6R5yP2dxuPRVz6oN++qe7a4Y53qzaP94OzffvyMr4f3jds+OT946ZWr4/uDK7vT5Y/V", - "/QvYIrvtYOdqHDTaR7TURkf3jztf/dbVdROelwdnp9Vw6NRaIRrxj71un0xuHnqodfEaPl3sXnU+06vr", - "88m4czN8HTg7nw8b4/CpfC5eStblaeUVhuVXnzfD/dOzAI3GV9e3r16fTL+Kl+nTkNF7jI6nweTJGd9M", - "BCGdRsnpHoWls/seeyzXK/7RXW+vZQ32aiPr9Lh3POyMPDI6KfVJeXhXa97Cerl2Wn19KY/EAFXH59b1", - "Z3p9FZ4f3PPT7rhcvjt5bE6vUTj92Niz7kqPR25nb1Tt3p+/9Mkuaj85U9y5Kk+8nceTw9tzK/QmI77f", - "/Bh6I2eH9gY1Xn3zn8bX5b0T2nt9qFVe4Hn9ofvx0n1CqE8au+XP9N4dWDvnQffjy/CJvnB2JJ4a14O7", - "p4+P4+PGbcDshyZ7OR2cjSpnwe1587XnvvKbJj9wT3b6pHwRvlYeYOeg7FTa9WurY5+VrK8vtNywLPZy", - "8DnErw8M13G43/kcNL72SsPu26XP7bZDGqWvT+d9ghs3oTcM9/bCr+5DaSIqA0GwcG751xf3tRO+PN7V", - "ngY1dySOG+75Xenz571a5at7UT+fNG+bN82DPhGHxydPD7djyz9yzg87O+fdZuPJvx8NqmfuRa+zc/H5", - "YAofdlyLeM3od+v0bAz9+xe7VR/3ieVbH/HN2dXBQeeg1WzWjvHRETrd9Zl7fLoX3vObi06nUn6sW08u", - "eX1sHDd9xUOtk0njuDUZtfvkYNI+Ob6hZ60mbx0cPLaak6PWqXPUOq41my1ndDPr/fHysVnaO3gMHG/a", - "bT49nrov03O3T0ofh7tv18P78eC0Uj76Wh21966ODy7L5OLzx4O7HT8cdz9+7YXd6sMFO6j61ZPQE8H5", - "7dHZ+YXw60eHfbLDTt4+N2lvZxrsP7YbF81Du9NqXU1fmi+cPtw19h7vwtbH0oC8sB66rVzcXrWG0+vW", - "3u7DfqOOr+77xK93Pw74zeFkr1W5YJ7d7NQ6hyGdPu10sTiBT7Xzm4t78bF3BHdqmD92T1ovb3Tv+rFx", - "Xz27GtXLfeJ8fXAalcvSwK8cvXX3eo3qw9HhYMcbv9Ta3vjVaX89R87Oztvnx1efPXafzs5aw/Hb8KN3", - "2d0NX53TPnl5LZ2Vp95T5QIPTtjuSbM5vdq/e2DNp+6k2ykfWS+9xuSoRV5H3cNw+tV/mNyPLw8+h0ft", - "+8YVqj72SQff7QzPLhvc3jsM+PFrvfPxs0065Kb78ZS99K7PD6v+A/OaNjnqufbjfePlaRQ8uIdTXi3t", - "76OrPnFHZXZBpuWXy8kIhsMSvmtcWbufx53Ry8Vt58yp3+3fn0/PwocH8Tb5TF46l/WH2+ODr+c1/kT9", - "TqdPhmLQO935WJ8Obh9Kzer4YABfbx8qYu/u7fLFekOj7tMRhheX+xelU+us1b7duTlu7DYqh3bTOzre", - "t/tkVHFu8GP3pgnhWfnsrPl2Or4d3Z5dXDjnlcebR3x6eT+tiOrZ9HjIGfTrk27r4WroXqP29OKg93TW", - "J2MWXHrXAzTkvf36Xm9YObhsh87bE2vV718Pu+ejJ+fW3bk/GXfbN6Q1fRvdTHeP7ipfrwP8UN+XMsq9", - "bn9+YufUOq+eX3T3S/jt7KZ364mXTvP3Pvn9etjbU29R6NcoVhw9S8pdUYaeOfeyD+mfRRPXv5i00h38", - "Xi8oJav/ZHpd5HiRY0OXCFJO9YRWBLlUaDhQJlcio0RVHuqTX6NIpt8yqxAt5BREVWrplpW23tePnnaV", - "gyWe8g1LE5gXV7ezqzNVyaZtxxd1kc/VvI0EQ+FSht+QreyZxfz2jZ46anYfsBhdndbuGnu1I5sf3JGp", - "GFQHk/Gt45x6N97g8bO3R3bK4/0lZXIz0+Tv9ANRsfmj86TMy7WSpNKOIdvHZH3EN1dBBRJPWdbxxpnL", - "75CBDAbTxENEGcV1o2KIdrYkIm3dZeddUpPXQkOGKmiLbw2MD/loU1hk27WQ6GTtbbGSyWNJv8Oix2WD", - "MmN6hKRTQQsVCzFhb9FZNl/llljib1kMiGbUDuOMoZVFR+cKe32n62ZhmOXQzy900eUaCvpsCmrDuWfs", - "VsvK+V34lPGgjX69I6B8i1FTJdzmgLUEHutySUbqpnK6OLIYEgX9dFx8lMdPtWXQ7gBy9JzpGFn0i2yg", - "HkS3cKnhlhV6ocyBJOHxSgaZ1crVSi37Etpaf3bG9x5DDzpR9jZzLV1PQN8bJir4RAnX0OPUVI40AoqD", - "tlnR3Om/bE3pkkbJlw5m21qUvJpA7Fq8zh0nKbzl52kiBUNigxObk3UI9RLl/7YI54m6rQnoISLQUK0I", - "viEiAFGjlJ5VLhLKhFuAPmLYgsWAUq9IRCD13Fw+t7Pq81aKWbIE4vJLvahVPjow1CFy12ulNIO7bukI", - "Sjojm4V1Ll5skOnGT9vNpwyt7dOtbtdlocDD2jneQoa267LkEYp13TIi/9Z1WQibWtdh2f3Tty/Zkiey", - "PfQLQov5VKqQAeaAuzT0bMCQilEYqFqyV0MwCAVY3CSdnqZCzYTKh8nYex0YCHwEiQmHgp4HMhoCTXm8", - "TyBDWvBp22JhXhi3NVJyjKm6GNa+eQlwn7DQQ7qyLENDylAeTBBw4TgunaGoGah0Hbm6AQJwAqOKYVgA", - "zMkH0ScB5RybOEUfv6poHB8Ky9WXBGY/gKCOsoikUI55Z9kdViLtbpvnIudSNzZmqQ17zKdub8FQG/bI", - "frhkY97YsP2Sm0RVRG37XJs4W2eTvFST/KcTU5e9pmSumyMi+DJHLltm17CQkGUpNKlcxAUq3HpBP5g2", - "mn3rPjfkl6UH0fJUoCKvxjk4UcZPMm2GWrhoBIYugSIRGHpB0SQOm9Lo2Sjc/v3pWe39H3rQeUGb/vnc", - "8o89t7yB9bFZ1IxSqq2QYTHtSlLX236AINO0MlD/Oo6mO3voSRVYtZSquW4Xjyotm9y3b8pUGdKs+HJd", - "20VQ4/xTUfQ6RkrnnvKiSvCykHksWG9irhlAy0WgovJilPofO4knk0kRqs/KM2v68tJFu3V02T0qVIrl", - "oit8T6ugQhHCVfdATW+yIBlQRYwADHAiaOZTrhI9HSA/fMpVi+XiTk7XlFRoKlkeJYiX/sD2N8UtWWW2", - "TpAOStEyUxXcAkbQSbpRkZJIRM9F6afUYPy0olFl9GOjCWclZSr1YJYdrCplYEqAErHI1umocf3ftq1B", - "ST5brGKvoY+EMhz+nvFwapTjHwEvKHBUoS9MFO0JN4o1+hQ9YhdRnDbhtPj8U14X/iJn069Kq82olMuJ", - "4HeTtOaZS/zSiymfPANo5eGewJIi5zRmkjiRJFJ7x6lNLu7ipG2iVcgoWQXbeuqdP3/qZqjKpY6Q8odj", - "DYievfrnz35HZi5tSYEBYpI2QEzbGpLaPwOSEaETMrcF9X/G7t8R9BroEGuV3w2opR50sVMiXHFxJLz/", - "/kXyCA99H7KpyW5PCiElvGJ6UuOUoj9UodOsN/VausIPBARNoq55EFC5dBzFgnNTTVB5gseIwUi4K3lv", - "DDb1qKy+usAsab7xRcF1TbmI3pbXQgZxEb1S/z4cn35f+Vv6+JTC7NuCvNl579nbdtbWm4+qpIVSP5D9", - "LxM6bPbo8U/J81PybCh5jNDIkjTvpTxtoS9FOFyjKKUeZ95IVYoH/i9TllKYyqCgNF5+Kkw/xdZfVGFa", - "Kr+0IZjUmjL0F9lkpsRsIE8SwurfSIr8CbpXAjNq4H+29pWY/9ZMkkVSqvQYmsxqpA5UhS7zKHa2XBPo", - "VZSUHycNzzxqN5ZetfeaIIs3v6VObYmWVHXwFQzgmboc33OKDzHB3E0c4mDlGY7F7OjWdRjUBYuPBASY", - "aBrGlAA4oKEwofs89MSqY16VFfl5yK895BWelrCGJIG4iLu+m4sNREwAofqtRyv0IDOl28CvwqWh45rb", - "sbPu1eVvxf84RjpRFcqd6NoyovIsNooeqV/PS3HLDdjpFomQEa5yi+Jn8CUwygY34ix6+17Jd1PEMm5s", - "UcVYcXkns31REU8oQNIda2oy6khdSKIn7gvRcMX6ClbsxCj4yY9r+XGGrCVMmdruBcb8z+S1NHtswHSJ", - "hOHVPBeXM5Est8Bn+v0E9AotkTqImGI/ZAMb6WppNMVrsetfVb9dxRkRnD8ZYz1jRLhaxhfRVm7DFz+N", - "1J9G6r+bkbogm9bLOz6g/nIFI1IWINCRUOkquHyN3tAnc80hi9uogrmzmr1LXW4HV50tD38Jkw6f0mIO", - "RGP8l7je1GqXSDr18b/t+J8tep4VFJ8lqX+BDGcP4i7QYNZezJqUVFnFZSFdiXaq7uKfShizNWQJ/vhp", - "OIOMnyfOv+bE0TL/r3fezN4WhJ4H4qjSiJpmbLb+cgeSuOhY5PLUkM2qlw2mQAnWbEbd3JWKTPMfOhOq", - "/2QJv3Qr1QeQ/O0nF//k4m24GC1SkOTcON5t+Ql5ZZr8IN3PhyIuLNSAomSBVCLlENHjz39BFX3lcr7F", - "6U1ZUqxj3oxTmYDqocO4mHY6GhIGuKgq3Ll4qPPKYIBLumi/csIhVogerCyNK0pbmYvRFNDBxFk1ARfQ", - "QT84jaUf0zBv2sXTrBvny7f/HwAA//9NfTgMC8wAAA==", + "IiXqSjy7O7v5Y3diEUej0egL3Y0/chb1A0oQETz36Y9cABn0kUDM/OUg+V8bcYvhQGBKcp9y19BBABMb", + "vebyOfQK/cBDqeZj6IUo9ym3k/v2LZ/Dss/XELFpLp8j0JdfVMt8jlsu8qHsIqaB/J0LhomjunH8ljH3", + "ZegPEAN0CLBAPgeYAAQtF5gBk9BEA8TQlMtL4VFtV8HzLfqohm4+dI9alZZHCWpJ9HE1EbRtLMGE3jWj", + "AWICS0CG0OMonwsSP/2RY8hR61mYKJ/jLmToeYKF+wwti4ZmY8zKcp/+ntupVGv13b3GfnmnkvuSzylM", + "ZI5lfoCMwalaO0NfQ8yQLYcxMHyJm9HBC7KE7KfXdxd4FNpXCvX8uxcYA55DYWGCuCjs5PL/zGXnc5zA", + "gLtUPOvdTsLkTwvR10WoshGWDes6NHYFFKE+JSlEQR+nIYI+LpStRrW8t1/d26vX9+t2bZCFsS1RPLcY", + "OW9+DQ10qz9CAkE48LClj/AQhp6I26WPdHsIOBJAUKA+g1+Fi4DpAtTh/S0PIPAocfKADoYht6BANri7", + "vegTzAFDImQE2UXQFhyg1wAzKIcGPnZcAQYIcEoJYkC4kIAhZYAKFzEQqrX1iYDMQYIX+6RPZrAIFiI5", + "LXcpE4jJ2UBiMgCJ3Sc4PSHmQMLOoY8A5Goq+XdyOjCbbbZFA0o9BMmPb+pm27mMFEPmZbPi5BSyUeb4", + "byFDP0Iu7jRA7Hn87CCCND5TpJO7l8tPU07LpZQjheP7Dmj7Ui6dymHuwWyUPLDxcIgYIgIMERQhQxxQ", + "AhTAAMr/jSH24MBDfWKjABEbE0e2kOMuDKc3DpHQl9hQQN1XEhiZnU8s4YlZzpwYkyRCh2oKTRjIBqqD", + "pGLgh1wRbkjw11DKWtXQwWNEAEOchsxCwGE0DIqKZuUkkvqoj4U8GkNGfdVF7hziQhIyg8SmPqAEgQHk", + "yJYrhODurn0IMO8Ts0JkmwUmOaQCLIsFedRK7FRygRfmS7TIgNExlouMwH9W4OfBxEVMb6GaRZ630LPV", + "4iO8QCK7OZgLxBR8p3Qij6iHuQDQ80AEBv/UJ64QAf9UKtnU4kUfW4xyOhRFi/olRAohL1keLkG59yXD", + "u/82xmjyu/qpYHm44EGBuPgf+BYx92c50XM8yQeFcglx9JNEPaEC8ABZeIiRnQdYyB9tZIdWakOW4GEe", + "6fK8o1Cej2zOn+y7mrrS5LIBuudB6dHQguTWDHOiZsyS3+EgBuEZ24tAtQ8lSMlm3wFMDdXtxqBiFeCg", + "UivUajvVwn7Zqhd2dyrV8i5qlPdRJQs6gQgkYgVcEgjdaDOoDAkOMbHVXusTqnnKNWUCepvQYkSHAo9R", + "wcYMWYKyaWkYEhv6iAjo8YWvBZdOCoIW5NQFDfIckurWHhrWB7uFHas6LNRsWC7A3UqlUB6Ud8uV6r69", + "Z++tFSUzjC3u7QIFrhEIywROmkNuwnLmgEwMkAXCgReigGEithRFkFkuFsiSsmKRYJqJr5IGQo5iUW9p", + "a6AI2kPgoaEAyA/EVH1yqeRWzHL7ZII9T9ETX6Tw18bu824ti4YtSgTExJhmc5Iw+qZplku4kD+QQoVI", + "ZcZFklShByATQ2hJXTdWn39haJj7lPuf0swSLBlbpxSPm6VWWyEX1MdvMBb3q4aKN6OV7vZtTqpn6PM2", + "5oLRxVX3pKIov+FBqBjKdrvRJ3pgsGo/hsimDBaq+1lboqifZ1nI1kiyDv1dgjWQUpwL6HnI3hT5ZhTN", + "cjPw71M7NLbuHIUSAD1sNNBAj8LzUneVe2mrnwfQGk0gs7nCEhRwgD0spmr120CXBVh0ohfwFcGyFGM/", + "iqssaMaI8UwdpQk48seIAdMCEOVcSG3/XnGvuFdey4jWs6DWwmHZgiFZ0EJMrD+tzZZslppKnx8tO3AW", + "5g9nHyXyLYagiFXOmGngbbhGNOQ0azuGNl3X//jwSrXEmdR9LH9+L1Dj/ZGjZoIrZ5tygfwMJVcqoHQI", + "Zm2ALxXGgGIiEiB+FzBm0kyQsnjOEZEmDDhuX3eBT22UaV4OMUMT6HlbQGI6RNxuORZmzG67VS/lb5JH", + "Z5tPLUqG2FGWXMTMVcMsK8whOBIsq6BoR+2Uh1BxH3V+nm00xtYaEy7ZAegOeWCFTBqd3hRQ4k2lcBmG", + "XiybkO2gAsd+4CmLoRBxPAbkEuaEUMlG4xK3YeYCo45rVxg3/JbPjRAjaC0ZnOtWxtLz0Lr2F7rVt3yO", + "BohwCwYbE9pVgEi31bzWYoIJtRmYOM+KllOeABgKWvDG/oI/oIs8ZAngSt1cqwYjo8NHEj4eGdlF8CEa", + "6IP+LlUHBicgJB7ivE+EMgQgQ8popgz4lKHUCcfShsGWCyzIkbQD4nEu7jtF8EGNDb0JnPI+CTni8vc8", + "QNKOn7hIMS4zBaEAvQoGk+MXwQcGJx+A6ikhi8HnfZI1yBI40z4LBie5fE7jL0bll0wzM6AcL5Mbt4mv", + "8tBPGBZKHy4hYZWmoV9U/Yt2Kc2hjZfjkgokUQyF/MYjJAilhAEowCDEng0E9lFxc6UkJqcYukwZxFzu", + "rxvq9rTbWZCkLFjf73qxG0dM8oS14HejdrIPd0doupzdcu6CEZryTVHT7Z6eo0xsSBy/UbL2dPeidt/y", + "uZBrhpMNm/z6I/LvjmdZHN9W6VdKfmeoeNpIUSJ6nc6g6SytedlQwGxzS0Ie8X81OuQg8KAcGb2KpdbC", + "4mBK/s2PBIGDbXmWoXHcGPk2kwmMqisLStDVMPfp74vadvwLJgI5EqFftNGQdaWHmI+5VII50APEgkpB", + "hAmgloBKfPlQpAAp79Yy7dUACjdL0RcuiE1SL70mxTr8qfl9YcRsoruaEH0jmMZfGOFP9non9M1p/WqF", + "X9ZR5Ux7TJOWj0n2Haf8Nbkeo1piAgZTgXhyGZWd2l6tUd2tNfK514JDCwaUEBOxW9NGYiQG0j6W0hiy", + "tWZNonM+hnfNgmcK5koDZ16n191sYBnVTvPOhTslasygbL6jPoNfpdVLmQAMEgfx35QDOWBUUIt6ii1J", + "7SSJxr/nKpVPwgpy+VyjbP6BfRiof2531bghp48WnOT4krdqv9gmzDIa4Un12o5ZxsrWAlFKfscFQ9DP", + "XO4Lp+RZQOxR9csaEKNpzrpXl724k2QN1MPWNNMdex0KeXpjVzrQbUH7MGLaUjADya95HnDJSKAAkEy1", + "Ek4sqSrFlwVA0D6RdOu4gsdaoNR6fCiwBT1vKimOIOWlN2xJrsTDcqhocjOzRQmnntFHDCf8lAtD5RJd", + "5H+MytNrVrlIOdtiMYHBeT40m2nl4UwoRQsbP4AchcxL09+MXUSubMsmRYZsF2o3tqUFYcnGXJSYi7xG", + "qVHSLsySHJHyEuWlFLYYznTQz50jpKzZJOZSVqyHlvqYnMCxXGSNsrs6gaOUpuQq1wKzZAd9JKCHySgb", + "Uz5mjDJe1A7EgFG5HUXKnFLU729SQf49cjBW+mG5XNmFzHJ/j53A69CmJ/EwF4tAxDDIz0ULEUG5mv9v", + "DHkIcvR7o6CPemJmKP9/t6Z/UfAdQI6uupvAotyRzy4VQ/ya7WniclM5UC0hw2Iq5ZtACX1DXbFHVLrs", + "kny5f5FhKodNfIylt7ZnnleTB+feGDE8nGZ9nr98WHPa7oy2soWfb50j3MnimFp/xHbk/ZZ8EEE70iAi", + "uzmfgZFl/uumvlulQzADPuHfgbatb66lZiVoUr2fkaBqvrPJWXdplo+nZyb4wIFsAOILsKwhMy0laSHp", + "IBRpKKW0P87dArIr9frOPmg2m81W9fINtna8p8P2zmXvqC5/a1+yk/Mj1nnEHzudu0l4Cm+bZ/7tBW2/", + "3Q4rXw8r9mH9rXzQey3tvmbBtHivJZezk60qcz6hLOt20lyfmwaAC8iUJBMu+GX3lzz4pf5LXuq5v1QG", + "v8QeiAECXFAp/yDvE0gAIhabBlLGRSMVwZVwEZvghONigIBQ9pGtVeiZOdMncb/kmUyGbyGt9M2HATiY", + "APXRkGemXp9F1vL4fA9Vb+qZz3SWbxnhhPzn2DGfUCYLhcLB0Un7ErSObnvt43ar2TsqFAr9Pum0263y", + "YavVHGCnOWkfNJ32XbtYLPb7pFAoHF0eznX5gfC+GXCZq0/ELh5QW52emS20Sh3JiH1UhmXyl1vEA0pM", + "VKTnbTDqlYLsFqlAHQsp+2vusthOH6adShXV6rt7BdTYHxR2Kna1AGv13UKtsrtbr9dq5XK5vF5N24Sn", + "x6ub3WN//6JWtU/dlutpNT7b9n8QJvWSLqjD33VRKhRAOQ0ztTsDQtpMlkyDDaGF/viWJZhG9AWvdZHT", + "F6zWkh2bYABaiYoOJHiIuHhXfPjJQX8cGfOOgXj01StDAkYetPdaGJU6K3q2qO9jkRnO86sLuftbJCnk", + "Dghgmue/405a60KYWF6oIgMvj+5vm1veS8eI2MBOT+DvVofvrRVLhAoddD3bobngjHxuEAfDfPk2L8gG", + "yUCZjTy028d/ZIR9JEI30hxJWpKFRm5pUCWb4WXljZdsHOFwvvPmnpb5Yb6XTSycohQCEtvePbjqvC9z", + "jJa5qGLLuYBNrdBXDm1phamECn1vpg9P7P7Q4TRJ2t9owFnwqrn8OZrNEPJQeWFcpakKIC1TAcSEqoF4", + "Xt1pRYPoOyFExphRIsdXrr1Eiz6BlgihB4xjIr6gVfNuemjVhsvpM29LVvFFPfxKnvgeSkSW6OPxuOuX", + "ZjSMfKor2vJEzEbJOhAbwiPPxWygzfqkEHmvsnvm98EMlF7gJvtyxBhlGW5RJCBWzrF5d1DKvwB5puG+", + "qBrFjRcA0OuR3NBc1/LQshCXaxlC7IVMWlAmSF0uKGHTxg0XuOYsjG9hZSvi0xei6aIYwziaeWlguI4O", + "zbo0NmQ887VGg0YRi+lbGuXJZdOi+Uk5HdWsnwR0Mp0LHn+euXAWr+0Y9UDvogtUGzzEVnTREE+qMj/W", + "OX/MAjNNq2hJP5INsWJb4v0wprqVjv2cCx2hXDHNTFRBJ4OFQ2fLGXS8fKZBsA43CV64hZMMO0b2z7sX", + "5e8Rx4801IUsi9liTIpHRGPZjg2TFDN3XXVzeJmdvjGHm68hnBYxLflTk0tQMvvxaQXW5tNt8tGSM6lN", + "qVUbePb/TRz7yvn67AROtgNWf448tdltfuhuwHgKfzr//3Tn/7v57Tn3nn/UK/+vDL9NB+6/V9z98+rw", + "rCMVTJZsk4oGT1ywYgLSllwR9FzEUZ+keieD5KWwtlHAqTdGJj1LMIzGKB6/CJoxfr1pXgXT8dnnmZsa", + "jk2GF/YDyhK3sP9YiCP7x+wOoE8M854x3c3wOs8tM9A7Fy39L4l43jACYJOQ5Y2HWh9wvHKE9nV3mwjj", + "KHxh4bQsu5P6twozTuYq/Yw+/stGH6eDjmd+wMRdTkC5cBji24UB/Yxg/reIYA7gVCrn/xJRqY7dxvKy", + "T6KjedUFWHDkDVUhhKkejFCVDx5nqs95xBilAlDWJ5BMTbkBieikC1xFwFmI898UzNHEzxwJDoYYeXY0", + "5sJyMAfYIZRFyXEbsdv/gADsRNbr2n7Jtj8QUr258N88RPrw8vjaCx1MtDhbNBBX2FOZ48W6zvJw61hR", + "+56Ya0R4yNBzAFlUlWh1AZEj1R5EuQRAdwQJPQ6gV5w0tpMBYRsEZc9WoyOz44BsE6CN7X9JZPYMrJXh", + "2Xv1+veFZycjbhZitG3MvjNEew6bcXi2idZ+D2RuGqcde3vfyxVvmT1cTGFOOpBlD5golJCRebOZJ9nS", + "eX6m+dzA2d5uteQL4zPYbNmq9YpLpY34lUb1j9yfSBtpy6jy9uGVUYgBJQMK2br4chs/+0PnWaP7WQLx", + "7EPrWbKqJfuKQ/IchIPnEZo+u5C761thwpFlKgusbilpfxZgtOhzgSSUPDRUwEoRh9jz0iI+C8SvLLbt", + "ENrVmQhxjingSKhyIEsFyjrOrQNCVdWkubFz+Y2k0V8g7+dPlGdrLi1+5hz99+QcrUk1ev6r5Ro9L002", + "ynYd/Uw42jLh6NsK1HYTo34XViOw1LWurkxAGbB1BkCG2OUJiZGZ7ZoYbzZKAp8CeQSJ7XCXklPrZtWN", + "05MOhdw4IoIt43SX4v0pSgHbAukHmNgAxhH7BIkJZSOgb6h1vD6QNqb8F0MSKksAweBwiC11ld8nwqUc", + "xT3i8nBKLCMhMHFikSdHyhKY2R5UknBTyp55gBdK8UTTKkcHDAJvqrK2klUgZ5MuiTRYcUSj4SPZoszt", + "pRFM/bBcrlq6j/o3+ntJ/+ZDPtK/fPk//Uun2dI//B8OOBKf9K/q3/r39fehWbRw0rr+kciBQWiNkFju", + "MYZEaw9S3nZ7zcvD5u0h6ArKoIOA5UHOwYEaojhfBtD8UTAzbFnysOcibebNhZXE9z6SaarKqjZoUT8I", + "BQJHxMEkit7qk15ck00NNFclcYKFa/S7k9Y1MJeueePfxFx54tJ+Nh2Bpgtzzu6gVL2oVD2/uHxin3ww", + "UXCsAANc0FsehtjWO/4h0mTMdFItECmotymvOCsGuohKuUT9PVGwLl5T5C1OXqol8CtPvcGnKrAaoxLK", + "v7GtRo+qGxZBFyEQxwl4NLSLDqWOicbhmnRUkbtSXCTR1KVMF0VUcRmhJ3DBQB4XULQ8yhEXkZJmzh/5", + "1dQujMhTE2bc7TeJZkvyLpLO6ZxHMgq3KDmczUYMXtS6QdRcwqtGSVNyFvkq8iz2iQp9NESisG5uhxM5", + "r7FiaaZRdzJFcK8g0MowB5ChT30CQAF8kMrmpz+QD7GH7W8fPoEmAeovAG2bIc61KcFQwBBX5ks8lyWH", + "AHPLKoJjyoDBXh58gB620P8mIrA+FM3MRj42db8tYdBTmyGWze1PC8qfXYBB8L8wCHhARdExnaI+SZCU", + "5bItNsz6o1KcEq45FNg+JjwTBzb1ISaf/tD/lROq4wm6IRYI6F/BrwHDPmTT3xYn9zw9YZRQZyQtFKbv", + "PEZmR++DVKk+zMGUfepWk2ZUvlQzB5VbBsm0TyL89ud0V0VwC1SRi5XRiB423bycsVM/LaI5l88ZBCd/", + "/FOKnsdy9/3KVSrZLMd/ns+5gdxCxIZEFAYMYrtQLVfrO9W1RlJiuPy66pcnkem/hfKwOsHUsCXtHJg5", + "VX6lgR7+t8wk0/UVkOcG/P5qe+3EdfsWGnTUbY0tqMJTbW0vbHKZfxS112ERXAwoFZt2Po47ZCqJC3Ns", + "GdEUXwWtczCrdqtwfZxc2RYgZAZWXjM6xlzfm4O724uN4iMzoUvmbPxY9ddNarPqo6h/3iB0vjcN9B2j", + "TmZaG6bQ7clWGSW53uEqduYXMj7J8oLX1/iI1CLzsW+oCB5cRKJ6+eVkxWTZAUvB6mOC/dDvExsNVenR", + "wTTRTuk1aeFSq+zX9nf3Kvu7y5xMWl1/psFGWUdpS2rW3ZThz9at5Zw6s0T3U7aKUlwDD80X8jfJLAL5", + "QC+S9wkEHAWQSeZoWttIWlxa2VUCFgsO6IREUxRBx4zfJ7N69WYOaUVMkLSO+QyM6JvhoerRgZFyBTDU", + "JzwMtMTf4spe46qnxl0rSFOnJHUA5qj0S3QaVULNglANcIA8TNZajWaZJnwaRN2MdecaOyuO2dCjDKTB", + "Z2xClZcU15UtZgrrCJYgZNGjLovgmI9xZXvTSYdV/EOBxygV/0jACI01OKRMOzYWE5nsEEmeNzscqokZ", + "VP0yG1DFZ0QKpDYUlic9gcMwzrYg6vkDQId9wqmfPIY8b4JwfKiiVmIyi+ZMEVqfGCQUE1E58cojcsgM", + "yeED6m+QOBbd1HyQ7RVdfTCmT2LnNkljjfuvOOpmZSkAiqCVjqDrXh9+lkxtdrISa+eB/Zqx3PmkkYHW", + "kmOQ8nPkn0GCs+OzRCtF0R32xilT8VXs1iljJtkq5qKbDZBOa5/rvIUcmx9nJX+KUr7S6NsquyqvSVr/", + "UwOt/x3VlzIpWAs0npDxiangRE4DJ7zgwgJzQ2z+SvyTwyD+800Do9+lQDDYS31J/5HopyI742xn81cU", + "TG5+mAVt5nOOuntwrHgAR6pMsUGj/pvqgKkoSHUPDrz00PJDPLH+I/1xfhQGJ7N5qMiMR83lcx4epyFQ", + "SgX0CjoMkFoS6jEPJPua/atAxzCXz024t2SL5CE+N6Wg0idqMQr7O7y47WRgbHp8Htq0QKiqqGJvl4wS", + "EigEIvbm0VrncajtNipwIM9AxrW6+p0DyByT3msEiyQIlQbFgI7tVQn3UoWSzCzliyOU++L3IWUWWlU1", + "Z7m1aCaIy8nMhtZfCjYahM5m+WjnJnX7OzLzZtMe6ySelkdDu3AA+RJfrkq7SfeslCvl8n55r1jO9E+q", + "iI7sBKMRfcEZ2UXyZzccbJKXBflo3itRq2TZ74n6+TM4qusfozLgz6YymzsbcYaVL0v2JqoSMu+IkYfX", + "JOMSVQViIZCIaDakWy4bfplMVXx/E+xk0VQUXJUeUqrmS95EcNCSvCdjmS1+EVRAL+vTHBbUpPn4tUX9", + "yKHunF8aa5VXjzd5P3IHpeL1nzkco/XRLj0X8/i6BBPJOAYpS0lfbBzctS8Ony+uWs2LbvP+KKk7Q69P", + "xpBhfcscXVtK4kvcPnM4jvRrc4OjrhE8byp1bMzVU3LSzrPRGHk0UEpoKNV84k3z+nZIu0lnQdiaBbEl", + "j7nN7UUCJ0txjrZ0XOlOa9xWIzRVoW+LXLWLjP0QNQEenNIwHWoTZmaUe5A4YXbZlOjGRCdtLLzokTex", + "Jky2IggMkEV9xIHxkOfVE1Hoa6gMGWl3QCa306LEhiZJN+GKRuT5rlu86x0XGj96B3/Vam9H88tH+FNe", + "2DNeoE+LMafK6sv0pzXVu4XKRlZX7xyJfHzYJLUPkbBceTDMKEXQlkoYMrck/wiZ9w9l9SAReSHyfaKN", + "7lRGoHKRmCo36swsua/XwWwZoXWQyLEQVtkL0BTsAb+avf4EypXdcm1QseEu2q/XBna1NmgMGhXYqNZR", + "He7t2ZXBbnk4hL/ldQjWgEFiuQUPjxBgcdmB2XjMRd4sp1nqxb/N3RoutsgW7MPF4jUbdDMZEKuZ4yES", + "iPnK/J64yKBGX0WmXlLzIYEOYuBXCxLbQwEmvwFsIyKwmOpnKzV9qcgKqEyehWKboEUJD33EgCWJS5VG", + "mM/7hBxYHpZHM93GRaRPYlqK6UByzYiwltTy3DxedT76euEguGYrFr2z2ZJ3iUjOqtZhBKmaIfNsLi2o", + "/LNi8l+wYnL2NmQailHE6XaLWQ5OfjbqKshWQMVVDiHa2rL8nn5Z5zR6iuvdCp5EjlZTjk3QSJkogmPs", + "IeB4dDAwQTexdy7fJ8gpgg8qFZS7hf/3YY67Cz/MLNu69LmwK3PLGT8XtgKu6MG5gQfJSBem0gU/Etpj", + "NEzq9TnwgD3bUu+yKb0nWo5ZTa24s1NcWEq1WIXff2maembuPTYt9frdYhQ0JFApcwVBqcd/GO5kjcHF", + "i7xMGkYBXfJlaYWKhPm+aKdjx7fryz5pn/uKs/THShpc80qn9iIvtavzGgkxjF8k3kIv0LrkD4UZQo6y", + "o+0PzBdtTcUl7ozxNVM4cqueHJqueHBIJRVqy97cCQmGUKQxqnrUS3wpzyYESDHvlQ6SOTzHq80kxDmE", + "LtP+VVWbjUyAuGXWdCovdkkqp02Gz4FK9uQbpKx2IImTQ7kZcv4pX6NZbjZaNMa3ZWDPR+wvi0pYmxe8", + "aqLrdfNo2nmOHgJYffkR+4mzJ9uMYFMWerFPmlGhQ5XvruXIB1Oo6UMefJjV7lF/mZpBH8BsHSp4sE8G", + "aKb4KbGjMuf1iL4WIelIMMpsHWAYMGQhWxlFWJcKiB+ul/NKZX9Ax5mx3omKUv+8QlJbF47aLPXMCRxT", + "Cy79YPmME8XmzBILZlZUai5s6voEjNA0LgAgZcHsglopyGkDLCUlC4W4ivj1yTW4vju4aLfA+dEjOLi4", + "ap2rz33SJ/5N+/LgpGl1LXpw1Dy8GDYeT0fo7WwX2l7ncbIHT07a3hn0ROPspfJaOqicf3Tbw3b4eiKC", + "+5c91CcXt87h3d7uC+zVg/vDun/cOasGI0TQbcnq+V+/3owupzfc/VyhN58nR2933cFO67LTGrZOnNHn", + "xk2lT96eRqxttdhx+aYyYecDD4a2e/cR30PSPOT+TuPx6Csf1Jt31T1b3LFO9ebRfnD2bz9+xtfD+8Zt", + "n5wfvPTK1fH9wZXd6fLH6v4FbJHddrBzNQ4a7SNaaqOj+8edr37r6roJz8uDs9NqOHRqrRCN+Mdet08m", + "Nw891Lp4DZ8udq86n+nV9flk3LkZvg6cnc+HjXH4VD4XLyXr8rTyCsPyq8+b4f7pWYBG46vr21evT6Zf", + "xcv0acjoPUbH02Dy5IxvJoKQTqPkdI/C0tl9jz2W6xX/6K6317IGe7WRdXrcOx52Rh4ZnZT6pDy8qzVv", + "Yb1cO62+vpRHYoCq43Pr+jO9vgrPD+75aXdcLt+dPDan1yicfmzsWXelxyO3szeqdu/PX/pkF7WfnCnu", + "XJUn3s7jyeHtuRV6kxHfb34MvZGzQ3uDGq+++U/j6/LeCe29PtQqL/C8/tD9eOk+IdQnjd3yZ3rvDqyd", + "86D78WX4RF84OxJPjevB3dPHx/Fx4zZg9kOTvZwOzkaVs+D2vPnac1/5TZMfuCc7fVK+CF8rD7BzUHYq", + "7fq11bHPStbXF1puWBZ7Ofgc4tcHhus43O98Dhpfe6Vh9+3S53bbIY3S16fzPsGNm9Abhnt74Vf3oTQR", + "lYEgWDi3/OuL+9oJXx7vak+DmjsSxw33/K70+fNerfLVvaifT5q3zZvmQZ+Iw+OTp4fbseUfOeeHnZ3z", + "brPx5N+PBtUz96LX2bn4fDCFDzuuRbxm9Lt1ejaG/v2L3aqP+8TyrY/45uzq4KBz0Go2a8f46Aid7vrM", + "PT7dC+/5zUWnUyk/1q0nl7w+No6bvjpDrZNJ47g1GbX75GDSPjm+oWetJm8dHDy2mpOj1qlz1DquNZst", + "Z3Qz6/3x8rFZ2jt4DBxv2m0+PZ66L9Nzt09KH4e7b9fD+/HgtFI++lodtfeujg8uy+Ti88eDux0/HHc/", + "fu2F3erDBTuo+tWT0BPB+e3R2fmF8OtHh32yw07ePjdpb2ca7D+2GxfNQ7vTal1NX5ovnD7cNfYe78LW", + "x9KAvLAeuq1c3F61htPr1t7uw36jjq/u+8Svdz8O+M3hZK9VuWCe3ezUOochnT7tdLE4gU+185uLe/Gx", + "dwR3apg/dk9aL2907/qxcV89uxrVy33ifH1wGpXL0sCvHL1193qN6sPR4WDHG7/U2t741Wl/PUfOzs7b", + "58dXnz12n87OWsPx2/Cjd9ndDV+d0z55eS2dlafeU+UCD07Y7kmzOb3av3tgzafupNspH1kvvcbkqEVe", + "R93DcPrVf5jcjy8PPodH7fvGFao+9kkH3+0Mzy4b3N47DPjxa73z8bNNOuSm+/GUvfSuzw+r/gPzmjY5", + "6rn2433j5WkUPLiHU14t7e+jqz5xR2V2Qabll8vJCIbDEr5rXFm7n8ed0cvFbefMqd/t359Pz8KHB/E2", + "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", } // GetSwagger returns the content of the embedded swagger specification file diff --git a/internal/cloudapi/v2/openapi.v2.yml b/internal/cloudapi/v2/openapi.v2.yml index 959a3416c8..b67ee962f1 100644 --- a/internal/cloudapi/v2/openapi.v2.yml +++ b/internal/cloudapi/v2/openapi.v2.yml @@ -1420,6 +1420,12 @@ components: description: | The distribution to use for the compose. If left empty the host distro will be used. + architecture: + type: string + example: 'x86_64' + description: | + Architecture to use for the compose. If left empty the host arch + will be used. packages: type: array description: Packages to be installed