diff --git a/cmd/goal/account.go b/cmd/goal/account.go index 32c2b35e2b..ca8da712a7 100644 --- a/cmd/goal/account.go +++ b/cmd/goal/account.go @@ -574,6 +574,7 @@ var assetDetailsCmd = &cobra.Command{ } printAccountAssetsInformation(accountAddress, response) + }, } var infoCmd = &cobra.Command{ @@ -777,7 +778,7 @@ func printAccountAssetsInformation(address string, response model.AccountAssetsI fmt.Printf("Account: %s\n", address) fmt.Printf("Round: %d\n", response.Round) if response.NextToken != nil { - fmt.Printf("NextToken (use with --next to retrieve more account assets): %s\n", *response.NextToken) + fmt.Printf("NextToken (to retrieve more account assets): %s\n", *response.NextToken) } fmt.Printf("Assets:\n") for _, asset := range *response.AssetHoldings { diff --git a/cmd/goal/box.go b/cmd/goal/box.go index d80bc748f0..12288d3fff 100644 --- a/cmd/goal/box.go +++ b/cmd/goal/box.go @@ -20,17 +20,11 @@ import ( "bytes" "strings" - "github.com/algorand/go-algorand/cmd/util/datadir" "github.com/spf13/cobra" ) -var ( - boxName string - // next uint64 // declared in account.go - // limit uint64 // declared in account.go - boxPrefix string - boxValues bool -) +var boxName string +var maxBoxes uint64 func init() { appCmd.AddCommand(appBoxCmd) @@ -43,10 +37,7 @@ func init() { appBoxInfoCmd.Flags().StringVarP(&boxName, "name", "n", "", "Application box name. Use the same form as app-arg to name the box.") appBoxInfoCmd.MarkFlagRequired("name") - appBoxListCmd.Flags().StringVarP(&boxPrefix, "prefix", "p", "", "Return only boxes that begin with the supplied prefix.") - appBoxListCmd.Flags().StringVarP(&next, "next", "n", "", "The next-token returned from a previous call, used for pagination.") - appBoxListCmd.Flags().Uint64VarP(&limit, "limit", "l", 0, "The maximum number of boxes to list. 0 means no limit.") - appBoxListCmd.Flags().BoolVarP(&boxValues, "values", "v", false, "Request and display box values.") + appBoxListCmd.Flags().Uint64VarP(&maxBoxes, "max", "m", 0, "Maximum number of boxes to list. 0 means no limit.") } var appBoxCmd = &cobra.Command{ @@ -92,42 +83,36 @@ var appBoxInfoCmd = &cobra.Command{ reportInfof("Name: %s", boxName) // Print box value - reportInfof("Value: %s", encodeBytesAsAppCallBytes(*box.Value)) + reportInfof("Value: %s", encodeBytesAsAppCallBytes(box.Value)) }, } var appBoxListCmd = &cobra.Command{ Use: "list", - Short: "List application boxes belonging to an application", - Long: "List application boxes belonging to an application.\n" + - "Printable names and values are formatted as 'str:hello' otherwise 'b64:A=='.", + Short: "List all application boxes belonging to an application", + Long: "List all application boxes belonging to an application.\n" + + "For printable strings, the box name is formatted as 'str:hello'\n" + + "For everything else, the box name is formatted as 'b64:A=='. ", Args: validateNoPosArgsFn, Run: func(cmd *cobra.Command, args []string) { - dataDir := datadir.EnsureSingleDataDir() - client := ensureAlgodClient(dataDir) + _, client := getDataDirAndClient() - response, err := client.ApplicationBoxes(appIdx, boxPrefix, &next, limit, boxValues) + // Get app boxes + boxesRes, err := client.ApplicationBoxes(appIdx, maxBoxes) if err != nil { reportErrorf(errorRequestFail, err) } + boxes := boxesRes.Boxes - // Endpoint did not originally report the Round, so don't show it if it's 0 - if response.Round != 0 { - reportInfof("Round: %d", response.Round) - } - // There will only be a next-token if there are more boxes to list - if response.NextToken != nil { - encoded := encodeBytesAsAppCallBytes([]byte(*response.NextToken)) - reportInfof("NextToken (use with --next to retrieve more boxes): %s", encoded) + // Error if no boxes found + if len(boxes) == 0 { + reportErrorf("No boxes found for appid %d", appIdx) } - reportInfoln("Boxes:") - for _, descriptor := range response.Boxes { - name := encodeBytesAsAppCallBytes(descriptor.Name) - if boxValues { - reportInfof("%s : %s", name, encodeBytesAsAppCallBytes(*descriptor.Value)) - } else { - reportInfoln(name) - } + + // Print app boxes + for _, descriptor := range boxes { + encodedName := encodeBytesAsAppCallBytes(descriptor.Name) + reportInfof("%s", encodedName) } }, } diff --git a/daemon/algod/api/algod.oas2.json b/daemon/algod/api/algod.oas2.json index e872fe62de..7946258d63 100644 --- a/daemon/algod/api/algod.oas2.json +++ b/daemon/algod/api/algod.oas2.json @@ -1744,11 +1744,11 @@ }, "/v2/applications/{application-id}/boxes": { "get": { - "description": "Given an application ID, return boxes in lexographical order by name. If the results must be truncated, a next-token is supplied to continue the request.", + "description": "Given an application ID, return all Box names. No particular ordering is guaranteed. Request fails when client or server-side configured limits prevent returning all Box names.", "tags": ["public", "nonparticipating"], "produces": ["application/json"], "schemes": ["http"], - "summary": "Get boxes for a given application.", + "summary": "Get all box names for a given application.", "operationId": "GetApplicationBoxes", "parameters": [ { @@ -1757,27 +1757,9 @@ { "type": "integer", "format": "uint64", - "description": "Maximum number of boxes to return. Server may impose a lower limit.", + "description": "Max number of box names to return. If max is not set, or max == 0, returns all box-names.", "name": "max", "in": "query" - }, - { - "type": "string", - "description": "A box name prefix, in the goal app call arg form 'encoding:value'. For ints, use the form 'int:1234'. For raw bytes, use the form 'b64:A=='. For printable strings, use the form 'str:hello'. For addresses, use the form 'addr:XYZ...'.", - "name": "prefix", - "in": "query" - }, - { - "type": "string", - "description": "A box name, in the goal app call arg form 'encoding:value'. When provided, the returned boxes begin (lexographically) with the supplied name. Callers may implement pagination by reinvoking the endpoint with the token from a previous call's next-token.", - "name": "next", - "in": "query" - }, - { - "type": "boolean", - "description": "If true, box values will be returned.", - "name": "values", - "in": "query" } ], "responses": { @@ -3421,7 +3403,7 @@ "Box": { "description": "Box name and its content.", "type": "object", - "required": ["name"], + "required": ["round","name","value"], "properties": { "round": { "description": "The round for which this information is relevant", @@ -3440,6 +3422,20 @@ } } }, + "BoxDescriptor": { + "description": "Box descriptor describes a Box.", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "Base64 encoded box name", + "type": "string", + "format": "byte" + } + } + }, "BoxReference": { "description": "References a box of an application.", "type": "object", @@ -4749,24 +4745,15 @@ } }, "BoxesResponse": { - "description": "Boxes of an application", + "description": "Box names of an application", "schema": { "type": "object", - "required": ["round", "boxes"], + "required": ["boxes"], "properties": { - "round": { - "description": "The round for which this information is relevant.", - "type": "integer", - "x-go-type": "basics.Round" - }, - "next-token": { - "description": "Used for pagination, when making another request provide this token with the next parameter.", - "type": "string" - }, "boxes": { "type": "array", "items": { - "$ref": "#/definitions/Box" + "$ref": "#/definitions/BoxDescriptor" } } } diff --git a/daemon/algod/api/algod.oas3.yml b/daemon/algod/api/algod.oas3.yml index 8ef003300a..93d0aaf1f3 100644 --- a/daemon/algod/api/algod.oas3.yml +++ b/daemon/algod/api/algod.oas3.yml @@ -363,29 +363,19 @@ "properties": { "boxes": { "items": { - "$ref": "#/components/schemas/Box" + "$ref": "#/components/schemas/BoxDescriptor" }, "type": "array" - }, - "next-token": { - "description": "Used for pagination, when making another request provide this token with the next parameter.", - "type": "string" - }, - "round": { - "description": "The round for which this information is relevant.", - "type": "integer", - "x-go-type": "basics.Round" } }, "required": [ - "boxes", - "round" + "boxes" ], "type": "object" } } }, - "description": "Boxes of an application" + "description": "Box names of an application" }, "CatchpointAbortResponse": { "content": { @@ -1690,6 +1680,23 @@ "type": "string" } }, + "required": [ + "name", + "round", + "value" + ], + "type": "object" + }, + "BoxDescriptor": { + "description": "Box descriptor describes a Box.", + "properties": { + "name": { + "description": "Base64 encoded box name", + "format": "byte", + "pattern": "^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$", + "type": "string" + } + }, "required": [ "name" ], @@ -3936,7 +3943,7 @@ }, "/v2/applications/{application-id}/boxes": { "get": { - "description": "Given an application ID, return boxes in lexographical order by name. If the results must be truncated, a next-token is supplied to continue the request.", + "description": "Given an application ID, return all Box names. No particular ordering is guaranteed. Request fails when client or server-side configured limits prevent returning all Box names.", "operationId": "GetApplicationBoxes", "parameters": [ { @@ -3952,37 +3959,13 @@ "x-go-type": "basics.AppIndex" }, { - "description": "Maximum number of boxes to return. Server may impose a lower limit.", + "description": "Max number of box names to return. If max is not set, or max == 0, returns all box-names.", "in": "query", "name": "max", "schema": { "format": "uint64", "type": "integer" } - }, - { - "description": "A box name prefix, in the goal app call arg form 'encoding:value'. For ints, use the form 'int:1234'. For raw bytes, use the form 'b64:A=='. For printable strings, use the form 'str:hello'. For addresses, use the form 'addr:XYZ...'.", - "in": "query", - "name": "prefix", - "schema": { - "type": "string" - } - }, - { - "description": "A box name, in the goal app call arg form 'encoding:value'. When provided, the returned boxes begin (lexographically) with the supplied name. Callers may implement pagination by reinvoking the endpoint with the token from a previous call's next-token.", - "in": "query", - "name": "next", - "schema": { - "type": "string" - } - }, - { - "description": "If true, box values will be returned.", - "in": "query", - "name": "values", - "schema": { - "type": "boolean" - } } ], "responses": { @@ -3993,29 +3976,19 @@ "properties": { "boxes": { "items": { - "$ref": "#/components/schemas/Box" + "$ref": "#/components/schemas/BoxDescriptor" }, "type": "array" - }, - "next-token": { - "description": "Used for pagination, when making another request provide this token with the next parameter.", - "type": "string" - }, - "round": { - "description": "The round for which this information is relevant.", - "type": "integer", - "x-go-type": "basics.Round" } }, "required": [ - "boxes", - "round" + "boxes" ], "type": "object" } } }, - "description": "Boxes of an application" + "description": "Box names of an application" }, "400": { "content": { @@ -4052,7 +4025,7 @@ "description": "Unknown Error" } }, - "summary": "Get boxes for a given application.", + "summary": "Get all box names for a given application.", "tags": [ "public", "nonparticipating" diff --git a/daemon/algod/api/client/restClient.go b/daemon/algod/api/client/restClient.go index 8a2a53dfc1..484b2ba168 100644 --- a/daemon/algod/api/client/restClient.go +++ b/daemon/algod/api/client/restClient.go @@ -475,16 +475,12 @@ func (client RestClient) ApplicationInformation(index basics.AppIndex) (response } type applicationBoxesParams struct { - Prefix string `url:"prefix,omitempty"` - Next *string `url:"next,omitempty"` - Max uint64 `url:"max,omitempty"` - Values bool `url:"values,omitempty"` + Max uint64 `url:"max,omitempty"` } // ApplicationBoxes gets the BoxesResponse associated with the passed application ID -func (client RestClient) ApplicationBoxes(appID basics.AppIndex, prefix string, next *string, limit uint64, values bool) (response model.BoxesResponse, err error) { - err = client.get(&response, fmt.Sprintf("/v2/applications/%d/boxes", appID), - applicationBoxesParams{prefix, next, limit, values}) +func (client RestClient) ApplicationBoxes(appID basics.AppIndex, maxBoxNum uint64) (response model.BoxesResponse, err error) { + err = client.get(&response, fmt.Sprintf("/v2/applications/%d/boxes", appID), applicationBoxesParams{maxBoxNum}) return } diff --git a/daemon/algod/api/server/v2/generated/data/routes.go b/daemon/algod/api/server/v2/generated/data/routes.go index 5a622bfb9c..6a21768856 100644 --- a/daemon/algod/api/server/v2/generated/data/routes.go +++ b/daemon/algod/api/server/v2/generated/data/routes.go @@ -115,225 +115,225 @@ func RegisterHandlersWithBaseURL(router EchoRouter, si ServerInterface, baseURL // Base64 encoded, gzipped, json marshaled Swagger object var swaggerSpec = []string{ - "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", - "Prr/PwEAAP//q6JtrfMMAQA=", + "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", } // GetSwagger returns the content of the embedded swagger specification file diff --git a/daemon/algod/api/server/v2/generated/experimental/routes.go b/daemon/algod/api/server/v2/generated/experimental/routes.go index aaa58ea1dd..b2e864272d 100644 --- a/daemon/algod/api/server/v2/generated/experimental/routes.go +++ b/daemon/algod/api/server/v2/generated/experimental/routes.go @@ -131,230 +131,231 @@ func RegisterHandlersWithBaseURL(router EchoRouter, si ServerInterface, baseURL // Base64 encoded, gzipped, json marshaled Swagger object var swaggerSpec = []string{ - "H4sIAAAAAAAC/+y9e3Mbt5Io/lVQ3K1y7B9JyY6dPfGvTu1V4jy0sWOXpWTvruWbgDNNEkdDYA6Akcj4", - "6rvfQuMxmBkMOaRoO6l7/7LFwaPRaDQa/fwwysSqFBy4VqPnH0YllXQFGiT+RfNcgsL/5qAyyUrNBB89", - "H51xQrNMVFyTspoVLCPXsJmOxiNmvpZUL0fjEacrGD0Pg4xHEv5ZMQn56LmWFYxHKlvCitpptQZp+r47", - "m/z36eTr9x+e/e1uNB7pTWnGUFoyvhiNR+vJQkzcjzOqWKamZ278u11faVkWLKNmCROWpxdVNyEsB67Z", - "nIHsW1hzvG3rWzHOVtVq9Pw0LIlxDQuQPWsqy3Oew7pvUdFnqhTo3vWYjwNW4sc46hrMoFtX0WiQUZ0t", - "S8G4TqyE4FdiPyeXEHXftoi5kCuq2+0j8kPaezx+fHr3L4EUH4+ffZkmRloshKQ8n4Rxvw3jkgvb7m6P", - "hv5rGwHfCj5ni0qCIrdL0EuQRC+BSFCl4AqImP0DMk2YIv9x8fpnIiR5BUrRBbyh2TUBnokc8ik5nxMu", - "NCmluGE55GOSw5xWhVZEC+wZ6OOfFchNjV0HV4xJ4IYW3o3+oQQfjUcrtShpdj1630bT3d14VLAVS6zq", - "FV0biiK8Ws1AEjE3C/LgSNCV5H0A2RFjeLaSZMW4/uppmw7rX1d03QXvUlY8oxryCEAtKVc0My0Qypyp", - "sqAbRO2Krv9+OnaAK0KLgpTAc8YXRK+56luKmftoC+GwTiD6cgnEfCElXUCE5yn5RQFSEn7V4hp4oA4y", - "2+CnUsINE5UKnXrWgVMnFhLRgRQVTzEqgh8cmnt4lO17TAb1Fke82/5NsYX71Ib6gi0uNyWQOSvMfUn+", - "USkdCLhSuO1LIKqEzPDenJhhDPIVW3CqKwnPr/gj8xeZkAtNeU5lbn5Z2Z9eVYVmF2xhfirsTy/FgmUX", - "bNGzAwHW1DlV2G1l/zHjpY+qXifvkpdCXFdlvKAsPguGVs5f9FGGHbOfNNIM8izIDbg/bqzL9fmLPpa6", - "vYdeh43sAbIXdyU1Da9hI8FAS7M5/rOeI2nRufxjZMUL01uX8xRqDfk7do0C1ZmVn85qIeKt+2y+ZoJr", - "sFdhJGacILN9/iGWnKQoQWpmB6VlOSlERouJ0lTjSP8qYT56PvqXk1rQO7Hd1Uk0+UvT6wI7mctYgmF8", - "E1qWe4zxxgiPKGr1HHTDh+xRnwtJbpcsWxK9ZIowbjcR5S7DaQq4oVxPR3ud5LuYO7xzQNRbYS9JuxUt", - "BtS7F8Q2nIFC2ndC7wPVkBQR4wQxTijPyaIQs/DDF2dlWSMXv5+VpUXVmLA5AYb3OayZ0uohYobWhyye", - "5/zFlPwQj33LioIIXmzIDNy9A7kZ0/Jtx8edAG4Qi2uoR3ygCO60kFOzax4NRi47BjGiVLkUhbkCd5KR", - "afyjaxtToPl9UOe/PPXFaO+nO5ToHVKRmuwv9cONfNEiqi5NYQ9DTWftvodRlBllCy2p8xrBx6Yr/IVp", - "WKmdRBJBFBGa2x4qJd14CWqCklCXgn5RYImnpAvGEdqxEcg5WdFrux8C8W4IAVSQtC2ZWfHqlullLXIF", - "1E8774u/NiGn9pyYDafMyMakYEobYQg3U5ElFChw0qBYiKnoIKIZQAtbFhFgvpW0tGTuvlg5jnFCw/vL", - "wnrPm3zgJZuEOVZb1HhHqA5m5jsZbhISq3BowvBNIbLrH6laHuHwz/xY3WOB05Al0BwkWVK1TJypFm3X", - "ow2hb9MQaZbMoqmmYYkvxUIdYYmF2IerleW3tCjM1F1u1lotDjzoIBcFMY0JrJg2D2DG8QQs2A1wy3qm", - "5DuaLY0wQTJaFONaLyHKSQE3UBAhCeMc5JjoJdX14ceR/UMJz5ECwwc1kGg1TqcxJZdLkDAXEh+qEsiK", - "4uW0Ms+jsmj2CcxV0RW0ZCe8LEWlDYzRy+X8hV8d3ABHnhSGRvDDGvHBHw8+NXO7TzgzF3ZxVAIqWhjP", - "iiqv8Rf4RQNo07q+ank9hZA5KnqoNr8xSTIh7RD28neTm/8AlXVnS51flBImbghJb0AqWpjVtRb1MJDv", - "sU7njpOZU02jk+moMP2is5wD+6FQCDKh3XiN/6EFMZ+NgGMoqaYehnIKyjRhP/DONqiyM5kGhm9pQVZW", - "b0ZKml3vBeW39eRpNjPo5H1nVXVuC90iwg5drlmujrVNOFjfXjVPiNX5eHbUEVO2Mp1oriEIuBQlseyj", - "BYLlFDiaRYhYH/1a+0asUzB9I9adK02s4Sg7YcYZzOwRvv8nsu4UWS1Wx3uIrrifeLc3jEBmRbWi/mwm", - "5GGyVMcwU5sfCDWjRqLkuEUi2LQqJ44zJYwDtkFrIBKUa9tFoPbwKWw1sHCh6UfAgjKjHgMLzYGOjQWx", - "KlkBRzj4y6QIO6MKvnxCLn48e/b4yW9Pnn1lSLKUYiHpisw2GhT5wmk5idKbAh4mzyDKVunRv3rqzUHN", - "cVPjKFHJDFa07A5lzUxWLWCbEdOui7UmmnHVAcBB9wGYi92inby1/e7GoxcwqxYXoDXjC/VGivnR74LO", - "DCnosNGbUhqxSjVNck5WPMlNkxNYa0lPSmwJPLeGR7MOpswLeDU7ClH1bXxez5ITh9Ecdh6KfbepnmYT", - "b5XcyOoYeh+QUsikAFJKoUUmiomRcplIXINvXAviWvjtKtu/W2jJLVXEzI3mv4rnPbedXvPht7cd+nLN", - "a9xslZzsehOrc/MO2Zcm8us3WAlyotecIHU2LuG5FCtCSY4dUdL6AbSVPtkKLjRdla/n8+NoiAUOlJAW", - "2AqUmYnYFkb2U5AJnqudgoG3hbaQ6aYagrM2trwlT/dD5dB0seEZSiTHOMv9gpQzdBK14VkkVRkYC8gX", - "DVr9qAq/PkxZKB6oBKQGUy/xM9pDXkCh6fdCXtbC/g9SVOXR2Xl7zqHLoW4xzuKSm75en874ooDGO2Vh", - "YJ+m1vhZFvRtULnYNSD0SKwv2WKpo9f1Gyk+wh2anCUFKH6wqrXC9Okq2H4WuWE+ulJHED3rwWqOaOg2", - "5oN0JipNKOEiB9z8SqWF0h6fJXNQs0pK4DqWc1GbwxSZgaGujFZmtVVJtEjdL3XHCc3sCZ0galSPk0dw", - "VLGt7HRLegOEFhJoviEzAE7EzCy69vHARVJl3nbai3VOJB7KbxvAllJkoBTkE6fN3wmvb2fvH70Febga", - "XEWYhShB5lR+nBVc3+wE/ho2kxtaVEY8/+lX9fDPsggtNC12bAG2SW1EW3nZXco9YNpGxG2IYlK2ulJ7", - "EoyIbZhOARr6kH1/7PVufxvMDhF8JATegER/oo96tPwkH4EoA/wf+WB9lCVU5cSIgb3qByO5mv3mlAsv", - "G+6YIUxQUKUnu64U06ihNzFLjbh46hbBgXvkyZdUaRQDCeM5aq/tVYjzWNnSTDHa06UOp+x9jZlJf/UP", - "se60mbneuapUeJWpqiyF1JCnlofqz965foZ1mEvMo7HD008LUinYNXIfAqPxHR6dIgD/oDooO536tLs4", - "9Lkw4stmXyw34KtxtA3GC98qQnzsUtwDI1P1HlhyY6pFbzMhCqCoMlValKXhUHpS8dCvD4MXtvWZ/qVu", - "2yVJawSzkkouQKGBzbV3kN9apCu09C2pIg4Or+pGhZd1EOzCbI71RDGewWTbecFHsGkVH5yDjntVLiTN", - "YZJDQTcJxb39TOznPQnDj40EUusPhIbJDG2paRqpz4T3tj1sVoFTqZTgTfALycw5N8+omtRc78MnzQGn", - "TfFNR6wPwiwIRpIO/HiILEtPiRHx7r8R2pCVIzpcjbuV7rmWHuyFWT8KAnHcSa0IaM/+X6Dc3EEAO+r8", - "G1B9C6+nPtaye9T/eLc3LszWVda6bZJXRC9f3sEY+3hQjy3iDZWaZazE5+pPsDn66709QdJThOSgKSsg", - "J9EH+5Iv4/7EOmG3xzzsNT9I3doFv6NvTSzH+6U1gb+GDapN3th4jkhbdQx1RGJUc+FSThBQHzNgXjxx", - "E1jTTBcbI9jqJWzILUggqppZn52uCU2LchIPkI4Y65/RuSMknQG2+kdc4FDR8lJGbPva2g7fZevJ1UCH", - "e2WVQhQJ/Wf7xHeQkYRgkLMUKYXZdUaLYkN0CBrylNQA0l0Q6IsS5JkHqoFmXAH5L1GRjHJ84VYagpAm", - "JEo+KCybGYy4GeZ0jro1hqCAFdjXPH559Ki98EeP3J4zReZwax2OODZso+PRI1TFvRFKNw7XEbTd5rid", - "Jy4dtFWaS9a92to8ZbeLnxt5yE6+aQ0eDJzmTCnlCNcs/94MoHUy10PWHtPIMPdGHHeQ+a7pENdZN+77", - "BVtVBdXHMFTCDS0m4gakZDns5ORuYib4dze0eB263Y1HsIbM0GgGkwxjJAeOBZemjw2rNOMwzswBtmEz", - "QwGCc9vrwnba8dKuXWDYagU5oxqKDSklZGBjBI2UqsJSp8QGjGRLyhf4ApKiWjivGTsOMvxKWU2YrHhn", - "iH1FMb3mEzRhqGSQHpotfaypEcKAmpdt2/5hH2u3NIBiL6NBl3a0PW17UNJkOh71PvwNvm/qh7/FWzNg", - "9lBjYkM+jJBWQzPQeob4NLJSF4nxNprDZ4jh41hp6qFTUHYnjlzi6499XvEXVVkWmyMISXYgIqGUoPBK", - "i9WAyn4Vc/KKZVKcFQsR7jy1URpWXeON7fpbz3F9e8gLWPCCcZisBIfEk/41fn2FHwerHe013DMiCkR7", - "Ddh++DSQ0FpAc/IhJH3fTUKSaZ/9tqVTfS/ksazsdsDBb4oBluudbh1uykPt67QoEiZpq37ocBE1Ds6b", - "TBKqlMgYCornuRo733trxbZO/S30vwmBYUc4wO1xW7bXKAjNKvKhKAklWcFQzS+40rLK9BWnqOmLlppw", - "FvTKgX618Le+SVoPnVATu6GuOEVH0aD/SzoGzSGhh/oewGuHVbVYgNKtB9Yc4Iq7VoyTijONc63McZnY", - "81KCRI+9qW25ohsyNzShBfkDpCCzSjefHKtKaaI0KwpnCDbTEDG/4lSTAqjS5BXjl2sczvuR+CPLQd8K", - "eR2wMB3OuBbAQTE1SXs6/mC/YkiNw8nShddgpIn97P2968wYI7P2RsqO//XFvz9/dzb5bzr543Ty9f93", - "8v7D07uHjzo/Prn7+9//d/OnL+/+/vDf/zW1fR72VCi8g/z8hXujn7/Ah1gUJdOG/c9gkFkxPkkSZexQ", - "1KJF8gVmC3EE97Cp99NLuOJ6zQ3h3dCC5YYXHY182tdU50DbI9aissbGtdR4HgF7PofuwapIglO1+OtH", - "kefaE2x1uIm3vBVh4TijOjqAbuAUXO05U261D3747pKcOEJQD5BY3NBRYoXEC8bFbza8fMwuxWFtV/yK", - "v4A5vgcFf37Fc6rpiT1NJ5UC+Q0tKM9guhDkuQ8JfUE1veKda6g3fVYU0h3lz0pxCrpKr+Xq6h0tFuLq", - "6n3HD6ErW7mpYi7qzllXTeannBi5QVR64lLYTCTcUpmyhfgEJy4WHHtvhcPKJKKySiyfIseNPx0KZVmq", - "dqqLLorKsjAoikhVuWwNZluJ0iKEzRlm7iKPDQ38LJxTiaS3/slbKVDk9xUt3zGu35PJVXV6+iUGINYJ", - "Hn53PNDQ7aaEwQ/f3lQc7fcuLtzK5ehUPinpImUzubp6p4GWSCEocKzwpVkUBLs1giN9JAAOVS8gRGLv", - "sSUWsr2jmnG5F7aXT2qWXhR+wk1tRo7fawejnAAHb+COvAK00suJ4QjJVSlzDPxe+fQKdGGuHO9BoNgC", - "HwBqKSqzZCDZErJrl9cLVqXejBvdvaOLu4s9w2EKdUYuNHLODP4yys2AVZlTJ8hQvmkn+FE2GAIHfQvX", - "sLkUtvt0YG60KBdflGBG9R1dpN3orjXkGx9kN0Z7853flY+QdclYMOrUk8XzQBe+T//RtgLAEY51iiga", - "WU76EEFlAhGW+HtQcMBCzXj3Iv3U8hjPgGt2AxMo2ILNigSb/s+uXcPDaqhSQgbsxsc0hwEVYXNiXkcz", - "ex27F5OkfAHmUjcXsVC0QKf9adLQj9LhEqjUM6B6q76WxxGLHjoUyG8xZByVJmOzBFib/WYalSAcbs0D", - "D9/eto1zJJ4e5E5l1wT5gaD67nWI+PSQR4RDeCKbn7/vw56E94LzT4upE0G231cGhwspbs1uGgCFT1yJ", - "6W2ie6pSdAFDr6OGqWhgQpCGBQgH2SX9JOUdMW+LNR0ZY+AibPeJwUuSO4D5YtgDmgFaLo5+bmtCdFaF", - "17zYeKTOChSog4OoJR0qG3Y2vtgP2DQbA8lrYdUD1sRafPSXVPmjn48jjn6gtPh5opK3ZQ88j7zvqO7m", - "BvTXdJu1j60+ZwZEcNPD5xD0iQN9tsDReK/Mf+ORC3FI7Z3gKEXnUMDC4sQ29nRWZ6eqd9PA8Xo+R6Y3", - "STnyRcrISDJxc4B5iD0ixGrMyeARUqcgAhst6zgw+VnEh50v9gGSu+xa1I+Nd1f0N6SDBa03vpGSRWlu", - "fdZjtco8S3HJPWqRp+XijMMQxsfEcNIbWhhO6gJP60E6merw7dPKS+d8Ox72vYkGHjS3RpRO9lqllWcO", - "WV8sePtlpF8Fe61hJtYTGxmdfFrN1jNzJpLxChinnTq8Nm/gA0VmYo0+RXjDWQf3vaHrh8wDFrmBrJlC", - "Ksd+fWKjBW8/QLYL8ilqVkh6Tq8WyK5Pkj0MmB5xuo/svogSCB4JpJYCs06C7jQ6O/UsTWmrK4nU1+04", - "5MYNYWopVtN3OJM72YPRrvK0menvxzrZY39qOH9WP0mKw65S7j5ZKW3n0maa3CcpZZscGkBsweqbthCb", - "RGvTcamJ1whrKZZkGH3X2NVFm4ICUBMwacjVk+uUWfrq6p0ClBkufLdIz4m7R/nmYeQNJ2HBlIbauOCd", - "XD697QfVieaxJeb9q9OlnJv1vRUiCBrWHIsdG8v85CtA1/U5k0pP0DKTXIJp9L1CTdr3pmlaEG762zFl", - "TT17y8EI0TVsJjkrqjQpO5B+emEg+jncXKqa4UXJuPU2mmEhgKSD7h62SYTHOnZvRdBLi6CX9FPgZ9jB", - "Mk0NTNJQXnP6v8gRa/HCbZwlQcspYupuaC9Kt/DaKJa+y2gjITpyu5hus/l0zmXux97pjeUj+vuECDtS", - "ci1RPsh0AKFYLCD3ee5cUKjNeuWyCRaCL+qcX+b3LckTp8TmMMQUhFuyFzr3dOhzTm8UU8GaIEno48cM", - "Ql5H12HmRZxkAdxmbhntX22lSCIudozHFpFm9NPy9o7bfNJ1+LLlLlz79No9DJuN21MAzd2zSoFf3/ZD", - "290uh7pxn9NxI0Hu9gOGAyLFMa0iAaZDND2cm5Yly9ctw58ddXoASQwU97p58Fs4Q7bkBtuBn6Zj8Y5K", - "RQ/M7YjtnbHjBJ/5J+aRaf2ZnUeuORs0c9kG8kqiNanhLdytJhAemgPX/tOvF1pIugBnEZxYkO41BC5n", - "HzRECfkV0cw6SOdsPofYEqYOseI0gOvYO/IBhN1Dgl1zWXhbbqXPLpHtoK16BbsRmqanBKX0+Vxcdu2R", - "/uER6dbCZRNt3AFGxWRCgZ9gM/mVFpV5CTGpat9UZyBsXut70MTN6ifY4Mg7XT4NYDt2BVVxbwEpNGVd", - "CZ9UlCP9gWrUnsA3cGML99ips/QuHWlrXCGR/qNR31CNahrNpXy8Y1O7yBhIh+zVRdrrxJwtaG5Lm9B3", - "bRHLd8s+0RMknoqh98Yhl1zItLHTuwxo4QkfFzu6G4/u5++RuifdiDt24k24mpO7gN6Y1v7fcPrac0No", - "WUpxQ4uJ85PpEzqkuHFCBzb3bjWf+H2VPhWX3529fOPAvxuPsgKonARVR++qsF35l1mVLUCy/Rqyyeid", - "bteqwqLNDwnDY0+aW0w839KmdSr91H5T0UF1njXztKf4Tr7pXLzsEre4ekEZPL1qi7R19Go6d9Ebygpv", - "+PXQDtWy2+UOqy2V5BPxAPd2Eou8/+49Vm+cwNXVuxuP2dqeYh2lQkGAhC+dOtDTucNr0me1pvUdHBLX", - "+RozmabfXdzlOUXG6BzO6NHlwO+FbFxULqox6bD28QRE85iweEwb5S+dFb4jFk6JFSF/X/xueMOjR/HB", - "f/RoTH4v3IcIQPx95n7Hd9SjR0nDcFLVZ1gWavI4XcHDEBfRuxGfVg3B4XaYuHB2swoysugnw0Ch1vPM", - "o/vWYe9WMofP3P2SQwHmp+kQVUW86RbdMTBDTtBFX1RicH5e2WKmigjejsHHKFlDWnj1uPol1s7ePUK8", - "WqHdeaIKlqWdfvhMGZbErUuvaUyw8WAbspmjYj1+5bxi0eimmTrI5NlaSDRrEuEqmQm4xu9MOBZQcfbP", - "CqKixngTty5n/xTCUTsCdlq/6AZu10weHVLu+P4mQq9V26Yw2mpyfRHMgB4RqSpbe8Y7xDN2mP+WWAVH", - "Uf76xMC2pXMd3klZW99520tgOzOwZ5/O4tr/QHLFQO1mvhiy00xN5lL8AWnZAY2EidQd3rrNUAH/B/CU", - "j2qbkQXPgbpcdz37LgIZrlvoI5V76xL8okPNwEOu8DSf2G+j91QaRPvdrzZQ6fTibhP6Hqqx40kzkKaH", - "meGBjdzCsZSLd3ej3J5Qm9eiEXmWPudxoOiJHb8+5w7mTnBtQW9nNFXmybwXDUzR9jcc87QgvrPfIBVS", - "M9jZSRTLENoym+yvBFlbj7qpkg98+9lpB7/66kceUlz8vBtbX5VCicQwFb+lHP0IsZ/lgK63AuuHYXrd", - "CokJPlXahzCHjK2SyvCrq3d51vX8ytmC2YLqlQJC59rleXQD2ZL6lopcLfOQi8Sh5nxOTsf1mfW7kbMb", - "ptisAGzx2LaYUYUXdPCJCF3M8oDrpcLmTwY0X1Y8l5DrpbKIVYKE9zmKnsETdgb6FoCTU2z3+GvyBToM", - "K3YDD9MXjBPWRs8ffz3eVjccMY4l8rcx+Ry5vA9kSFM2elXbMQxbdaOmIxPmEuAP6L9Ptpwv23XI6cKW", - "7grafbpWlFODkBRMqx0w2b64v+jK0cILt9YZUFqKDWE6PT9oajhWTzS5YYgWDJKJ1YrplfMUVWJlKKwu", - "wm4n9cNhdUFfBM7D5T+iC3aZeON/hucWXfVEOKJX/c9ob4/ROibUZmwtWB1/4evzknOfmRqr4oVieBY3", - "Zi6zdJRXMRxjTkrJuEatUaXnk7+Z57ukmWGI0z5wJ7OvniaqyzVLEPH9AP/keJegQN6kUS97yN5LOa4v", - "+YILPlkZjpI/rFM6RKey11c87d/b53bcM/S9pWsz7qSXAKsGAdKIm9+LFPmWAe9JnGE9e1Ho3iv75LRa", - "yTTB0Mrs0C9vXzpJZCVkqtJFzQCcVCJBSwY3GF+a3iQz5j33QhaDduE+0H9e7zYvlkaimz/dycdCZFVO", - "vNNCWiUj6f/6qs6Pj8ZtG7fb0l4KmdDTOo3jJ3ZL3U9f2LahW3dA/NaDucFow1G6WOkJ97DxHKHP5/D3", - "aoNk97yhKn38O5HmHY+y/qNHCPSjR2MnKv/+pPnZsvdHj4a7zKb1hebXBGoOu2va2StN39RWfyMS2rtv", - "xNoya+835lKVJDSsybvMXKkzN8aYNEslfnq54zjxinu7IacPkEcNfm7j5jPzV9zMHiIZqPLCtXVKvybd", - "AHb6sER7YkadQSHMMyyu7jTYJSNNp62b0ZPs590Fg5rxlr2oWJH/WptYW2xXUp4tkx7TM9PxNyvjRg2i", - "53m2pJxDkextn4K/+Sdj4lH7D9Ez7Irx9Kd2pWELewvSGqwmEH5KP77BFdOFmSBGUTPbVMjfUSxETnCe", - "uixHfe67xcpTZVITAew47KrSzuUWMwO4ahlzVqCPaNrYiy0nkuoeloEV/X39JjMOFthX9s1tRwdJKFvh", - "naToqiwAD+ENSLrAroJDqzumI8ORo5obRJXmE7bEzCaC6EpyIubzaBnANZNQbMakpErZQU7NsmCNc4+e", - "Pz49PR1mQUN8DVi7xatf+Ot6cY9PsIn94spa2WoAe4F/CPR3NdXts/ld4nK1RbFueIrF2oLiqEpB86e5", - "tGxd0VADd0p+wORbhtAb+e9R4+fTBzcTXlZlIWg+xozHl9+dvSR2VttHAqIO65ouUL3VPCJJC8bwBKA+", - "uVhPYqbh42zPC2NWrfQkVBxNpQk0LepCqazl2oOKrxg7U/LC6hyD14qdhGDebLmCPCpwat+4SBzmP1rT", - "bInKvOloq760p9TN8Pq8ngPWtpAoqDNUg0IObpbhSvTaCr1jgpXsb5kCTKoAN9DMRhhSeTpts89O2Fyt", - "rDi3hLNPgftQ+2nfXfDAWbnOOw8kIWvtw70NW3WaCqzgvW8l4wvslQ5KaZVFbhn1bT2Ita8oMSWvnCY/", - "o1xwlmElhZR8iXkGh9kMBxSdSBvz1Mid5cQxTBZjDtHXDou95Zk9y3SI61rso69mvy3h2D81rF2FuwVo", - "5Xgg5GNfG91ZnxhX4Kp7GfqKOaqQCb+mZMxH8I84or/1eISpwnoUid+bbz87xTMmRLlmHBVKDqnumWOt", - "R4ViaETmhGmyEKDcaptBT+qd6TO9XHME4f30pViw7IItcAzrZ2eQYl1cu0OdeYdX52Bq2n5r2rrE/OHn", - "hr+YndSv+/20v65+UiTVa96L/pRjk/cSiZAbxo9H20KMW/3Y8V42ZAg36NYGJd7nHbIJtdmbo3xnnoyW", - "3rAFsWGpyZy4jCfAeMm4t2amkzxlybsENwZPc08/lUmq7aNjEMe7BFr0xHpgxLg1h993qHaZAYMSXKOf", - "o38b67LyPWwlNKhfF5RviD8UhrojoeRbWgRP70SReJTOnDBmPWFbZeNTbMWw9YmPO22ga2eUY+iOpT72", - "vaf6UmnOqnwBekLzPJVU7Rv8SvCrj5aDNWRVqHAVgiibuci71OYmygRX1WrLXL7BPafLmaJKwWpWJPxK", - "X4SPkIcdxixLsw3+myrv1L8zzqN779Bm776d75eAvxuqnZKeDU1PFFtMhmMC75T7o6Oe+jBCr/sfldJ9", - "VPOfImi5xeXiPUrxt+/MxRHnoO44sNurJaSIRmdxgd99squQprTJlfAq6xQxQ3cD3LzElrWA9w2TgN/Q", - "oiedQGySsPerVdP3JRXIenNmUO1Ss2lKap4wRIXRn9zKuhe3zB5d212fA7H1H/6YlgGHj61I7zej/dQw", - "mlmXrpqh9BrLDrNn1USwr0HL1Rno6ktpUYhsMGdww5yZTv15aMVq5dK6J1zOblYij89C7KoEkGZs1hs3", - "ETeAD9vkN3xaJb/I2/RoDf1IIJqhKbkQjW4JYxt16MHzwNip44kila3DLPmeFVj56D8uXv886t/IaAe6", - "W+ryQidV2H0bE8Kw2uSxEA18bOEBghdp/bfqUalj4qP0aXCld5MfvrcKwiEg2SRA+7R+OXTwDgEshC15", - "lCoK0U29Mqq3wyM/ooZ6ey1HiakjRRXtUkKJt49VetZNSKiyOajqZkNGGlK5KFUkx70UvAbWXjQu2Zqt", - "HNQpOtRhoC+GCIcdfNyNR+f5XuJTqtDSyI6SYrAv2WKpvylEdv0j0BykLZaRek7aUhkrMM9QtWQlvn9K", - "oVhd7LYwg7ks1Uscbjo07uRyCS7liY+A74zlvYNvINNY/Lj2cZQAw434ZXqJBgJvUMQmn8HPQQLkUOrl", - "VmHJei6XelnXxAQXVsUUmYEzXdwAHxM2hWk7EiuvMx6RAujcK2GlEHpA0dgQk4NojIFO0VenAPF2MbCT", - "0CzK12frxE6HVxg5Cw7vNorwlqo6LVIrR8DgWOT5HDLM5r41t9x/LoFHycbGXnWHsMyjVHMsxMJhPYKj", - "arRrWLdledsKalRw6WNC2pft4Ro2DxRp0FCy3G0IHz0kvTkix9pxfcb8PtOG8/pjKtATIsg7ebvs8nUB", - "oUMy3EepFw8Ew9O4uZ7qdIyHQeMlmgPAMF2n96pIX+d6Q8G0L3Vdt3R4/0v5BVZqV85jkoZc6rE+iZx3", - "aw3fulzsmEUwWAt9VnZQ/jeffdTOUrBrV34FEWZts7dU5r7FUXLA2XuTpYGeh5lZHfXT9fLZ1y/Hht9l", - "hTAC0KQv6rEZhhP8Ux8o60hcZ+RCqOcgJeTBJlgIBRMtfAzRHpktXWzgFuxZF+qD8NZyV98jHtauqLdA", - "wNu6SgLWOqRYEIA6z+oYK0TCihroZVS5IK0G3bVD39rvPmGGr123Xb3ah/dwLnaXf/ZxZUx1MB+frjlx", - "wsHe3KuRZeMAzSzjHOTEG3HbdQt4MwckJg3Oq8yKKvHZDNrrwTm1tnCzpFIz666y9YSKUk5cw+bEqn18", - "SW2/4zHQVoa0oEfZkltEcVRdtUrBvTgKeJ83N2UpRDHpsQyed4sttA/DNcuuAbOOhrALIwU/aB4bMwn5", - "Ag1SwWfkdrnxpQTKEjjkD6eEnHEb+ubdR5rlNVuT8wd62/xrnDWvbPkUp4GeXvF0DBGWMZH35H5+mC08", - "r483KTD88p7z20EOmF2veZ+P3C3WO2kWwZ0OVW90/TtaIlREfhaKlAB1YQ3B3yJLSFW9x9QjUY4c9A+g", - "xBmQiSpEysX8kPQoZqg0puLJECANfMBztYbCDZ5EgHOy25Fy1H32STXFnEiofTMOzS7qEnZaJq76VCPt", - "mcMsTc44FxLiGdHP1GYhDmFbmMQX/zNjWlK5OSQHaBNVKTVUL5Z3eksGR8l6IbWzZBeHRSFuJ8jWJqF0", - "UEodYNqp5rXti3DW/cxRn0HkdkmVExE3ZElzkgkpIYt7pOOXLVQrIWFSCPTCTDl2zLV5JKwwaJGTQiyI", - "KDORg63ylaagvrkqzinKXhC5siVRYGkH4+Ftn4iOB05pbl9rnp2gvLazioTf/EvTx+ZmqHO72UVPrItA", - "T3wBKJfLzWHINu7Ci4Rj0w21lbJpEXnO1kg3IFNHfk60rGBMXIt2iXl38KkEsmJKWVACLd2yosDUCGwd", - "OTQEf6A0antk53P0g75h6PDWTJNhRerS3I4ht0jMAy7idGNEL6WoFsso+X2A0z/dZeUe9vEov6gKfRIx", - "/tFM8ZSshNLuWWxHqpdcu4B+kQmupSiKpiLPyvkLZ/R9RddnWaZfCnE9o9n1Q3yEc6HDSvOxzxfQ9t2t", - "Z5KtBIPDXgp6zSdIHmp3DnHbDr1aHT0P5p0t7tcxPOzS5Edgvt/NXHfbNc66C2uvq8ln02+hM06oFiuW", - "pY/bX8v7tddnNcW9kmkEbYldm2IFmyEfiO+x4M6E3LOLZuA0WSP0jDge4dw6kBOZ/6IY3x6XzMHxoJ47", - "tMt3nIA1yXrFwBYACKmN8teVtHV5YyEtMByxsFlB0CmlDejACwd9/+4Hmxnh6EBpuBdQHW/kAOAXVoMx", - "tukerWfzTKz994d1PsiDgL/bTuUN5tHnVHlRk5a0bpU+S1MPR0hn19/qgXiJGR5mQ/0QQ531gZd/BEC/", - "Z2IDhkH+ifuCMaesgHySKsF7HnRg4+i57mIso9F9sULLyTNa+TK3ZuxKgssaZKV/2TQnltSQkgjNuxpx", - "nsMabIzWHyCFLVI7jsxZUNgati2NgignBdxAw2HTpTKqUAplN+D7qtCZ5AAlWnzbiraUJ2JcAq+lfXFr", - "n0S+bEOwm1THWMTanSI7dC1JzdCaT+wxUUOPkoHohuUVbeBP7StyNHWJ5ignUNV5Pkz8E3PoNL/YEd76", - "Ac58/5Qo4zHxfhgf2psFpVG3jQHt9EyuVN+p52nH5DhPVzAU4Wx5sGtbEq/5hirpLe/XanZJvn6JDdwn", - "JniE2O/WkKFU455CkLvHUI/lxCX4QWrnALl9MJguCW3+EjjhIiroe0tVeMXUKUv9D3ZibMS4e2gfYKOv", - "/Yfvv7MEByOqlUkwXX8zkPX9dPyf5SRuPYi946VoRIEL5d2iGvPU7Z4d2EBURU642U8j+2MBXHeLOS4+", - "JrPKD1QU4tZW6I2fqC/A23Mt9XkTkxPLWbiWvZ/02GXTbWtBWBQhsqIbIiT+Yx6k/6xoweYb5DMWfN+N", - "qCU1JOQMyNaLwvldm4m3i1djD5hXxAg/lV03GzpmNNzGjBIBbS5yX5NMkBW9hngb0EHE8s9MG8apqhkq", - "NcyV3drOLhbc4n3uoRXNYyUAZlHdNLiDz+Ztev//ddhqPJVPblgWNPP1mF1ltSafwZLtnrj0Elbbw5y7", - "fM2TQCgDXxOt9Gky8gO0qXuyrlTMT1/lpwbYnfrWnaJX91rGQKVwq4DPlgDxQUs59i4cJ4azs6S4ju2u", - "xcVlfT/N7iTTH/ctYwj4f6JdabhXdCLb0uXB4/XYSuCfYBcaiXgSsFo1+EysJxLmapcjjdWDz8S6BlgF", - "3S3jmQSqrN/R+Wv3bK2z+zJuntHWazeYVcMoOcwZr1kt42WlE68gTPLLNxHCYmsCorXHNtcnYxhR9IYW", - "r29ASpb3bZw5PbbubVyBxltQXN+EAiTcyN0BmKpfgBhPXevn42bm+rfV86zvrNKU51TmcXPGSQbSSA3k", - "lm7U4aaqYHXYZayikSzUzBYSma2QtC0gxcZZm+9pSAoA0iNalAZYgtBJO2EFsoohLXoMP10Y/hKWoBVd", - "TwqxwKjfngPhkjij6dA+IAVHJbqV7oat28+j2B+wfRqss+EYkRY465Aptp/717iV+Aj9hTO99eRbDWc7", - "DNt6OtuD6ZHKF3V4hiWW7nlMRc67xExx9LwXVX2aEk97EG1i0iW6o1Xv2UX0r3BpF2IV+vBKjE0XjlR8", - "vtUrTFDfoLYEYICq4wpo5jzEuoq4jqLCImXsshvsqaez2n1/L/WAh4oU5c56c9rgoGPG2ad85fZ8BpNS", - "lJNsiG+rLcWTOyODg7QJYw99RCaEnnUHvxsVilM1cqI1qlTtW8Gzt0rWLltZmW1TGfQpmXo4etOAIebI", - "y/AIW9UaxloFVczYP869sbupRAtMglAiIaskKplv6WZ3VcOe1OoXP549e/zktyfPviKmAcnZAlSdsL9V", - "FbB2TWS8rTX6tM6IneXp9Cb4bCEWcd566cPewqa4s2a5raoz7XZqIu6jnU5cAKng3G79t4P2CsepwyL+", - "XNuVWuTRdyyFgo+/Z1IURbpgSpCrEuaX1G5FBhjzAilBKqa0YYRN+ynTtVO2WqJyEVNi39jcUIJn4LXP", - "jgqY7vHlSi2kz6cX+RnmYnA2JwLrsnC8ytqJtq3LvdOsfg+FRnS3mQEpRelEezYnKYgwZktWEPTqTm2K", - "+vTITTcwW+uwmyJE5/yeJr0z7l7CYk62c/tmnWmd5vRmExPihT+UB5Bmn3WjP8/IIZykNgz8afhHInHK", - "0bhGWO7H4BXJ98GWqPCzjtdESBoyCLRugowEeSAAPfHQjaDVKMguSrwtrY0BrRHe/NwWP17VZumdkSkI", - "ie+wA7w4lrluF4IpHDifOWv1q4CUaCnv+yihsfxd4dGe9YaLJNoipzTRGpRlS6IrFkYB8erbEGfe8yrp", - "hKNLITQxL9OiSISxWz0OnqmYcMyTQN7Q4tNzje+ZVPoM8QH52/7ArThsOUayRaU6ekLOl3QQWFGI8ieB", - "ir/B2Pr/BLOzydvRzeIM/507EFVCtLDe3vNgAQdObnFM69j1+Csyc7VsSgkZU22Hglsv0oR4W5Bs7vxr", - "Ya3bsb/3roHzq9D3OA5z7w9Efo6MbMFzwMFcH/XPzJx6OEDytKRItUMoCfyleF1cMXzHtXPPuieHpXKK", - "EjfumcqpWwt96PJwHXh5VQq66xx86zdwm7jw67UNzVU2uHzK1dU7PRuSUCxd6sR0xxxnR6l5cv+KJ58k", - "wZlFpRvDQZIkrFrk3pW9puUvGeVpaO6iEfd7qqMvLfrNaPgomFfcjheqe2KsuGfrYj4OXgyCm27PyRV/", - "RNSS+reF+/PJs69G4xHwamUWX38fjUfu6/vUSy1fJ+NK60Q6HR9RV03ggSIl3QwtkNafNyeJ3DpN0KeX", - "Z5Rms/SD7kezYfhqddEH5xz5PPIWe3265Dn/92b/2TuDWDgrlhjrxEBhH3blCPq1LyG+TfreU+ejxXcr", - "Vux0j2uUYLkbjxY2PRnWJfnNlWD7tHvuIejJFOiWfp8EYBYxibU2Jo+mitK5DSjF4rolamNgzHVWSaY3", - "Fwb/XuHOfrtOpYH6ISRmctm+gu3dSb1aXAP33mV1GqdKebn6B0ELlDutSwA30qYopuQ7WxvEXYh/fzD7", - "N/jyb0/z0y8f/9vsb6fPTjN4+uzr01P69VP6+OsvH8OTvz17egqP5199PXuSP3n6ZPb0ydOvnn2dffn0", - "8ezpV1//2wND6QZkC6iv+fN89D8nZ8VCTM7enE8uDbA1TmjJfgKzN6hbm2NqQkRqhpcrrCgrRs/9T//D", - "X5HTTKzq4f2vI1fmcLTUulTPT05ub2+ncZeTBWY/mWhRZcsTPw9msWy8VN6ch4gg6/WHO1pbm3BTQ2Y/", - "8+3tdxeX5OzN+bQmmNHz0en0dPoYMymWwGnJRs9HX+JPeHqWuO8nmD/7RLkyPCchaPRu3PlWlrZIj/m0", - "CAlAzV9LoAXyR/PHCrRkmf8kgeYb9391SxcLkFOMFbM/3Tw58a+Okw8uo8zdtm8nsR/ayYdGWp58R8/g", - "SZX0YXgpxDW60Ph30APV8gsz6A3bcJ4b9NuW6PCkzmtGiCj2Piqj5+9SulrnsV1Ws4JlRqyeegI2uxPR", - "V8i2VPMP1MyPLP9Eg3nghobDnU6+fv/h2d/uki7aXW+t2s1x69f2Gl4534P6EnOxAxipipFUYUX/rEBu", - "6iWhY9AoXsBAsTf5a9ICbF6tpavU5OCakl+c+xV+tYwrOLm7ENhSwg0TlQqdepZghkitILxb32OFXvRm", - "Rpp7cnrq2Yt7pEe0e+KORLylTYNox5lxnzQvsbNh6oVlFjNBfHSPxS/KJuUz2GSc2kAhjCBY0WtrCkYf", - "YSJdlgCHURd2gEgOIXFuW/wN8hHLC94vw5kFIpF5tcuteziADxyIFfkFs2YK5665hMLmJeJ15pK78ejp", - "noSyVaHeyE+eAP8VLQzIkPt0XhaCx58OgnNu/dvNtWev57vx6NmnxME5N7yTFgRbRnX1E4eBX3Nxy31L", - "I0tVqxWVG5SU9JA9drnp0PfBt7NHwl7s1BzvdyN7LWAJtRIkWwHHsrx3u663kw8uy9qOyzA26p246Iyo", - "w8BLdluzkxmWQh3aFFTUuH8p+EZWJx/whPb+fuIemumPqPy3UuKJfz33tLQZsNIfGyj8oNdmIduHM22i", - "8TKqs2VVnnzA/6DAF63IVp840Wt+gs6SJx8aiHCfO4ho/l53j1tg0nQPnJjPFcpD2z6ffLD/RhM1CLMW", - "qpoC0ndRo2+XkF2P0tdiqzRP1ItYeZjOCsgtc3o6oAMXOu500IF+izKMIq9/ImxOoD0FU36GPc6tTVV9", - "goXZNzUu/c8bniV/7G5zIyNvz88n/jmWEq2bLT80/mweObWsdC5uo1nQhGGtdl3IzMdKtf8+uaVMT+ZC", - "upSudK5BdjtroMWJKxvW+rWuxdH5ggVGoh/jmNzkryfUoXpUCpUg27f0NlJfnmFjKyGA0t8IfNH03U7r", - "yYxxpKD4hqr1F/Zj19DRuZewtPFG1ybjbkIyzIokBc0zqoxES+oiAc3Hwl3y2H1qaeMbmhOfTGpCatnj", - "zL2SG0v7c0giSXbzAm6gMBRDhCS7eM9nlmWenX756aa/AHnDMiCXsCqFpJIVG/ILD+GGB7Pi75G8JXU6", - "4UDy1ptc0ttmBKNM59BpVq/02ZaA6DVZUp4XLuuIqLCSr6FNdBIRkZuiucJ8MddSSATA5gyG3DpuqSm5", - "CG5t6CRW+RdUbskGra+Ypd9OQtHlzbo9DLhKzDPG8IMF8InjSJOZyDeufOFI0lu9tplEOmzPypk9PLEj", - "Baa+OkGnp5GPc/Gfaz1prHdEhUjQOL57b97KCuSN15XUarTnJycYNrkUSp/gU7+pYos/vg+Y82X0R6Vk", - "N1h1CpEmJDMv2GLi9FB1xdfRk+np6O7/BAAA//8criIHcA4BAA==", + "H4sIAAAAAAAC/+R9+3MbN5Pgv4LibpVjH4eyHTv7xVdf7SlxHto4sctSsrdr+RJwpkni0xCYD8BIZHz6", + "36/QeAxmBkMOKdlJ6n6yxcGj0Wg0Gv38MMnFuhIcuFaTFx8mFZV0DRok/kWLQoLC/xagcskqzQSfvJic", + "ckLzXNRck6qelywnV7CdTaYTZr5WVK8m0wmna5i8CINMJxL+WTMJxeSFljVMJypfwZraabUGafq+O83+", + "+3H25fsPz/92O5lO9LYyYygtGV9OppNNthSZ+3FOFcvV7NSNf7vvK62qkuXULCFjRXpRTRPCCuCaLRjI", + "oYW1x9u1vjXjbF2vJy8ehyUxrmEJcmBNVXXGC9gMLSr6TJUCPbge83HESvwY97oGM+jOVbQa5FTnq0ow", + "rhMrIfiV2M/JJUTddy1iIeSa6m77iPyQ9p5Mnzy+/ZdAik+mzz9PEyMtl0JSXmRh3K/DuOTctrs9oKH/", + "2kXA14Iv2LKWoMjNCvQKJNErIBJUJbgCIub/gFwTpsh/nL/+iQhJfgSl6BLe0PyKAM9FAcWMnC0IF5pU", + "UlyzAoopKWBB61IrogX2DPTxzxrktsGugyvGJHBDC+8m/1CCT6aTtVpWNL+avO+i6fZ2OinZmiVW9SPd", + "GIoivF7PQRKxMAvy4EjQteRDANkRY3h2kmTNuP7iWZcOm1/XdNMH70LWPKcaighALSlXNDctEMqCqaqk", + "W0Ttmm7+/njqAFeEliWpgBeML4necDW0FDP3vS2EwyaB6IsVEPOFVHQJEZ5n5GcFSEn4VYsr4IE6yHyL", + "nyoJ10zUKnQaWAdOnVhIRAdS1DzFqAh+cGge4FG2730yqLc44u3ub4ot3acu1OdsebGtgCxYae5L8o9a", + "6UDAtcJtXwFRFeSG9xbEDGOQr9iSU11LeHHJH5m/SEbONeUFlYX5ZW1/+rEuNTtnS/NTaX96JZYsP2fL", + "gR0IsKbOqcJua/uPGS99VPUmeZe8EuKqruIF5fFZMLRy9nKIMuyYw6SRZpCnQW7A/XFjXWzOXg6x1N09", + "9CZs5ACQg7irqGl4BVsJBlqaL/CfzQJJiy7k7xMrXpjeulqkUGvI37FrFKhOrfx02ggRb91n8zUXXIO9", + "CiMx4wSZ7YsPseQkRQVSMzsoraqsFDktM6WpxpH+VcJi8mLyLyeNoHdiu6uTaPJXptc5djKXsQTD+DJa", + "VQeM8cYIjyhqDRx0w4fsUV8ISW5WLF8RvWKKMG43EeUuw2lKuKZczyYHneTbmDu8c0A0W2EvSbsVHQY0", + "uBfENpyDQtp3Qu8D1ZIUEeMEMU4oL8iyFPPww2enVdUgF7+fVpVF1ZSwBQGG9zlsmNLqIWKGNocsnufs", + "5Yx8F499w8qSCF5uyRzcvQOFGdPybcfHnQBuEItraEZ8oAjutJAzs2seDUYuuw9iRKlyJUpzBe4lI9P4", + "e9c2pkDz+6jOf3nqi9E+THco0TukIjXZX5qHG/msQ1R9msIehppOu32Poygzyg5aUmcNgu+brvAXpmGt", + "9hJJBFFEaG57qJR06yWoDCWhPgX9rMAST0WXjCO0UyOQc7KmV3Y/BOLdEAKoIGlbMrPi1Q3Tq0bkCqif", + "9d4Xf21CTu05MRtOmZGNScmUNsIQbqYiKyhR4KRBsRBT0VFEM4IWdiwiwHwjaWXJ3H2xchzjhIb3l4X1", + "jjf5yEs2CXOstmjwjlAdzcz3MtwkJFbh0Ibhq1LkV99TtbqHwz/3Y/WPBU5DVkALkGRF1Spxpjq03Yw2", + "hr5NQ6RZMo+mmoUlvhJLdQ9LLMUhXK2qvqZlaabuc7POanHgUQe5LIlpTGDNtHkAM44nYMmugVvWMyPf", + "0HxlhAmS07KcNnoJUWUlXENJhCSMc5BToldUN4cfR/YPJTxHCgwf1ECi1TidxoxcrEDCQkh8qEoga4qX", + "09o8j6qy3ScwV0XX0JGd8LIUtTYwRi+Xs5d+dXANHHlSGBrBD2vEB388+MzM7T7hzFzYxVEJqGhhPC/r", + "osFf4BctoE3r5qrlzRRCFqjoodr8xiTJhbRD2MvfTW7+A1Q2nS11flZJyNwQkl6DVLQ0q+ss6mEg3/s6", + "nXtOZkE1jU6mo8L0i85yDuyHQiHIhHbjNf6HlsR8NgKOoaSGehjKKSjThP3AO9ugys5kGhi+pQVZW70Z", + "qWh+dRCUXzeTp9nMqJP3jVXVuS10iwg7dLFhhbqvbcLBhvaqfUKszsezo56YspPpRHONQcCFqIhlHx0Q", + "LKfA0SxCxOber7WvxCYF01di07vSxAbuZSfMOKOZ/Vdi89JBJuR+zOPYY5BuFsjpGhTebi0ziJmlUVWf", + "zoU8TpromSYaBTyhZtRImJp2kIRN6ypzZzOhHrcNOgORoF7aLQR0h09hrIWFc00/AhaUGfU+sNAe6L6x", + "INYVK+EeSH+VFOLmVMHnT8n596fPnzz99enzLwxJVlIsJV2T+VaDIp85PR9RelvCw+TDCaWL9OhfPPMG", + "kfa4qXGUqGUOa1r1h7KGFvswts2IadfHWhvNuOoA4CiOCOZqs2gnb22/2+nkJczr5TlobR7Bb6RY3Ds3", + "7M2Qgg4bvamkESxU2yjlpKWTwjQ5gY2W9KTClsALa3oz62DKvAHX83shqqGNL5pZCuIwWsDeQ3HoNjXT", + "bOOtkltZ34fmA6QUMnkFV1JokYsyM3IeEwndxRvXgrgWfruq7u8WWnJDFTFzowGs5sWAikJv+Pj7yw59", + "seENbnbeYHa9idW5ecfsSxv5zSukApnpDSdInS3NyUKKNaGkwI4oa3wH2spfbA3nmq6r14vF/ehIBQ6U", + "UPGwNSgzE7EtjPSjIBe8UHu1Od4a2EGmm2oMzrrY8rYsPQyVQ9P5lueoRrqPszys/XKmPqK2PI9UYQbG", + "Eopli1Y/qsprCFMWigcqAanB1Cv8jBaBl1Bq+q2QF424+50UdXXv7Lw759jlULcYZ3MoTF+vUWZ8WUJL", + "Ul8a2GepNf4hC/o6KB3sGhB6JNZXbLnS0fvyjRQf4Q5NzpICFD9Y5VJp+vRVTD+JwjAfXat7ED2bwRqO", + "aOg25oN0LmpNKOGiANz8WqWF0gGvHXNQ81pK4DqWc1GfwRSZg6GunNZmtXVFtEjdL03HjOb2hGaIGjXg", + "5hBcNWwrO92KXgOhpQRabMkcgBMxN4tuvBxwkVSRysjOTqxzIvFYftsCtpIiB6WgyJw+ey+8vp29f/QO", + "5OFqcBVhFqIEWVD5cVZwdb0X+CvYZte0rI14/sMv6uGfZRFaaFru2QJsk9qIrvquv5Q7wLSLiLsQxaRs", + "tYX2JBgR2zCdEjQMIfvu2Bvc/i6YPSL4SAi8BokeNR/1aPlJPgJRBvg/8sH6KEuoq8yIgYPqByO5mv3m", + "lAsvG+6ZIUxQUqWzfVeKadTSm5ilRlw8dYvgwAPy5CuqNIqBhPEC9bf2KsR5rGxpppgc6FSGUw6+xsyk", + "v/iHWH/a3FzvXNUqvMpUXVVCaihSy0Ob9eBcP8EmzCUW0djh6acFqRXsG3kIgdH4Do9OEYB/UB0s1M7m", + "3V8ceh0Y8WV7KJZb8DU42gXjuW8VIT52qh2AkalmDyy5MdWht7kQJVBUmSotqspwKJ3VPPQbwuC5bX2q", + "f27a9knSmoGspFIIUGhicu0d5DcW6QptXSuqiIPD+yegwsu6yPVhNsc6U4znkO06L/gINq3ig3PUca+r", + "paQFZAWUdJvwtrCfif18IGH4sZFAGv2B0JDN0ZqYppHmTHh/0+NmFTiVSgneBL+Q3Jxz84xqSM31Pn7S", + "AnDaFN90xPogzIJgJOnAj4fIsvSUGBHv/muhDVk5osPVuFvpjmsZwF6Y9aMgEMfNGkVAd/b/AuXmDgLY", + "vc6/BTW08Gbq+1r2gPof7/bWhdm5yjq3TfKKGOTLexjjEA8asEW8oVKznFX4XP0Btvf+eu9OkPSVIAVo", + "ykooSPTBvuSruD+xbsjdMY97zY9St/bB7+lbE8vxnllt4K9gi2qTNzaiIdJW3Yc6IjGquXApJwio95o3", + "L564CWxorsutEWz1CrbkBiQQVc+t10rfhKZFlcUDpGOmhmd0BvmkOXynh8A5DhUtL+V5aF9bu+G76Dy5", + "Wuhwr6xKiDKh/+ye+B4ykhCMchcilTC7zmhZbokOYTOeklpAugsCvTGCPPNAtdCMKyD/JWqSU44v3FpD", + "ENKERMkHhWUzgxE3w5zOVbXBEJSwBvuaxy+PHnUX/uiR23OmyAJurMsNx4ZddDx6hKq4N0Lp1uG6B223", + "OW5niUsHbZXmknWvti5P2e/k5kYes5NvOoMHA6c5U0o5wjXLvzMD6JzMzZi1xzQyzsEPxx1lvmu7hPXW", + "jft+ztZ1SfV9GCrhmpaZuAYpWQF7ObmbmAn+zTUtX4dut9MJbCA3NJpDlmOU4Mix4ML0sYGFZhzGmTnA", + "NnBkLEBwZnud2057XtqN3zJbr6FgVEO5JZWEHGyUnJFSVVjqjNiQiXxF+RJfQFLUS+fqbMdBhl8rqwmT", + "Ne8Ncagopjc8QxOGSoapodnSR1saIQyoedl27R/2sXZDAyj2Mhp1aUfb07UHJU2m08ngw9/g+7p5+Fu8", + "tUNGjzUmtuTDCGkNNCOtZ4hPIyv1kRhvozl8hhg+jpWmGToFZX/iyCm8+TjkF35eV1W5vQchyQ5EJFQS", + "FF5psRpQ2a9iQX5kuRSn5VKEO09tlYZ133hju/46cFzfHvMCFrxkHLK14JB40r/Grz/ix9FqR3sND4yI", + "AtFBA3YfPi0kdBbQnnwMSd91k5Bkume/a+lU3wp5X1Z2O+DoN8UIy/Vetw435bH2dVqWCZO0VT/0uIia", + "BqdwJglVSuQMBcWzQk2d97m1Ylu39g7634TQqHs4wN1xO7bXKAzLKvKhrAgleclQzS+40rLO9SWnqOmL", + "lppwFvTKgWG18Ne+SVoPnVATu6EuOUVH0aD/SzoGLSChh/oWwGuHVb1cgtKdB9YC4JK7VoyTmjONc63N", + "ccnsealAosfezLZc0y1ZGJrQgvwOUpB5rdtPjnWtNFGalaUzBJtpiFhccqpJCVRp8iPjFxsczvuR+CPL", + "Qd8IeRWwMBvPuJbAQTGVpT0dv7NfMajE4WTlAkww1sJ+9h7PTW6IiVl7K2nF//ns31+8O83+m2a/P86+", + "/B8n7z88u334qPfj09u///3/tn/6/PbvD//9X1Pb52FPBYM7yM9eujf62Ut8iEVxIl3Y/wwGmTXjWZIo", + "Y4eiDi2SzzBfhiO4h229n17BJdcbbgjvmpasMLzo3sine031DrQ9Yh0qa21cR43nEXDgc+gOrIokOFWH", + "v34Uea47wU6Hm3jLOzEGjjOqewfQDZyCqztnyq32wXffXJATRwjqARKLGzpKLZB4wbgIxpaXj9mlOLDr", + "kl/yl7DA96DgLy55QTU9safppFYgv6Il5TnMloK88EGRL6mml7x3DQ0mkIqCmqMMUilOQdfptVxevqPl", + "Ulxevu/5IfRlKzdVzEXdOeuryfyUmZEbRK0zl8Qlk3BDZcoW4lN8uGho7L0TDiuTiNoqsXySGDf+bCyU", + "VaW6yR76KKqq0qAoIlXl8hWYbSVKixA4Zpi5i701NPCTcE4lkt74J2+tQJHf1rR6x7h+T7LL+vHjzzEE", + "r0lx8JvjgYZutxWMfvgOJqPovndx4VYuR6fyrKLLlM3k8vKdBlohhaDAscaXZlkS7NYKD/SRADhUs4AQ", + "i3zAlljIDo7rxeWe214+rVd6UfgJN7UdO32nHYyi4o/ewD2R9bTWq8xwhOSqlDkGfq98ggG6NFeO9yBQ", + "bIkPALUStVkykHwF+ZXLbAXrSm+nre7e0cXdxZ7hMIU6IxccuGAGfznlZsC6KqgTZCjfdlPcKBsMgYO+", + "hSvYXgjbfTYyO1iUjS5KsaKGji7SbnTXGvKND7Ibo7v5zu/Kx4i6dCQYd+nJ4kWgC99n+GhbAeAejnWK", + "KFp5PoYQQWUCEZb4B1BwxELNeHci/dTyGM+Ba3YNGZRsyeZlgk3/Z9+u4WE1VCkhB3bto3rDgIqwBTGv", + "o7m9jt2LSVK+BHOpm4tYKFqi0/4saehH6XAFVOo5UL1TX8vjNBMeOhTIbzBoGpUmU7ME2Jj9ZhqVIBxu", + "zAMP3962jXMknh3lTmXXBMWRoPruTZD07JhHhEN4Ip+dv+/DnoT3gvNPi6kTQbbf1waHSyluzG4aAIVP", + "3YgJXqJ7qlZ0CWOvo5apaGRKjJYFCAfZJ/0k5R2x6Io1PRlj5CJs98zgJckdwHwx7AHNAB0XRz+3NSE6", + "q8JrXm49UuclCtTBQdSSDpUtOxtfHgZsmo2B5I2w6gFrYy0++iuq/NEvphFHP1Ja/GNSyezKn3cWed9R", + "3c+O56/pLmufWn3OHIjgpofPoudT5/l8eZPpQbnvphMX4pDaO8FRii6ghKXFiW3s6azJz9TspoHj9WKB", + "TC9LOfJFyshIMnFzgHmIPSLEaszJ6BFSpyACGy3rODD5ScSHnS8PAZK7/FLUj413V/Q3pIMFrTe+kZJF", + "ZW59NmC1yj1LcektGpGn4+KMwxDGp8Rw0mtaGk7qAk+bQXq52vDt08nM5nw7Hg69iUYeNLdGlE4OWqWV", + "Z45ZXyx4+2WkXwUHrWEuNpmNjE4+reabuTkTyXgFjNNOHV6bOe+BInOxQZ8ivOGsg/vB0A1D5gGL3EA2", + "TCGVY78hsdGCdxgguwX5FDUrJD2nVwtkNyTJHgfMgDg9RHafRSn07gmkjgKzSQPuNDp79SxtaasviTTX", + "7TRkhw1hailWM3Q4kzs5gNG+8rSd6+77Jt3hcHI0f1Y/SZK/vlLuLnkZbefK5lo8JC1jlxxaQOzA6puu", + "EJtEa9txqY3XCGsplmQYfd/Y1UebghJQE5C15OrsKmWWvrx8pwBlhnPfLdJz4u5Rvn0YecNJWDKloTEu", + "eCeXT2/7QXWieWyJxfDqdCUXZn1vhQiChjXHYsfWMj/5CtB1fcGk0hlaZpJLMI2+VahJ+9Y0TQvCbX87", + "pqyp52A5GCG6gm1WsLJOk7ID6YeXBqKfws2l6jlelIxbb6M5psJPOugeYJtEeKxj904EvbIIekU/BX7G", + "HSzT1MAkDeW1p/+LHLEOL9zFWRK0nCKm/oYOonQHr41i6fuMNhKiI7eL2S6bT+9cFn7svd5YPqJ/SIiw", + "IyXXEmVETAcQiuUSCp/pzQWF2qxXLp9eKfiyySVoft+RPnBGbBY/TMK3I3+fc0+HIef0VjkRrIqRhD5+", + "zCDkTXQd5h7ESZbAbeaWyeH1Rsok4mLHeGwRaUY/LW/vuc0nXYcvOu7CjU+v3cOw2bg9JdDCPasU+PXt", + "PrT97XKomw45HbdSxO4+YDggUhzTKhJgekQzwLlpVbFi0zH82VFnR5DESHGvnwm+gzNkS26wPfhpOxbv", + "qdXzwNyO2N4ZO07wmX9iHpnWn9l55JqzQXOXbaCoJVqTWt7C/Xz64aE5cu0//HKuhaRLcBbBzIJ0pyFw", + "OYegIUpJr4hm1kG6YIsFxJYwdYwVpwVcz95RjCDsARLsm8vC23InffaJbA9tNSvYj9A0PSUoZcjn4qJv", + "j/QPj0i3Fi6baOOOMComEwr8ANvsF1rW5iXEpGp8U52BsH2tH0AT1+sfYIsj73X5NIDt2RVUxb0FpNCU", + "dSV8UlGW8AeqVX0B38CtLTxgp07Tu3RPW+NKaQwfjeaGatWTaC/l4x2bxkXGQDpmr87TXifmbEF7W7qE", + "vm+LWLFf9omeIPFUDL03jrnkQqaNvd5lQEtP+LjYye10cjd/j9Q96UbcsxNvwtWc3AX0xrT2/5bT14Eb", + "QqtKimtaZs5PZkjokOLaCR3Y3LvVfOL3VfpUXHxz+uqNA/92OslLoDILqo7BVWG76i+zKluCY/c1ZNOx", + "O92uVYVFmx9SZseeNDeYer2jTevVumn8pqKD6jxrFmlP8b1807l42SXucPWCKnh6NRZp6+jVdu6i15SV", + "3vDroR2rZbfLHVddKckn4gHu7CQWef/deazBOIHLy3fXHrONPcU6SoWU+AlfOnWkp3OP16TPakPrezgk", + "rvM1ZjJNv7u4y3OKjNE5nNF7lwO/FbJ1UbmoxqTD2scTEM1jwuIxbZS/cFb4nlg4I1aE/G35m+ENjx7F", + "B//Royn5rXQfIgDx97n7Hd9Rjx4lDcNJVZ9hWajJ43QND0NcxOBGfFo1BIebceLC6fU6yMhimAwDhVrP", + "M4/uG4e9G8kcPgv3SwElmJ9mY1QV8aZbdMfAjDlB50NRicH5eW3LeSoieDcGH6NkDWnh1eMqeFg7e/8I", + "8XqNdudMlSxPO/3wuTIsiVuXXtOYYOPRNmQzR80G/Mp5zaLRTTN1lMmzs5Bo1iTCVTITcIPfuXAsoObs", + "nzVEZX3xJu5czv4phKP2BOy0ftEN3K0aPDmm4O/dTYReq7ZLYbTT5PoymAE9IlJ1pg6Md4hn7DH/HbEK", + "jqL89YmBbSvnOryXsna+83YXgXZmYM8+ncV1+IHkymHazXw5ZqeZyhZS/A5p2QGNhInUHd66zVAB/zvw", + "lI9ql5EFz4GmYHUz+z4CGa9bGCKVO+sS/KJD1bxjrvA0nzhsow9UGkT7Paw2UOn04m4Thh6qseNJO5Bm", + "gJnhgY3cwrGWj3d3o9yeUJvXohV5lj7ncaDoiR2/OecO5l5wbUlv5jRV6Mi8Fw1M0fa3HPO0IL6z3yAV", + "UjPY2UkUyxDaMpvsrwLZWI/6qZKPfPvZaUe/+ppHHlJc/LybWl+VUonEMDW/oRz9CLGf5YCutwLrh2F6", + "3QiJCT5V2oewgJytk8rwy8t3Rd73/CrYktmS4rUCQhfa5Xl0A9mi8paKXDXvkIvEoeZsQR5PmzPrd6Ng", + "10yxeQnY4oltMacKL+jgExG6mOUB1yuFzZ+OaL6qeSGh0CtlEasECe9zFD2DJ+wc9A0AJ4+x3ZMvyWfo", + "MKzYNTxMXzBOWJu8ePLldFflbMQ4FonfxeQL5PI+kCFN2ehVbccwbNWNmo5MWEiA32H4PtlxvmzXMacL", + "W7oraP/pWlNODUJSMK33wGT74v6iK0cHL9xaZ0BpKbaE6fT8oKnhWAPR5IYhWjBILtZrptfOU1SJtaGw", + "pgy5ndQPh/X1fBk0D5f/iC7YVeKN/wc8t+h6IMIRvep/Qnt7jNYpoTZja8ma+AtfoZac+czUWBculIOz", + "uDFzmaWjvIrhGAtSScY1ao1qvcj+Zp7vkuaGIc6GwM3mXzxL1FdrlyDihwH+yfEuQYG8TqNeDpC9l3Jc", + "X/IZFzxbG45SPGxSOkSnctBXPO3fO+R2PDD0naVrM242SIB1iwBpxM3vRIp8x4B3JM6wnoMo9OCVfXJa", + "rWWaYGhtdujnt6+cJLIWMlXpomEATiqRoCWDa4wvTW+SGfOOeyHLUbtwF+j/WO82L5ZGops/3cnHQmRV", + "TrzTQlolI+n/8mOTHx+N2zZut6O9FDKhp3Uax0/slnqYvrBrQ7fugPhtAHOj0Yaj9LEyEO5h4zlCnz/C", + "36sLkt3zlqr0yW9Emnc8yvqPHiHQjx5Nnaj829P2Z8veHz0a7zKb1heaXxOoOe6u6WavNH1TW/2VSGjv", + "fBXP4DfmUpUkNKzJu8xcqXM3xpS0SyV+ernjfuIVD3ZDTh8gjxr83MXNH8xfcTObCJhh/tCuHpsknyJ8", + "j2IoKPlKbMYSUefa8vT0J0DRAEpGagVxJb3quElPib1uPhHZmlHnUArzUo0LYI32WvkL7YJBzXTHXtSs", + "LH5prNCdm0lSnq+STuVz0/FX+wyIGkQajHxFOYcy2du+ln/1r+rEu/8fYmDYNePpT91CzBb2DqQNWG0g", + "/JR+fIMrpkszQYyidkKukOKkXIqC4DxN5ZKGNfYrmqcqySZi/HHYda2dVzImT3AFRRasRDfatD0cW2aS", + "6gGuimX/fYkrMw5W4VdWLWFHB0koW+O1rei6KgEP4TVIusSugkOnO2Zsw5GjsiREVeYTtsTkL4LoWnIi", + "FotoGcA1k1Bup6SiStlBHptlwQbnnrx48vjx43FGRsTXiLVbvPqFv24W9+QEm9gvrvKXLZhwEPjHQH/b", + "UN0hm98nLld+9Z81KJ1isfjBBmSjhdjc67b0aigTPCPfYX4yQ+itEgGoFPUZlts5QeuqFLSYYlLoi29O", + "XxE7q+0jAVGHpV+XqAFsH5GkkWd8jlSff20gd9X4cXanzjGrVjoLRVlTmRRNi6aWLOt4P6FuMMbOjLy0", + "atng2GMnIZhaXK6hiGrAWjUAEof5j9Y0X6G+czbZqVIeqAY0voSx54CNuSiKew0Fs5CDm2W4Ksa2iPGU", + "CL0CecMUYN4JuIZ2wsaQ7dQp5H0Cx/ZqZc25JZzZAdJrKI916C544Kzo6/0rkpB19uHOtr8mkwcWOT+0", + "2PM59krH7XQqR3f8HmzJjI0vujEjPzpjR0654CzHYhMpERxTMY4zq46oy5G2d6qJO8uJY5isVx0C1B0W", + "BytYe5bpENd3aoi+mv22hGP/1LBxRQCXoJXjgVBMffl4Z6BjXIErgGboK+aoQiZcv5JhMcGF5B5d0qcT", + "zKY2oGv91nz7yenmMWfMFeOoc3NIdS9Ba2ArFUM7OydMk6UA5VbbjgtT70yf2cWGIwjvZ6/EkuXnbIlj", + "WFdEgxTrBdwf6tT7BDsfXNP2a9PW1S4IP7dc6uykft3vkyxEhf1P1VwfRH/K98s70kTIDePHo+0gxp2u", + "/ngvGzKEa/T8gwrv8x7ZhPL17VG+MU9WS2/YgtjI3WTaYMYTYLxi3Bt803mw8uRdghuDp3mgn8ol1fbR", + "MYrjXQAtB8JhMKjeegzcdahuJQaDElyjn2N4G5vK+wNsJTRoXheUb4k/FIa6I6Hka1oGZ/hEHX2Uzpww", + "Zp2FO5X1U2zFsPXMh+a20LU3EDR0x2ooh95TQ9lG53WxBJ3RokjlnfsKvxL86gMKYQN5HYqAhTjTdrr2", + "PrW5iXLBVb3eMZdvcMfpCqaoUrCelwnX25fhIxRhhzER1XyL/6YqYA3vjHN6Pzj623u4F4fVKOhHs6ek", + "Z0PTmWLLbDwm8E65OzqaqY8j9Kb/vVK6D/z+U8R1d7hcvEcp/vaNuTjiNN09H397tYQs2uhPL/C7zwcW", + "Mrm2uRJeZb06b+iRgZuX2LIO8L5hEvBrWg5kXIitNvZ+tZaMobwL+WBaEapd9jpNScMTxqgwhvN/WQ/s", + "jmWob94c8rG2LtYf03ji8LET6cOWxh9adkXr9dYwlEF74nEmv4YIDrX5uVIMfX0pLUuRj+YMbphT02k4", + "Va9Yr13m+4RX3vVaFPFZiL25ANKMzTosJ0Ir8GGb/IZPq+QXeZMeraUfCUQzNmsZotEtYWoDMz14Hhg7", + "dTxRpLJ1mCXfshKLQ/3H+eufJsMbGe1Af0td6uykCntoY0KkWpc8lqKFjx08QPAyrf9WAyp1zA2VPg2u", + "OnHyw7dWQTgGJJsn6ZDWr8YO3iOApbBVoVJ1M/rZaSbNdnjkR9TQbK/lKDF1pKiiW20p8faxSs+mCQmF", + "SEcVJm3JSGOKO6XqCLmXgtfA2ovG5aOzxZV6dZl6DPTlGOGwh4/b6eSsOEh8StWimthRUgz2FVuu9Fel", + "yK++B1qAtPVEUs9JW01kDeYZqlaswvdPJRRr6gGXZjCXyHuFw83GhuZcrMBlhfFJAnpjeQfqa8g11odu", + "3EAlwHg/hyq9RAOBNyhikz/AFUQCFFDp1U5hyTp3V3rVlA0FF3nGFJmDM11cA58SNoNZN1itaJJCkRLo", + "withpRB6RF3dELaEaIyBTtFXr0bzbjGwl/MtSmloS+nOxhdhOQ0xATbQ8oaqJnNUJ43C6HDtxQJyTHi/", + "M/3ef66AR/nYpl51h7Asomx8LIQLYsmGe9VoN7DuSoS3E9SoJtXHhHQoIcYVbB8o0qKhZEXgEGF7TAZ4", + "RI614/qiAkOmDecYyVSgJ0SQ94N3CfibGkvHFAGIslMeCYancXM9NRkrj4PGSzRHgGG6zu5UtL9Jh4eC", + "6VB2v3519eGX8kssZq+cUykN6eZjfRI565djvnHp6jHRYrAW+sT1oPxvPkGrnaVkV65CDSLM2mZvqCx8", + "i3tJk2fvTZYGehFmZk1gVN/L51C/HBuhmJfCCEDZUGBoO1IpuPA+UNbXuklahlAvQEoogk2wFAoyLXyY", + "1QHJP1345A7sWS/zo/DW8eg/IGTYrmiwhsLbppAEloOkWDOBOufzGCtEwpoa6GVU3CGtBt23Q1/b7z6n", + "iC/vt1u9OoT3cC72V8j2oXdM9TAfn64FccLBwdyrlYjkCM0s4xxk5o243dIOvJ0mE/MqF3VuRZX4bAbt", + "9ei0Yzu4WVKpmfdX2XlCRVk5rmB7YtU+vuq43/EYaCtDWtCjhNIdorhXXbVKwb28F/D+2PSdlRBlNmAZ", + "POvXo+gehiuWXwEmZg2RKUYKftA+NmYS8hkapILPyM1q66stVBVwKB7OCDnlNjrQu4+0K5B2JucP9K75", + "NzhrUdsKM04DPbvk6TArrPQi78j9/DA7eN4Qb1Jg+OUd57eDHDG73vAhH7kbLAnTrhM8G6ve6Pt3dESo", + "iPwsFCkB6twagr9GlpB4RxHMzhKlEUL/AEqcAZmoUqS88I/JIGOGSmMqngwB0sBHPFcbKNzgSQQ4J7s9", + "WVndZ593VCyIhMY349gErC6nqWXiakg10p05zNLmjAshIZ4R/UxtouYQ2YZ5jvE/c6Ylldtj0qS2UZVS", + "Qw1iea+3ZHCUbBbSOEv2cViW4iZDtpaF6kopdYBpp9rXtq9T2vQzR30OkdslVU5E3JIVLUgupIQ87pEO", + "8bZQrYWErBTohZly7Fho80hYY1wnJ6VYElHlogBbCC1NQUNz1ZxTlL0gcmVLosDSDqYMsH0iOh45pbl9", + "rXk2Q3ltb6ENv/kXpo9NX9Gkv7OLzqyLwEB8ASiX7s5hyDbuw4uEYzMydZWyaRF5wTZINyBTR35BtKxh", + "SlyLbhV+d/CpBLJmSllQAi3dsLLE7BFsEzk0BH+gNGoHZOcz9IO+Zujw1s4kYkXqytyOIf1KzAPO44xs", + "RK+kqJerqD5AgNM/3WXtHvbxKD+rGn0SMUTUTPGMrIXS7llsR2qW3LiAfpYLrqUoy7Yiz8r5S2f0/ZFu", + "TvNcvxLiak7zq4f4COdCh5UWU59Soeu728wkOzkYx70U9IZnSB5qf5p12w69Wh09j+adHe7XMzzs0+RH", + "YL7fz1z32zVO+wvrrqvNZ9NvoVNOqBZrlqeP21/L+3XQZzXFvZKZFm0VYpuFBpshH4jvseDOhNyzj2bg", + "NFlG9ZQ4HuHcOpATmf+iGN8dlyzA8aCBO7TPd5yAleWDYmAHAITUJkLQtbSli2MhLTAcsbSJU9AppQvo", + "yAsHff/uBpsZ4d6B0nAnoHreyAHAz6wGY2ozYlrP5rnY+O8Pm5SZRwF/u5vKW8xjyKnyvCEtad0qfSKr", + "AY6QLkCw0wPxApNgzMf6IYZS9CMv/wiAYc/EFgyj/BMPBWNBWQlFlqpSfBZ0YNPoue5iLKPRfT1Hy8lz", + "WvtKwGbsWoJLrGSlf9k2J1bUkJIIzfsacV7ABmyM1u8gha3jO43MWVDaMr8djYKoshKuoeWw6bI91SiF", + "smvwfVXoTAqACi2+XUVbyhMxrhLY0b64tWeRL9sY7CbVMRaxdqfIHl1LUjO04Zk9JmrsUTIQXbOipi38", + "qUNFjrYu0RzlBKp6z4fMPzHHTvOzHeGtH+DU90+JMh4T78fxoYNZUBp1uxjQXs/kWg2dep52TI5TmQVD", + "Ec5WBLu2JfGGb6iK3vBhrWaf5JuX2Mh9YoJHiP1mAzlKNe4pBIV7DA1YTlwOJKR2DlDYB4PpktDmr4AT", + "LqKaxzdUhVdMk9XV/2AnxkaMu4f2ETb6xn/47jtLcDCiOskW0yVKA1nfTcf/h5zEnQdxcLwUjShwobw7", + "VGOeut2zAxuIuiwIN/tpZH+sEexuMcfFp2Re+4HKUtzYIsbxE/UleHuupT5vYnJiOQvXsveTnrqEw10t", + "CIsiRNZ0S4TEf8yD9J81Ldlii3zGgu+7EbWihoScAdl6UTi/azPxbvFq6gHzihjhp7LrZmPHjIbbmlEi", + "oM1F7su2CbKmVxBvAzqIWP6Za8M4VT1HpYa5sjvb2ceCW7xPz7SmRawEwESz2xZ38AnPTe//2YStxlP5", + "/I9VSXNfstoVn2vzGaxq74lLr2C9O8y5z9c8CYRK+Q3RSp8mozhCm3og60rF/AwVx2qB3SsB3qsLdqdl", + "jFQKd2oc7QgQH7WU+96F+4nh7C0pLvW7b3Fx5eNPszvJDNFDyxgD/p9oV1ruFb3ItnQF9Xg9tlj6J9iF", + "ViKeBKxWDT4Xm0zCQu1zpLF68LnYNACroLtlPJdAlfU7Onvtnq1NAmTGzTPaeu0Gs2oYpYAF4w2rZbyq", + "deIVhHmQ+TZCWGxNQLQO2OaGZAwjil7T8vU1SMmKoY0zp8eWBo6L9HgLiuubUICEG7k/AFPNCxDjqRv9", + "fNzMXP+2wKD1nVWa8oLKIm7OOMlBGqmB3NCtOt5UFawO+4xVNJKF2tlCIrMVkrYFpNw6a/MdDUkBQHqP", + "FqURliB00k5YgaxiSIsBw08fhr+EJWhNN1kplhj1O3AgXJ5rNB3aB6TgqES30t24dft5FPsddk+DpUgc", + "I9ICZx0zxe5z/xq3Eh+hP3Omd558q+HshmFbT2d7MD1S+bIJz7DE0j+Pqch5l5gpjp73oqpPU+JpD6JN", + "TLpE97TqA7uI/hUu7UKsQh9frLLtwpGKz7d6hQz1DWpHAAaoJq6A5s5DrK+I6ykqLFKmLrvBgXo6q933", + "99IAeKhIUe6st6cNDjpmnEMqfO7OZ5BVosryMb6ttlpR4YwMDtI2jAP0EZkQBtYd/G5UqN/VyonWKuR1", + "aJHTwUJi+2xlVb5LZTCkZBrg6G0DhlggL8MjbFVrGGsVVDFT/zj3xu62Ei0wCUKJhLyWqGS+odv9hR8H", + "ss+ff3/6/MnTX58+/4KYBqRgS1BNTYNO4cTGNZHxrtbo0zoj9pan05vgs4VYxHnrpQ97C5vizprltqpJ", + "RtwrG3mIdjpxAaSCc/sl8o7aKxynCYv4c21XapH3vmMpFHz8PZOiLNM1ZYJclTC/pHYrMsCYF0gFUjGl", + "DSNs20+Zbpyy1QqVi5g1/NrmhhI8B699dlTA9IAvV2ohQz69yM8wF4OzORHYVKXjVdZOtGtd7p1m9Xso", + "NKK7zRxIJSon2rMFSUGEMVuyhqBXd2pT1KdHbrqB2VqH3RQhOuf3NOmdcvcSFguym9u3S3HrNKc3m5gQ", + "L/yhPII0h6wbw3lGjuEkjWHgT8M/EolT7o1rhOV+DF6RfB/siAo/7XlNhKQho0DrJ8hIkAcCMBAP3Qpa", + "jYLsotzk0toY0Brhzc9d8ePHxiy9NzIFIfEd9oAXxzI37UIwhQPnD07s/WNASrSU90OU0Fr+vvBoz3rD", + "RRJtkVOaaA3KsiXRFwujgHj1dYgzH3iV9MLRpRCamJdpWSbC2K0eB89UTDjmSSCvafnpuca3TCp9iviA", + "4u1w4FYcthwj2aJS3XtCzld0FFhRiPIngYq/wdj6/wSzs8nb0c3iDP+9OxBVQrS03t6LYAEHTm5wTOvY", + "9eQLMnflfioJOVNdh4IbL9KEeFuQbOH8a2Gju7G/dy4T9IvQdzgOC+8PRH6KjGzBc8DB3Bz1P5g5DXCA", + "5GlJkWqPUBL4S/G6uKj6nmvnjqVhjkvlFCVuPDCVU79c/Njl4Trw8qoV9Nc5+tZv4TZx4TdrG5urbHSF", + "mcvLd3o+JqFYuhqM6Y45zu6lLMzdi8J8kgRnFpVuDAdJkrAakXtf9pqOv2SUp6G9i0bcHyggv7LoN6Ph", + "o2BRczteKICKseKerYvFNHgxCG66vSCX/BFRK+rfFu7Pp8+/mEwnwOu1WXzzfTKduK/vUy+1YpOMK20S", + "6fR8RF01gQeKVHQ7tobccN6cJHKbNEGfXp5Rms3TD7rvzYbhq9VFH5xx5PPIW+z16ZLn/P+b/efgDGLh", + "rFhibBIDhX3YlyPol6GE+Dbp+0Cdjw7frVm51z2uVYLldjpZ2vRkWJfkV1el7tPuuYdgIFOgW/pdEoBZ", + "xCTW2po8mipK5zaiFIvrlqiNgTHXeS2Z3p4b/HuFO/v1KpUG6ruQmMll+wq2dyf1anEF3HuXNWmcauXl", + "6u8ELVHutC4B3EibopyRb2xtEHch/v3B/N/g8789Kx5//uTf5n97/PxxDs+ef/n4Mf3yGX3y5edP4Onf", + "nj97DE8WX3w5f1o8ffZ0/uzpsy+ef5l//uzJ/NkXX/7bA0PpBmQLqK/582Lyv7PTcimy0zdn2YUBtsEJ", + "rdgPYPYGdWsLTE2ISM3xcoU1ZeXkhf/pf/krcpaLdTO8/3XiKkFOVlpX6sXJyc3NzSzucrLE7CeZFnW+", + "OvHzYBbL1kvlzVmICLJef7ijjbUJNzVk9jPf3n5zfkFO35zNGoKZvJg8nj2ePcFMihVwWrHJi8nn+BOe", + "nhXu+wnmzz5RrgzPSQgavZ32vlWVLdJjPi1DAlDz1wpoifzR/LEGLVnuP0mgxdb9X93Q5RLkDGPF7E/X", + "T0/8q+Pkg8soc7vr20nsh3byoZWWp9jTM3hSJX0YXglxhS40/h30QHX8wgx6wzacFQb9tiU6PKmzhhEi", + "ir2PyuTFu5Su1nlsV/W8ZLkRq2eegM3uRPQVsi01/AM18xPLP9FgHrih4XCPsy/ff3j+t9uki3bfW6tx", + "c9z5tbuGH53vQXOJudgBjFTFSKqwon/WILfNktAxaBIvYKTYm/w1aQE2r9bKVWpycM3Iz879Cr9axhWc", + "3F0IbCXhmolahU4DSzBDpFYQ3q3vsYgxejMjzT19/NizF/dIj2j3xB2JeEvbBtGeM+MhaV5iZ8PUC8ss", + "JkN89I/Fz8om5TPYZJzaQCGMIFjTK2sKRh9hIl2WAIdRF3aASA4hcW5b/A3yESsw3i3DmQUikXm1z60H", + "OIAPHIgV+SWzZgrnrrmC0uYl4k3mktvp5NmBhLJTod7KT54A/0daGpCh8Om8LARPPh0EZ9z6t5trz17P", + "t9PJ80+JgzNueCctCba0FzJGtCcOA7/i4ob7lkaWqtdrKrcoKekxe+xy06Hvg29nj4S92Kk53u8m9lrA", + "EmoVSLYGjpWLb/ddbycfXJa1PZdhbNQ7cdEZUYeRl+yuZidzrBY7timoqPHwUvCNrE4+4Akd/P3EPTTT", + "H1H5b6XEE/96HmhpM2ClP7ZQ+EFvzEJ2D2faROPlVOerujr5gP9BgS9aka0+caI3/ASdJU8+tBDhPvcQ", + "0f696R63wKTpHjixWCiUh3Z9Pvlg/40mahFmI1S1BaRvokZfryC/mqSvxU5pnqgXsfIwnZdQWOb0bEQH", + "LnTc6agD/RZlGEVe/0DYgkB3Cqb8DAecW5uq+gRr128bXPqftzxP/tjf5lZG3oGfT/xzLCVat1t+aP3Z", + "PnJqVetC3ESzoAnDWu36kJmPter+fXJDmc4WQrqUrnShQfY7a6DliSsb1vm1qcXR+4IFRqIf45jc5K8n", + "1KF6UgmVINu39CZSX55iYyshgNJfCXzRDN1Om2zOOFJQfEM1+gv7sW/o6N1LWP15qxuTcT8hGWZFkoIW", + "OVVGoiVNkYD2Y+E2eew+tbTxFS2ITyaVkUb2OHWv5NbS/hySSJLdvIRrKA3FECHJPt7zB8syzx9//umm", + "Pwd5zXIgF7CuhKSSlVvyMw/hhkez4m+RvCV1OuFA8tabXNKbdgSjTOfQaVev9NmWgOgNWVFelC7riKix", + "kq+hTXQSEZGbornCfDHXSkgEwOYMhsI6bqkZOQ9ubegkVvsXVGHJBq2vmKXfTkLR5c26PYy4SswzxvCD", + "JfDMcaRsLoqtK184kfRGb2wmkR7bs3LmAE/sSYGpr07QGWjk41z850ZPGusdUSESNI7v3pu3sgJ57XUl", + "jRrtxckJhk2uhNIn+NRvq9jij+8D5nyR+Ekl2TVWnUKkCcnMC7bMnB6qqfg6eTp7PLn9fwEAAP//rwkF", + "2pUOAQA=", } // GetSwagger returns the content of the embedded swagger specification file diff --git a/daemon/algod/api/server/v2/generated/model/types.go b/daemon/algod/api/server/v2/generated/model/types.go index 74f2d9c7bc..46a3d600e9 100644 --- a/daemon/algod/api/server/v2/generated/model/types.go +++ b/daemon/algod/api/server/v2/generated/model/types.go @@ -527,10 +527,16 @@ type Box struct { Name []byte `json:"name"` // Round The round for which this information is relevant - Round *basics.Round `json:"round,omitempty"` + Round basics.Round `json:"round"` // Value The box value, base64 encoded. - Value *[]byte `json:"value,omitempty"` + Value []byte `json:"value"` +} + +// BoxDescriptor Box descriptor describes a Box. +type BoxDescriptor struct { + // Name Base64 encoded box name + Name []byte `json:"name"` } // BoxReference References a box of an application. @@ -1185,13 +1191,7 @@ type BoxResponse = Box // BoxesResponse defines model for BoxesResponse. type BoxesResponse struct { - Boxes []Box `json:"boxes"` - - // NextToken Used for pagination, when making another request provide this token with the next parameter. - NextToken *string `json:"next-token,omitempty"` - - // Round The round for which this information is relevant. - Round basics.Round `json:"round"` + Boxes []BoxDescriptor `json:"boxes"` } // CatchpointAbortResponse An catchpoint abort response. @@ -1501,17 +1501,8 @@ type GetApplicationBoxByNameParams struct { // GetApplicationBoxesParams defines parameters for GetApplicationBoxes. type GetApplicationBoxesParams struct { - // Max Maximum number of boxes to return. Server may impose a lower limit. + // Max Max number of box names to return. If max is not set, or max == 0, returns all box-names. Max *uint64 `form:"max,omitempty" json:"max,omitempty"` - - // Prefix A box name prefix, in the goal app call arg form 'encoding:value'. For ints, use the form 'int:1234'. For raw bytes, use the form 'b64:A=='. For printable strings, use the form 'str:hello'. For addresses, use the form 'addr:XYZ...'. - Prefix *string `form:"prefix,omitempty" json:"prefix,omitempty"` - - // Next A box name, in the goal app call arg form 'encoding:value'. When provided, the returned boxes begin (lexographically) with the supplied name. Callers may implement pagination by reinvoking the endpoint with the token from a previous call's next-token. - Next *string `form:"next,omitempty" json:"next,omitempty"` - - // Values If true, box values will be returned. - Values *bool `form:"values,omitempty" json:"values,omitempty"` } // GetBlockParams defines parameters for GetBlock. diff --git a/daemon/algod/api/server/v2/generated/nonparticipating/private/routes.go b/daemon/algod/api/server/v2/generated/nonparticipating/private/routes.go index 5b0eaf1ae5..a71e895230 100644 --- a/daemon/algod/api/server/v2/generated/nonparticipating/private/routes.go +++ b/daemon/algod/api/server/v2/generated/nonparticipating/private/routes.go @@ -184,230 +184,231 @@ func RegisterHandlersWithBaseURL(router EchoRouter, si ServerInterface, baseURL // Base64 encoded, gzipped, json marshaled Swagger object var swaggerSpec = []string{ - "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", + "F68ePZ2eju7+/wAAAP//dCgz5mATAQA=", } // GetSwagger returns the content of the embedded swagger specification file diff --git a/daemon/algod/api/server/v2/generated/nonparticipating/public/routes.go b/daemon/algod/api/server/v2/generated/nonparticipating/public/routes.go index 1e856b731b..b18e7c04a5 100644 --- a/daemon/algod/api/server/v2/generated/nonparticipating/public/routes.go +++ b/daemon/algod/api/server/v2/generated/nonparticipating/public/routes.go @@ -37,7 +37,7 @@ type ServerInterface interface { // Get box information for a given application. // (GET /v2/applications/{application-id}/box) GetApplicationBoxByName(ctx echo.Context, applicationId basics.AppIndex, params GetApplicationBoxByNameParams) error - // Get boxes for a given application. + // Get all box names for a given application. // (GET /v2/applications/{application-id}/boxes) GetApplicationBoxes(ctx echo.Context, applicationId basics.AppIndex, params GetApplicationBoxesParams) error // Get asset information. @@ -281,27 +281,6 @@ func (w *ServerInterfaceWrapper) GetApplicationBoxes(ctx echo.Context) error { return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter max: %s", err)) } - // ------------- Optional query parameter "prefix" ------------- - - err = runtime.BindQueryParameter("form", true, false, "prefix", ctx.QueryParams(), ¶ms.Prefix) - if err != nil { - return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter prefix: %s", err)) - } - - // ------------- Optional query parameter "next" ------------- - - err = runtime.BindQueryParameter("form", true, false, "next", ctx.QueryParams(), ¶ms.Next) - if err != nil { - return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter next: %s", err)) - } - - // ------------- Optional query parameter "values" ------------- - - err = runtime.BindQueryParameter("form", true, false, "values", ctx.QueryParams(), ¶ms.Values) - if err != nil { - return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter values: %s", err)) - } - // Invoke the callback with all the unmarshaled arguments err = w.Handler.GetApplicationBoxes(ctx, applicationId, params) return err @@ -775,306 +754,305 @@ func RegisterHandlersWithBaseURL(router EchoRouter, si ServerInterface, baseURL // Base64 encoded, gzipped, json marshaled Swagger object var swaggerSpec = []string{ - "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", + "/4/k3jolyQEA", } // GetSwagger returns the content of the embedded swagger specification file diff --git a/daemon/algod/api/server/v2/generated/participating/private/routes.go b/daemon/algod/api/server/v2/generated/participating/private/routes.go index 9dbe62b4a2..f97e572214 100644 --- a/daemon/algod/api/server/v2/generated/participating/private/routes.go +++ b/daemon/algod/api/server/v2/generated/participating/private/routes.go @@ -249,234 +249,235 @@ func RegisterHandlersWithBaseURL(router EchoRouter, si ServerInterface, baseURL // Base64 encoded, gzipped, json marshaled Swagger object var swaggerSpec = []string{ - "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", + "AAD//0rsuowXIgEA", } // GetSwagger returns the content of the embedded swagger specification file diff --git a/daemon/algod/api/server/v2/generated/participating/public/routes.go b/daemon/algod/api/server/v2/generated/participating/public/routes.go index ab07a5b1e7..8f9c2f1342 100644 --- a/daemon/algod/api/server/v2/generated/participating/public/routes.go +++ b/daemon/algod/api/server/v2/generated/participating/public/routes.go @@ -178,237 +178,237 @@ func RegisterHandlersWithBaseURL(router EchoRouter, si ServerInterface, baseURL // Base64 encoded, gzipped, json marshaled Swagger object var swaggerSpec = []string{ - "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", - "OlT28eRsdPd/AwAA///Bc2x8cCYBAA==", + "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", } // GetSwagger returns the content of the embedded swagger specification file diff --git a/daemon/algod/api/server/v2/handlers.go b/daemon/algod/api/server/v2/handlers.go index 60de252461..e0f7acbf69 100644 --- a/daemon/algod/api/server/v2/handlers.go +++ b/daemon/algod/api/server/v2/handlers.go @@ -27,7 +27,6 @@ import ( "net/http" "os" "runtime" - "slices" "strconv" "strings" "sync/atomic" @@ -105,7 +104,7 @@ type LedgerForAPI interface { LookupAccount(round basics.Round, addr basics.Address) (ledgercore.AccountData, basics.Round, basics.MicroAlgos, error) LookupLatest(addr basics.Address) (basics.AccountData, basics.Round, basics.MicroAlgos, error) LookupKv(round basics.Round, key string) ([]byte, error) - LookupKeysByPrefix(prefix, next string, boxLimit, byteLimit int, values bool) (basics.Round, map[string]string, string, error) + LookupKeysByPrefix(round basics.Round, keyPrefix string, maxKeyNum uint64) ([]string, error) ConsensusParams(r basics.Round) (config.ConsensusParams, error) Latest() basics.Round LookupAsset(rnd basics.Round, addr basics.Address, aidx basics.AssetIndex) (ledgercore.AssetResource, error) @@ -1713,93 +1712,61 @@ func (v2 *Handlers) GetApplicationByID(ctx echo.Context, applicationID basics.Ap return ctx.JSON(http.StatusOK, response) } -func applicationBoxesMaxKeys(requestedMax uint64, algodMax uint64) int { - if requestedMax == 0 || requestedMax > math.MaxInt { - requestedMax = math.MaxInt +func applicationBoxesMaxKeys(requestedMax uint64, algodMax uint64) uint64 { + if requestedMax == 0 { + if algodMax == 0 { + return math.MaxUint64 // unlimited results when both requested and algod max are 0 + } + return algodMax + 1 // API limit dominates. Increments by 1 to test if more than max supported results exist. } - if algodMax == 0 || algodMax > math.MaxInt { - algodMax = math.MaxInt + + if requestedMax <= algodMax || algodMax == 0 { + return requestedMax // requested limit dominates } - return int(min(requestedMax, algodMax)) + + return algodMax + 1 // API limit dominates. Increments by 1 to test if more than max supported results exist. } // GetApplicationBoxes returns the boxes of an application // (GET /v2/applications/{application-id}/boxes) func (v2 *Handlers) GetApplicationBoxes(ctx echo.Context, applicationID basics.AppIndex, params model.GetApplicationBoxesParams) error { ledger := v2.Node.LedgerForAPI() + lastRound := ledger.Latest() + keyPrefix := apps.MakeBoxKey(uint64(applicationID), "") requestedMax, algodMax := nilToZero(params.Max), v2.Node.Config().MaxAPIBoxPerApplication max := applicationBoxesMaxKeys(requestedMax, algodMax) - values := nilToZero(params.Values) - - // We'll need to convert between "KV" names and "Box" names, so keep track - // of how much gets tacked on to make the kv name. - kvPrefix := apps.MakeBoxKey(uint64(applicationID), "") - kvPrefixLen := len(kvPrefix) - - prefix := nilToZero(params.Prefix) - if len(prefix) > 0 { - cb, err := apps.NewAppCallBytes(prefix) - if err != nil { - return badRequest(ctx, err, err.Error(), v2.Log) - } - rawPrefix, err := cb.Raw() - if err != nil { - return badRequest(ctx, err, err.Error(), v2.Log) - } - prefix = string(rawPrefix) - } - - next := nilToZero(params.Next) - if len(next) > 0 { - cb, err := apps.NewAppCallBytes(next) + if max != math.MaxUint64 { + record, _, _, err := ledger.LookupAccount(ledger.Latest(), applicationID.Address()) if err != nil { - return badRequest(ctx, err, err.Error(), v2.Log) - } - rawNext, err := cb.Raw() - if err != nil { - return badRequest(ctx, err, err.Error(), v2.Log) + return internalError(ctx, err, errFailedLookingUpLedger, v2.Log) } - next = kvPrefix + string(rawNext) - } - - round, boxes, nextToken, err := ledger.LookupKeysByPrefix(kvPrefix+prefix, next, max, 1_000_000, values) - if err != nil { - return internalError(ctx, err, errFailedLookingUpLedger, v2.Log) - } - - if nextToken != "" { - // Preserve existing failure behavior if caller is not using `next`. - if params.Next == nil { + if record.TotalBoxes > max { return ctx.JSON(http.StatusBadRequest, model.ErrorResponse{ Message: "Result limit exceeded", Data: &map[string]any{ "max-api-box-per-application": algodMax, "max": requestedMax, + "total-boxes": record.TotalBoxes, }, }) } - nextToken = nextToken[kvPrefixLen:] } - responseBoxes := make([]model.Box, 0, len(boxes)) - for key, value := range boxes { - box := model.Box{Name: []byte(key[kvPrefixLen:])} - if values { - boxArray := []byte(value) - box.Value = &boxArray - } - responseBoxes = append(responseBoxes, box) + boxKeys, err := ledger.LookupKeysByPrefix(lastRound, keyPrefix, math.MaxUint64) + if err != nil { + return internalError(ctx, err, errFailedLookingUpLedger, v2.Log) } - slices.SortFunc(responseBoxes, func(a, b model.Box) int { - return bytes.Compare(a.Name, b.Name) - }) - response := model.BoxesResponse{ - Round: round, - Boxes: responseBoxes, - NextToken: omitEmpty(nextToken), + + prefixLen := len(keyPrefix) + responseBoxes := make([]model.BoxDescriptor, len(boxKeys)) + for i, boxKey := range boxKeys { + responseBoxes[i] = model.BoxDescriptor{ + Name: []byte(boxKey[prefixLen:]), + } } + response := model.BoxesResponse{Boxes: responseBoxes} return ctx.JSON(http.StatusOK, response) } @@ -1828,9 +1795,9 @@ func (v2 *Handlers) GetApplicationBoxByName(ctx echo.Context, applicationID basi } response := model.BoxResponse{ - Round: omitEmpty(lastRound), + Round: lastRound, Name: boxName, - Value: &value, + Value: value, } return ctx.JSON(http.StatusOK, response) } diff --git a/daemon/algod/api/server/v2/handlers_test.go b/daemon/algod/api/server/v2/handlers_test.go index 96ef2e290c..debeffbb7a 100644 --- a/daemon/algod/api/server/v2/handlers_test.go +++ b/daemon/algod/api/server/v2/handlers_test.go @@ -34,15 +34,15 @@ func TestApplicationBoxesMaxKeys(t *testing.T) { t.Parallel() // Response size limited by request supplied value. - require.Equal(t, 5, applicationBoxesMaxKeys(5, 7)) - require.Equal(t, 5, applicationBoxesMaxKeys(5, 0)) + require.Equal(t, uint64(5), applicationBoxesMaxKeys(5, 7)) + require.Equal(t, uint64(5), applicationBoxesMaxKeys(5, 0)) // Response size limited by algod max. - require.Equal(t, 1, applicationBoxesMaxKeys(5, 1)) - require.Equal(t, 1, applicationBoxesMaxKeys(0, 1)) + require.Equal(t, uint64(2), applicationBoxesMaxKeys(5, 1)) + require.Equal(t, uint64(2), applicationBoxesMaxKeys(0, 1)) // Response size _not_ limited - require.Equal(t, math.MaxInt, applicationBoxesMaxKeys(0, 0)) + require.Equal(t, uint64(math.MaxUint64), applicationBoxesMaxKeys(0, 0)) } type tagNode struct { diff --git a/daemon/algod/api/server/v2/test/handlers_resources_test.go b/daemon/algod/api/server/v2/test/handlers_resources_test.go index 0e65b81eb5..40d56f8981 100644 --- a/daemon/algod/api/server/v2/test/handlers_resources_test.go +++ b/daemon/algod/api/server/v2/test/handlers_resources_test.go @@ -85,7 +85,7 @@ func (l *mockLedger) LookupKv(round basics.Round, key string) ([]byte, error) { return nil, fmt.Errorf("Key %v does not exist", key) } -func (l *mockLedger) LookupKeysByPrefix(prefix, next string, maxBoxes, maxBytes int, values bool) (basics.Round, map[string]string, string, error) { +func (l *mockLedger) LookupKeysByPrefix(round basics.Round, keyPrefix string, maxKeyNum uint64) ([]string, error) { panic("not implemented") } diff --git a/data/transactions/logic/assembler_test.go b/data/transactions/logic/assembler_test.go index 910bfd441f..cd44808753 100644 --- a/data/transactions/logic/assembler_test.go +++ b/data/transactions/logic/assembler_test.go @@ -2839,33 +2839,33 @@ func TestScratchBounds(t *testing.T) { os := testProg(t, "int 5; store 1; load 1; return;", AssemblerMaxVersion) sv := os.known.scratchSpace[1] require.Equal(t, sv.AVMType, avmUint64) - require.Equal(t, sv.Bound, static(5)) + require.ElementsMatch(t, sv.Bound, static(5)) os = testProg(t, "int 5; store 1; load 1; int 1; int 1; stores; return;", AssemblerMaxVersion) sv = os.known.scratchSpace[1] require.Equal(t, sv.AVMType, avmUint64) - require.Equal(t, sv.Bound, bound(1, 1)) + require.ElementsMatch(t, sv.Bound, bound(1, 1)) // If the stack type for the slot index is a const, known at assembly time // we can be sure of the slot we need to update os = testProg(t, "int 5; store 1; load 1; int 1; byte 0xff; stores; return;", AssemblerMaxVersion) sv = os.known.scratchSpace[1] require.Equal(t, sv.AVMType, avmBytes) - require.Equal(t, sv.Bound, static(1)) + require.ElementsMatch(t, sv.Bound, static(1)) osv := os.known.scratchSpace[0] require.Equal(t, osv.AVMType, avmUint64) - require.Equal(t, osv.Bound, static(0)) + require.ElementsMatch(t, osv.Bound, static(0)) // Otherwise, we just union all stack types with the incoming type os = testProg(t, "int 5; store 1; load 1; byte 0xaa; btoi; byte 0xff; stores; return;", AssemblerMaxVersion) sv = os.known.scratchSpace[1] require.Equal(t, sv.AVMType, avmAny) - require.Equal(t, sv.Bound, static(0)) + require.ElementsMatch(t, sv.Bound, static(0)) osv = os.known.scratchSpace[0] require.Equal(t, osv.AVMType, avmAny) - require.Equal(t, osv.Bound, static(0)) + require.ElementsMatch(t, osv.Bound, static(0)) testProg(t, "byte 0xff; store 1; load 1; return", AssemblerMaxVersion, exp(1, "return arg 0 wanted type uint64 ...")) } diff --git a/ledger/acctdeltas_test.go b/ledger/acctdeltas_test.go index 04a5012a39..98c6b9bb8d 100644 --- a/ledger/acctdeltas_test.go +++ b/ledger/acctdeltas_test.go @@ -946,15 +946,16 @@ func TestLookupKeysByPrefix(t *testing.T) { for index, testCase := range testCases { t.Run("lookupKVByPrefix-testcase-"+strconv.Itoa(index), func(t *testing.T) { - _, actual, _, err := qs.LookupKeysByPrefix(string(testCase.prefix), "", len(kvPairDBPrepareSet), 1_000_000, false) + actual := make(map[string]bool) + _, err := qs.LookupKeysByPrefix(string(testCase.prefix), uint64(len(kvPairDBPrepareSet)), actual, 0) if err != nil { require.NotEmpty(t, testCase.err, testCase.prefix) require.Contains(t, err.Error(), testCase.err) } else { require.Empty(t, testCase.err) - expected := make(map[string]string) + expected := make(map[string]bool) for _, name := range testCase.expectedNames { - expected[string(name)] = "" + expected[string(name)] = true } require.Equal(t, actual, expected) } @@ -1023,7 +1024,8 @@ func BenchmarkLookupKeyByPrefix(b *testing.B) { b.Run("lookupKVByPrefix-DBsize"+strconv.Itoa(currentDBSize), func(b *testing.B) { for i := 0; i < b.N; i++ { - _, results, _, err := qs.LookupKeysByPrefix(prefix, "", currentDBSize, 1_000_000, false) + results := make(map[string]bool) + _, err := qs.LookupKeysByPrefix(prefix, uint64(currentDBSize), results, 0) require.NoError(b, err) require.True(b, len(results) >= 1) } diff --git a/ledger/acctupdates.go b/ledger/acctupdates.go index c36d4b517f..ca9b0c28e3 100644 --- a/ledger/acctupdates.go +++ b/ledger/acctupdates.go @@ -22,6 +22,7 @@ import ( "fmt" "io" "sort" + "strings" "sync" "time" @@ -456,13 +457,132 @@ func (au *accountUpdates) lookupKv(rnd basics.Round, key string, synchronized bo } } -func (au *accountUpdates) LookupKeysByPrefix(prefix, next string, maxKeyNum, maxBytes int, values bool) (basics.Round, map[string]string, string, error) { - // We only use the DB, not deltas. That means our answer is a bit out of - // date, but it is otherwise extremely difficult to integrate answers from - // the deltas and from the DB, while respecting the limits and the prefix. - // This seems reasonable for it's purpose - just a REST API. +func (au *accountUpdates) LookupKeysByPrefix(round basics.Round, keyPrefix string, maxKeyNum uint64) ([]string, error) { + return au.lookupKeysByPrefix(round, keyPrefix, maxKeyNum, true /* take lock */) +} + +func (au *accountUpdates) lookupKeysByPrefix(round basics.Round, keyPrefix string, maxKeyNum uint64, synchronized bool) (resultKeys []string, err error) { + var results map[string]bool + // keep track of the number of result key with value + var resultCount uint64 + + needUnlock := false + if synchronized { + au.accountsMu.RLock() + needUnlock = true + } + defer func() { + if needUnlock { + au.accountsMu.RUnlock() + } + // preparation of result happens in deferring function + // prepare result only when err != nil + if err == nil { + resultKeys = make([]string, 0, resultCount) + for resKey, present := range results { + if present { + resultKeys = append(resultKeys, resKey) + } + } + } + }() + + // TODO: This loop and round handling is copied from other routines like + // lookupResource. I believe that it is overly cautious, as it always reruns + // the lookup if the DB round does not match the expected round. However, as + // long as the db round has not advanced too far (greater than `rnd`), I + // believe it would be valid to use. In the interest of minimizing changes, + // I'm not doing that now. + + for { + currentDBRound := au.cachedDBRound + currentDeltaLen := len(au.deltas) + offset, rndErr := au.roundOffset(round) + if rndErr != nil { + return nil, rndErr + } + + // reset `results` to be empty each iteration + // if db round does not match the round number returned from DB query, start over again + // NOTE: `results` is maintained as we walk backwards from the latest round, to DB + // IT IS NOT SIMPLY A SET STORING KEY NAMES! + // - if the boolean for the key is true: we consider the key is still valid in later round + // - otherwise, we consider that the key is deleted in later round, and we will not return it as part of result + // Thus: `resultCount` keeps track of how many VALID keys in the `results` + // DO NOT TRY `len(results)` TO SEE NUMBER OF VALID KEYS! + results = map[string]bool{} + resultCount = 0 + + for offset > 0 { + offset-- + for keyInRound, mv := range au.deltas[offset].KvMods { + if !strings.HasPrefix(keyInRound, keyPrefix) { + continue + } + // whether it is set or deleted in later round, if such modification exists in later round + // we just ignore the earlier insert + if _, ok := results[keyInRound]; ok { + continue + } + if mv.Data == nil { + results[keyInRound] = false + } else { + // set such key to be valid with value + results[keyInRound] = true + resultCount++ + // check if the size of `results` reaches `maxKeyNum` + // if so just return the list of keys + if resultCount == maxKeyNum { + return + } + } + } + } + + round = currentDBRound + basics.Round(currentDeltaLen) + + // after this line, we should dig into DB I guess + // OTHER LOOKUPS USE "base" caches here. + if synchronized { + au.accountsMu.RUnlock() + needUnlock = false + } + + // NOTE: the kv cache isn't used here because the data structure doesn't support range + // queries. It may be preferable to increase the SQLite cache size if these reads become + // too slow. + + // Finishing searching updates of this account in kvDeltas, keep going: use on-disk DB + // to find the rest matching keys in DB. + dbRound, dbErr := au.accountsq.LookupKeysByPrefix(keyPrefix, maxKeyNum, results, resultCount) + if dbErr != nil { + return nil, dbErr + } + if dbRound == currentDBRound { + return + } - return au.accountsq.LookupKeysByPrefix(prefix, next, maxKeyNum, maxBytes, values) + // The DB round is unexpected... '_>'? + if synchronized { + if dbRound < currentDBRound { + // does not make sense if DB round is earlier than it should be + au.log.Errorf("accountUpdates.lookupKvPair: database round %d is behind in-memory round %d", dbRound, currentDBRound) + err = &StaleDatabaseRoundError{databaseRound: dbRound, memoryRound: currentDBRound} + return + } + // The DB round is higher than expected, so a write-into-DB must have happened. Start over again. + au.accountsMu.RLock() + needUnlock = true + // WHY BOTH - seems the goal is just to wait until the au is aware of progress. au.cachedDBRound should be enough? + for currentDBRound >= au.cachedDBRound && currentDeltaLen == len(au.deltas) { + au.accountsReadCond.Wait() + } + } else { + au.log.Errorf("accountUpdates.lookupKvPair: database round %d mismatching in-memory round %d", dbRound, currentDBRound) + err = &MismatchingDatabaseRoundError{databaseRound: dbRound, memoryRound: currentDBRound} + return + } + } } // LookupWithoutRewards returns the account data for a given address at a given round. diff --git a/ledger/acctupdates_test.go b/ledger/acctupdates_test.go index 72ec0f2998..67a83b83c0 100644 --- a/ledger/acctupdates_test.go +++ b/ledger/acctupdates_test.go @@ -990,25 +990,19 @@ func TestBoxNamesByAppIDs(t *testing.T) { `他们丢失了四季,惶惑之行开始`, `这颗行星所有的酒馆,无法听到远方的呼喊`, `野心勃勃的灯火,瞬间吞没黑暗的脸庞`, - - // useful for testing prefix - "xxABC", - "xxBBB", - "xxBBC", - "xxCBA", } - appIDset := make(map[uint64]struct{}, len(testingBoxNames)) - boxNameToAppID := make(map[string]uint64, len(testingBoxNames)) - const allBoxesAppID = 777 + appIDset := make(map[basics.AppIndex]struct{}, len(testingBoxNames)) + boxNameToAppID := make(map[string]basics.AppIndex, len(testingBoxNames)) + var currentRound basics.Round // keep adding one box key and one random appID (non-duplicated) for i, boxName := range testingBoxNames { - currentRound := au.latest() + 1 + currentRound = basics.Round(i + 1) - var appID uint64 + var appID basics.AppIndex for { - appID = crypto.RandUint64() + appID = basics.AppIndex(crypto.RandUint64()) _, preExisting := appIDset[appID] if !preExisting { break @@ -1018,122 +1012,45 @@ func TestBoxNamesByAppIDs(t *testing.T) { appIDset[appID] = struct{}{} boxNameToAppID[boxName] = appID + boxChange := ledgercore.KvValueDelta{Data: []byte(boxName)} auNewBlock(t, currentRound, au, accts, opts, map[string]ledgercore.KvValueDelta{ - apps.MakeBoxKey(appID, boxName): {Data: []byte(boxName)}, - apps.MakeBoxKey(allBoxesAppID, boxName): {Data: []byte(boxName)}, + apps.MakeBoxKey(uint64(appID), boxName): boxChange, }) auCommitSync(t, currentRound, au, ml) - // Advance conf.MaxAcctLookback rounds because LookupKeysByPrefix only - // sees kvs that make it to the DB. The deltas are not examined. It - // might be nice to do so, but it's complicated. If we decide to do so, - // we can stop advancing here - - target := basics.Round(uint64(currentRound) + conf.MaxAcctLookback) - for au.latest() < target { - auNewBlock(t, au.latest()+1, au, accts, opts, nil) - auCommitSync(t, au.latest()+1, au, ml) + // ensure rounds + rnd := au.latest() + require.Equal(t, currentRound, rnd) + if uint64(currentRound) > conf.MaxAcctLookback { + require.Equal(t, basics.Round(uint64(currentRound)-conf.MaxAcctLookback), au.cachedDBRound) + } else { + require.Equal(t, basics.Round(0), au.cachedDBRound) } - // check that each box ended up in its unique app + // check input, see all present keys are all still there for _, storedBoxName := range testingBoxNames[:i+1] { - _, res, _, err := au.LookupKeysByPrefix(apps.MakeBoxKey(boxNameToAppID[storedBoxName], ""), "", 10000, 100_000, false) - + res, err := au.LookupKeysByPrefix(currentRound, apps.MakeBoxKey(uint64(boxNameToAppID[storedBoxName]), ""), 10000) require.NoError(t, err) require.Len(t, res, 1) - require.Contains(t, res, apps.MakeBoxKey(boxNameToAppID[storedBoxName], storedBoxName)) - } - - // check that the allBoxesAppID has all of them - _, res, next, err := au.LookupKeysByPrefix(apps.MakeBoxKey(allBoxesAppID, ""), "", 10000, 100_000, false) - require.NoError(t, err) - require.Len(t, res, i+1) - require.Empty(t, next) - for _, storedBoxName := range testingBoxNames[:i+1] { - require.Contains(t, res, apps.MakeBoxKey(allBoxesAppID, storedBoxName)) + require.Equal(t, apps.MakeBoxKey(uint64(boxNameToAppID[storedBoxName]), storedBoxName), res[0]) } } - // all boxes have been created. - - // show that when row limit is too low, paging kicks in - _, res, next, err := au.LookupKeysByPrefix(apps.MakeBoxKey(allBoxesAppID, ""), "", 10, 100_000, false) - require.NoError(t, err) - require.Len(t, res, 10) - require.NotEmpty(t, next) - - // get the rest - _, res, next, err = au.LookupKeysByPrefix(apps.MakeBoxKey(allBoxesAppID, ""), next, 10000, 100_000, false) - require.NoError(t, err) - require.Len(t, res, len(testingBoxNames)-10) - require.Empty(t, next) - - // show that when byte limit is too low, paging kicks in - _, res, next, err = au.LookupKeysByPrefix(apps.MakeBoxKey(allBoxesAppID, ""), "", 10000, 1_000, false) - require.NoError(t, err) - boxCount := len(res) - require.Less(t, boxCount, len(testingBoxNames)) - count := 0 - for key, val := range res { - count += len(key) + len(val) - } - require.Less(t, count, 1_001) - require.Greater(t, count, 950) // got close though, right? - require.NotEmpty(t, next) - - // get the rest - _, res, next, err = au.LookupKeysByPrefix(apps.MakeBoxKey(allBoxesAppID, ""), next, 10000, 100_000, false) - require.NoError(t, err) - require.Len(t, res, len(testingBoxNames)-boxCount) - require.Empty(t, next) - - // check that prefix works properly - _, res, _, err = au.LookupKeysByPrefix(apps.MakeBoxKey(allBoxesAppID, "x"), "", 10000, 100_000, false) - require.NoError(t, err) - require.Len(t, res, 4) - - _, res, _, err = au.LookupKeysByPrefix(apps.MakeBoxKey(allBoxesAppID, "xx"), "", 10000, 100_000, false) - require.NoError(t, err) - require.Len(t, res, 4) - - _, res, _, err = au.LookupKeysByPrefix(apps.MakeBoxKey(allBoxesAppID, "xxB"), "", 10000, 100_000, false) - require.NoError(t, err) - require.Len(t, res, 2) // xxBBB, xxBBC - - // check that "next" works. - _, res, _, err = au.LookupKeysByPrefix(apps.MakeBoxKey(allBoxesAppID, "xx"), apps.MakeBoxKey(allBoxesAppID, "xxB"), 10000, 100_000, false) - require.NoError(t, err) - require.Len(t, res, 3) // xxBBB, xxBBC, XXCBA - - // check that "next" works precisely - _, res, _, err = au.LookupKeysByPrefix(apps.MakeBoxKey(allBoxesAppID, "xx"), apps.MakeBoxKey(allBoxesAppID, "xxBBB"), 10000, 100_000, false) - require.NoError(t, err) - require.Len(t, res, 3) // xxBBB, xxBBC, XXCBA - // removing inserted boxes for _, boxName := range testingBoxNames { - currentRound := au.latest() + 1 + currentRound++ // remove inserted box appID := boxNameToAppID[boxName] auNewBlock(t, currentRound, au, accts, opts, map[string]ledgercore.KvValueDelta{ - // to make a delete actually hit the DB, OldData must not be nil. - apps.MakeBoxKey(uint64(appID), boxName): {OldData: []byte{0x01}}, + apps.MakeBoxKey(uint64(appID), boxName): {}, }) auCommitSync(t, currentRound, au, ml) - // as we did during inserts, advance until the deletion is "visible" in the DB - target := basics.Round(uint64(currentRound) + conf.MaxAcctLookback) - for au.latest() < target { - auNewBlock(t, au.latest()+1, au, accts, opts, nil) - auCommitSync(t, au.latest()+1, au, ml) - } - - // ensure recently removed key is not present, and it is not part of the - // result. We are grabbing all boxes under this (unique) appID. - _, res, _, err := au.LookupKeysByPrefix(apps.MakeBoxKey(uint64(appID), ""), "", 10000, 100_000, false) + // ensure recently removed key is not present, and it is not part of the result + res, err := au.LookupKeysByPrefix(currentRound, apps.MakeBoxKey(uint64(boxNameToAppID[boxName]), ""), 10000) require.NoError(t, err) - require.Empty(t, res) + require.Len(t, res, 0) } } diff --git a/ledger/catchpointfilewriter_test.go b/ledger/catchpointfilewriter_test.go index 26aab8331b..836ecce0af 100644 --- a/ledger/catchpointfilewriter_test.go +++ b/ledger/catchpointfilewriter_test.go @@ -1040,7 +1040,7 @@ func TestCatchpointAfterTxns(t *testing.T) { l := testNewLedgerFromCatchpoint(t, dl.validator.trackerDB(), catchpointFilePath) defer l.Close() - _, values, _, err := l.LookupKeysByPrefix("bx:", "", 10, 10_000, false) + values, err := l.LookupKeysByPrefix(l.Latest(), "bx:", 10) require.NoError(t, err) require.Len(t, values, 1) @@ -1072,7 +1072,7 @@ func TestCatchpointAfterTxns(t *testing.T) { l = testNewLedgerFromCatchpoint(t, dl.validator.trackerDB(), catchpointFilePath) defer l.Close() - _, values, _, err = l.LookupKeysByPrefix("bx:", "", 10, 10_000, false) + values, err = l.LookupKeysByPrefix(l.Latest(), "bx:", 10) require.NoError(t, err) require.Len(t, values, 1) v, err := l.LookupKv(l.Latest(), apps.MakeBoxKey(uint64(boxApp), "xxx")) @@ -1381,7 +1381,7 @@ func TestCatchpointAfterBoxTxns(t *testing.T) { l := testNewLedgerFromCatchpoint(t, dl.generator.trackerDB(), catchpointFilePath) defer l.Close() - _, values, _, err := l.LookupKeysByPrefix("bx:", "", 10, 10_000, false) + values, err := l.LookupKeysByPrefix(l.Latest(), "bx:", 10) require.NoError(t, err) require.Len(t, values, 1) v, err := l.LookupKv(l.Latest(), apps.MakeBoxKey(uint64(boxApp), "xxx")) diff --git a/ledger/ledger.go b/ledger/ledger.go index a13ee6ac29..8e0114f222 100644 --- a/ledger/ledger.go +++ b/ledger/ledger.go @@ -625,11 +625,11 @@ func (l *Ledger) LookupKv(rnd basics.Round, key string) ([]byte, error) { // LookupKeysByPrefix searches keys with specific prefix, up to `maxKeyNum` // if `maxKeyNum` == 0, then it loads all keys with such prefix -func (l *Ledger) LookupKeysByPrefix(prefix, next string, boxLimit, byteLimit int, values bool) (basics.Round, map[string]string, string, error) { +func (l *Ledger) LookupKeysByPrefix(round basics.Round, keyPrefix string, maxKeyNum uint64) ([]string, error) { l.trackerMu.RLock() defer l.trackerMu.RUnlock() - return l.accts.LookupKeysByPrefix(prefix, next, boxLimit, byteLimit, values) + return l.accts.LookupKeysByPrefix(round, keyPrefix, maxKeyNum) } // LookupAgreement returns account data used by agreement. diff --git a/ledger/ledgercore/statedelta.go b/ledger/ledgercore/statedelta.go index 88bd8b39c4..4297afc329 100644 --- a/ledger/ledgercore/statedelta.go +++ b/ledger/ledgercore/statedelta.go @@ -81,7 +81,7 @@ type KvValueDelta struct { // Data stores the most recent value (nil == deleted) Data []byte - // OldData stores the previous value (nil == didn't exist) + // OldData stores the previous vlaue (nil == didn't exist) OldData []byte } diff --git a/ledger/store/trackerdb/dualdriver/accounts_reader.go b/ledger/store/trackerdb/dualdriver/accounts_reader.go index 2081275552..8220a70f33 100644 --- a/ledger/store/trackerdb/dualdriver/accounts_reader.go +++ b/ledger/store/trackerdb/dualdriver/accounts_reader.go @@ -142,20 +142,21 @@ func (ar *accountsReader) LookupKeyValue(key string) (pv trackerdb.PersistedKVDa } // LookupKeysByPrefix implements trackerdb.AccountsReader -func (ar *accountsReader) LookupKeysByPrefix(prefix, next string, maxBoxes, maxBytes int, values bool) (basics.Round, map[string]string, string, error) { - roundP, resP, nextP, errP := ar.primary.LookupKeysByPrefix(prefix, next, maxBoxes, maxBytes, values) - roundS, resS, nextS, errS := ar.secondary.LookupKeysByPrefix(prefix, next, maxBoxes, maxBytes, values) +func (ar *accountsReader) LookupKeysByPrefix(prefix string, maxKeyNum uint64, results map[string]bool, resultCount uint64) (round basics.Round, err error) { + roundP, errP := ar.primary.LookupKeysByPrefix(prefix, maxKeyNum, results, resultCount) + roundS, errS := ar.secondary.LookupKeysByPrefix(prefix, maxKeyNum, results, resultCount) // coalesce errors - err := coalesceErrors(errP, errS) + err = coalesceErrors(errP, errS) if err != nil { - return 0, nil, "", err + return } // check results match - if roundP != roundS || !cmp.Equal(resP, resS) || nextP != nextS { - return 0, nil, "", ErrInconsistentResult + if roundP != roundS { + err = ErrInconsistentResult + return } // return primary results - return roundP, resP, nextP, nil + return roundP, nil } // LookupResources implements trackerdb.AccountsReader diff --git a/ledger/store/trackerdb/generickv/accounts_reader.go b/ledger/store/trackerdb/generickv/accounts_reader.go index 7b43da93f8..15bbe4aa9d 100644 --- a/ledger/store/trackerdb/generickv/accounts_reader.go +++ b/ledger/store/trackerdb/generickv/accounts_reader.go @@ -20,7 +20,6 @@ import ( "errors" "fmt" "io" - "strings" "github.com/algorand/go-algorand/config" "github.com/algorand/go-algorand/data/basics" @@ -224,7 +223,7 @@ func keyPrefixIntervalPreprocessing(prefix []byte) ([]byte, []byte) { return prefix, nil } -func (r *accountsReader) LookupKeysByPrefix(prefix, next string, rowLimit, byteLimit int, values bool) (basics.Round, map[string]string, string, error) { +func (r *accountsReader) LookupKeysByPrefix(prefix string, maxKeyNum uint64, results map[string]bool, resultCount uint64) (round basics.Round, err error) { // SQL at time of writing: // // SELECT acctrounds.rnd, kvstore.key @@ -232,49 +231,41 @@ func (r *accountsReader) LookupKeysByPrefix(prefix, next string, rowLimit, byteL // WHERE id='acctbase' // read the current db round - round, err := r.AccountsRound() + round, err = r.AccountsRound() if err != nil { - return 0, nil, "", err + return } start, end := keyPrefixIntervalPreprocessing([]byte(prefix)) - if next != "" { - if !strings.HasPrefix(next, prefix) { - return 0, nil, "", fmt.Errorf("next %#v is not prefixed by %#v", next, prefix) - } - start = []byte(next) - next = "" // If we don't exceed limits, we want next="" - } iter := r.kvr.NewIter(start, end, false) defer iter.Close() - boxes := make(map[string]string) + var value []byte + for iter.Next() { + // end iteration if we reached max results + if resultCount == maxKeyNum { + return + } + // read the key key := string(iter.Key()) - value := "" - if values { - valBytes, err := iter.Value() - if err != nil { - return 0, nil, "", err - } - value = string(valBytes) - } - rowLimit-- - byteLimit -= len(key) - if values { - byteLimit -= len(value) - } - // If including this box would exceed limits, set `next` and return - if rowLimit < 0 || byteLimit < 0 { - next = key - break + + // get value for current item in the iterator + value, err = iter.Value() + if err != nil { + return } - boxes[key] = value + + // mark if the key has data on the result map + results[key] = len(value) > 0 + + // inc results in range + resultCount++ } - return round, boxes, next, nil + return } func (r *accountsReader) LookupCreator(cidx basics.CreatableIndex, ctype basics.CreatableType) (addr basics.Address, ok bool, dbRound basics.Round, err error) { diff --git a/ledger/store/trackerdb/interface.go b/ledger/store/trackerdb/interface.go index cfa85d719f..90f0ab5f63 100644 --- a/ledger/store/trackerdb/interface.go +++ b/ledger/store/trackerdb/interface.go @@ -108,7 +108,7 @@ type AccountsReader interface { LookupLimitedResources(addr basics.Address, minIdx basics.CreatableIndex, maxCreatables uint64, ctype basics.CreatableType) (data []PersistedResourcesDataWithCreator, rnd basics.Round, err error) LookupKeyValue(key string) (pv PersistedKVData, err error) - LookupKeysByPrefix(prefix, next string, maxKeyNum, maxBytes int, values bool) (basics.Round, map[string]string, string, error) + LookupKeysByPrefix(prefix string, maxKeyNum uint64, results map[string]bool, resultCount uint64) (round basics.Round, err error) LookupCreator(cidx basics.CreatableIndex, ctype basics.CreatableType) (addr basics.Address, ok bool, dbRound basics.Round, err error) diff --git a/ledger/store/trackerdb/sqlitedriver/sql.go b/ledger/store/trackerdb/sqlitedriver/sql.go index b05f5da2c7..f69363536b 100644 --- a/ledger/store/trackerdb/sqlitedriver/sql.go +++ b/ledger/store/trackerdb/sqlitedriver/sql.go @@ -19,8 +19,6 @@ package sqlitedriver import ( "database/sql" "fmt" - "strings" - "github.com/algorand/go-algorand/data/basics" "github.com/algorand/go-algorand/ledger/ledgercore" "github.com/algorand/go-algorand/ledger/store/trackerdb" @@ -36,7 +34,7 @@ type accountsDbQueries struct { lookupAllResourcesStmt *sql.Stmt lookupLimitedResourcesStmt *sql.Stmt lookupKvPairStmt *sql.Stmt - lookupKvByRangeStmt *sql.Stmt + lookupKeysByRangeStmt *sql.Stmt lookupCreatorStmt *sql.Stmt } @@ -117,7 +115,7 @@ func AccountsInitDbQueries(q db.Queryable) (*accountsDbQueries, error) { return nil, err } - qs.lookupKvByRangeStmt, err = q.Prepare("SELECT acctrounds.rnd, kvstore.key, kvstore.value FROM acctrounds LEFT JOIN kvstore ON kvstore.key >= ? AND kvstore.key < ? WHERE id='acctbase'") + qs.lookupKeysByRangeStmt, err = q.Prepare("SELECT acctrounds.rnd, kvstore.key FROM acctrounds LEFT JOIN kvstore ON kvstore.key >= ? AND kvstore.key < ? WHERE id='acctbase'") if err != nil { return nil, err } @@ -272,63 +270,43 @@ func (qs *accountsDbQueries) LookupKeyValue(key string) (pv trackerdb.PersistedK return } -// LookupKeysByPrefix returns a set of application boxes matching the `prefix`, beginning with `next`. -func (qs *accountsDbQueries) LookupKeysByPrefix(prefix, next string, rowLimit, byteLimit int, values bool) (basics.Round, map[string]string, string, error) { +// LookupKeysByPrefix returns a set of application boxed values matching the prefix. +func (qs *accountsDbQueries) LookupKeysByPrefix(prefix string, maxKeyNum uint64, results map[string]bool, resultCount uint64) (round basics.Round, err error) { start, end := keyPrefixIntervalPreprocessing([]byte(prefix)) if end == nil { // Not an expected use case, it's asking for all keys, or all keys - // prefixed by some number of 0xFF bytes. That's not possible because - // there's always (at least) a "bx:" prefix. - return 0, nil, "", fmt.Errorf("lookup by strange prefix %#v", prefix) - } - if next != "" { - if !strings.HasPrefix(next, prefix) { - return 0, nil, "", fmt.Errorf("next %#v is not prefixed by %#v", next, prefix) - } - start = []byte(next) - next = "" // If we don't exceed limits, we want next="" + // prefixed by some number of 0xFF bytes. + return 0, fmt.Errorf("lookup by strange prefix %#v", prefix) } - round := basics.Round(0) - boxes := make(map[string]string) - err0 := db.Retry(func() error { + err = db.Retry(func() error { var rows *sql.Rows - rows, err := qs.lookupKvByRangeStmt.Query(start, end) + rows, err = qs.lookupKeysByRangeStmt.Query(start, end) if err != nil { return err } defer rows.Close() + var v sql.NullString + for rows.Next() { - var k sql.NullString - var v sql.NullString - err = rows.Scan(&round, &k, &v) + if resultCount == maxKeyNum { + return nil + } + err = rows.Scan(&round, &v) if err != nil { return err } - if k.Valid { - rowLimit-- - byteLimit -= len(k.String) - if values { - byteLimit -= len(v.String) - } - // If including this box would exceed limits, set `next` and return - if rowLimit < 0 || byteLimit < 0 { - next = k.String - return nil - } - if values { - boxes[k.String] = v.String - } else { - boxes[k.String] = "" + if v.Valid { + if _, ok := results[v.String]; ok { + continue } + results[v.String] = true + resultCount++ } } return nil }) - if err0 != nil { - return 0, nil, "", err0 - } - return round, boxes, next, nil + return } // keyPrefixIntervalPreprocessing is implemented to generate an interval for DB queries that look up keys by prefix. @@ -671,7 +649,7 @@ func (qs *accountsDbQueries) Close() { &qs.lookupAllResourcesStmt, &qs.lookupLimitedResourcesStmt, &qs.lookupKvPairStmt, - &qs.lookupKvByRangeStmt, + &qs.lookupKeysByRangeStmt, &qs.lookupCreatorStmt, } for _, preparedQuery := range preparedQueries { diff --git a/libgoal/libgoal.go b/libgoal/libgoal.go index 4ff900925b..3b3bff2760 100644 --- a/libgoal/libgoal.go +++ b/libgoal/libgoal.go @@ -762,10 +762,10 @@ func (c *Client) ApplicationInformation(index basics.AppIndex) (resp model.Appli } // ApplicationBoxes takes an app's index and returns the names of boxes under it -func (c *Client) ApplicationBoxes(appID basics.AppIndex, prefix string, next *string, limit uint64, values bool) (resp model.BoxesResponse, err error) { +func (c *Client) ApplicationBoxes(appID basics.AppIndex, maxBoxNum uint64) (resp model.BoxesResponse, err error) { algod, err := c.ensureAlgodClient() if err == nil { - resp, err = algod.ApplicationBoxes(appID, prefix, next, limit, values) + resp, err = algod.ApplicationBoxes(appID, maxBoxNum) } return } diff --git a/test/e2e-go/restAPI/other/appsRestAPI_test.go b/test/e2e-go/restAPI/other/appsRestAPI_test.go index 0b7c299eea..b0c2accd5f 100644 --- a/test/e2e-go/restAPI/other/appsRestAPI_test.go +++ b/test/e2e-go/restAPI/other/appsRestAPI_test.go @@ -264,7 +264,7 @@ end: var createdBoxCount uint64 = 0 // define operate box helper - operateBoxAndSendTxn := func(operation string, boxNames []string, boxValues []string, errPrefix ...string) basics.Round { + operateBoxAndSendTxn := func(operation string, boxNames []string, boxValues []string, errPrefix ...string) { txns := make([]transactions.Transaction, len(boxNames)) txIDs := make(map[string]string, len(boxNames)) @@ -306,16 +306,15 @@ end: err = testClient.BroadcastTransactionGroup(stxns) if len(errPrefix) == 0 { a.NoError(err) - tx, wErr := helper.WaitForTransaction(t, testClient, txns[0].ID().String(), 30*time.Second) - a.NoError(wErr) - return *tx.ConfirmedRound + _, err = helper.WaitForTransaction(t, testClient, txns[0].ID().String(), 30*time.Second) + a.NoError(err) + } else { + a.ErrorContains(err, errPrefix[0]) } - a.ErrorContains(err, errPrefix[0]) - return 0 } - // `assertErrorResponse` confirms the _Result limit exceeded_ when max=requestedMax - assertErrorResponse := func(err error, requestedMax uint64) { + // `assertErrorResponse` confirms the _Result limit exceeded_ error response provides expected fields and values. + assertErrorResponse := func(err error, expectedCount, requestedMax uint64) { a.Error(err) e := err.(client.HTTPError) a.Equal(400, e.StatusCode) @@ -323,30 +322,29 @@ end: a.Equal("Result limit exceeded", e.ErrorString) a.EqualValues(100000, e.Data["max-api-box-per-application"]) a.EqualValues(requestedMax, e.Data["max"]) + a.EqualValues(expectedCount, e.Data["total-boxes"]) - a.Len(e.Data, 2, fmt.Sprintf("error response (%v) contains unverified fields. Extend test for new fields.", e.Data)) + a.Len(e.Data, 3, fmt.Sprintf("error response (%v) contains unverified fields. Extend test for new fields.", e.Data)) } // `assertBoxCount` sanity checks that the REST API respects `expectedCount` through different queries against app ID = `createdAppID`. - assertBoxCount := func(expectedCount uint64, prefix string) { + assertBoxCount := func(expectedCount uint64) { // Query without client-side limit. - resp, err := testClient.ApplicationBoxes(createdAppID, prefix, nil, 0, false) + resp, err := testClient.ApplicationBoxes(createdAppID, 0) a.NoError(err) a.Len(resp.Boxes, int(expectedCount)) // Query with requested max < expected expectedCount. - if expectedCount > 1 { - _, err = testClient.ApplicationBoxes(createdAppID, prefix, nil, expectedCount-1, false) - assertErrorResponse(err, expectedCount-1) - } + _, err = testClient.ApplicationBoxes(createdAppID, expectedCount-1) + assertErrorResponse(err, expectedCount, expectedCount-1) // Query with requested max == expected expectedCount. - resp, err = testClient.ApplicationBoxes(createdAppID, prefix, nil, expectedCount, false) + resp, err = testClient.ApplicationBoxes(createdAppID, expectedCount) a.NoError(err) a.Len(resp.Boxes, int(expectedCount)) // Query with requested max > expected expectedCount. - resp, err = testClient.ApplicationBoxes(createdAppID, prefix, nil, expectedCount+1, false) + resp, err = testClient.ApplicationBoxes(createdAppID, expectedCount+1) a.NoError(err) a.Len(resp.Boxes, int(expectedCount)) } @@ -372,7 +370,7 @@ end: a.Failf("Unknown operation %s", operation) } - round := operateBoxAndSendTxn(operation, boxNames, boxValues) + operateBoxAndSendTxn(operation, boxNames, boxValues) if operation == "create" { for _, box := range boxNames { @@ -386,13 +384,9 @@ end: createdBoxCount -= uint64(len(boxNames)) } - // /boxes/ endpoint only examines DB, so we wait until its response includes the round we made the boxes in. var resp model.BoxesResponse - for resp.Round < round { - resp, err = testClient.ApplicationBoxes(createdAppID, "", nil, 0, false) - a.NoError(err) - time.Sleep(time.Second) - } + resp, err = testClient.ApplicationBoxes(createdAppID, 0) + a.NoError(err) expectedCreatedBoxes := make([]string, 0, createdBoxCount) for name, isCreate := range createdBoxName { @@ -412,9 +406,6 @@ end: } testingBoxNames := []string{ - `simple1`, - `simple2`, - `simple3`, ` `, ` `, ` ? = % ;`, @@ -453,10 +444,7 @@ end: } // Happy Vanilla paths: - resp, err := testClient.ApplicationBoxes(createdAppID, "", nil, 0, false) - a.NoError(err) - a.Empty(resp.Boxes) - resp, err = testClient.ApplicationBoxes(createdAppID, "str:xxx", nil, 0, false) + resp, err := testClient.ApplicationBoxes(createdAppID, 0) a.NoError(err) a.Empty(resp.Boxes) @@ -469,7 +457,7 @@ end: nonexistantAppIndex := basics.AppIndex(1337) _, err = testClient.ApplicationInformation(nonexistantAppIndex) a.ErrorContains(err, "application does not exist") - resp, err = testClient.ApplicationBoxes(nonexistantAppIndex, "", nil, 0, false) + resp, err = testClient.ApplicationBoxes(nonexistantAppIndex, 0) a.NoError(err) a.Len(resp.Boxes, 0) @@ -486,23 +474,7 @@ end: operateAndMatchRes("create", strSliceTest) } - assertBoxCount(uint64(len(testingBoxNames)), "") - assertBoxCount(3, "str:simpl") - assertBoxCount(1, "str:simple1") - assertBoxCount(0, "str:simple10") - - // test with a prefix - resp, err = testClient.ApplicationBoxes(createdAppID, "str:simpl", nil, 0, false) - a.NoError(err) - a.ElementsMatch([]model.Box{{Name: []byte("simple1")}, {Name: []byte("simple2")}, {Name: []byte("simple3")}}, - resp.Boxes) - - // test with prefix and a next - simple2 := "str:simple2" - resp, err = testClient.ApplicationBoxes(createdAppID, "str:simpl", &simple2, 0, false) - a.NoError(err) - a.ElementsMatch([]model.Box{{Name: []byte("simple2")}, {Name: []byte("simple3")}}, - resp.Boxes) + assertBoxCount(uint64(len(testingBoxNames))) for i := 0; i < len(testingBoxNames); i += 16 { var strSliceTest []string @@ -515,7 +487,7 @@ end: operateAndMatchRes("delete", strSliceTest) } - resp, err = testClient.ApplicationBoxes(createdAppID, "", nil, 0, false) + resp, err = testClient.ApplicationBoxes(createdAppID, 0) a.NoError(err) a.Empty(resp.Boxes) @@ -536,11 +508,10 @@ end: {[]byte{0, 248, 255, 32}, "b64:APj/IA==", []byte("lux56")}, } - round := basics.Round(0) for _, boxTest := range boxTests { // Box values are 5 bytes, as defined by the test TEAL program. operateBoxAndSendTxn("create", []string{string(boxTest.name)}, []string{""}) - round = operateBoxAndSendTxn("set", []string{string(boxTest.name)}, []string{string(boxTest.value)}) + operateBoxAndSendTxn("set", []string{string(boxTest.name)}, []string{string(boxTest.value)}) currentRoundBeforeBoxes, err := testClient.CurrentRound() a.NoError(err) @@ -549,22 +520,14 @@ end: currentRoundAfterBoxes, err := testClient.CurrentRound() a.NoError(err) a.Equal(boxTest.name, boxResponse.Name) - a.Equal(boxTest.value, *boxResponse.Value) + a.Equal(boxTest.value, boxResponse.Value) // To reduce flakiness, only check the round from boxes is within a range. - a.GreaterOrEqual(*boxResponse.Round, currentRoundBeforeBoxes) - a.LessOrEqual(*boxResponse.Round, currentRoundAfterBoxes) + a.GreaterOrEqual(boxResponse.Round, currentRoundBeforeBoxes) + a.LessOrEqual(boxResponse.Round, currentRoundAfterBoxes) } const numberOfBoxesRemaining = uint64(3) - - // wait for boxes to hit the DB - for resp.Round < round { - resp, err = testClient.ApplicationBoxes(createdAppID, "", nil, 0, false) - a.NoError(err) - time.Sleep(time.Second) - } - - assertBoxCount(numberOfBoxesRemaining, "") + assertBoxCount(numberOfBoxesRemaining) // Non-vanilla. Wasteful but correct. Can delete an app without first cleaning up its boxes. appAccountData, err := testClient.AccountData(createdAppID.Address().String()) @@ -585,8 +548,7 @@ end: _, err = testClient.ApplicationInformation(createdAppID) a.ErrorContains(err, "application does not exist") - assertBoxCount(numberOfBoxesRemaining, "") - assertBoxCount(1, "str:f") + assertBoxCount(numberOfBoxesRemaining) } func TestBlockLogs(t *testing.T) { diff --git a/test/scripts/e2e_subs/box-search.sh b/test/scripts/e2e_subs/box-search.sh index 543ce47a87..29ed02757b 100755 --- a/test/scripts/e2e_subs/box-search.sh +++ b/test/scripts/e2e_subs/box-search.sh @@ -26,18 +26,27 @@ APPID=$(${gcmd} app create --creator "$ACCOUNT" --approval-prog=${TEAL}/boxes.te APP_ACCOUNT=$(${gcmd} app info --app-id "$APPID" | grep "Application account" | awk '{print $3}') ${gcmd} clerk send --to "$APP_ACCOUNT" --from "$ACCOUNT" --amount 10000000 -# Confirm that "Boxes:" is the last line when there are no Boxes -BOX_LIST=$(${gcmd} app box list --app-id "$APPID" || true) -[[ "$BOX_LIST" = *"Boxes:" ]] || false +# Confirm that we are informed if no application boxes exist +BOX_LIST=$(${gcmd} app box list --app-id "$APPID" 2>&1 || true) +EXPECTED="No boxes found for appid $APPID" + +[ "$BOX_LIST" = "$EXPECTED" ] # Confirm that we are informed if a specific application box does not exist BOX_INFO=$(${gcmd} app box info --app-id "$APPID" --name "str:not_found" 2>&1 || true) -[[ "$BOX_INFO" = *"No box found for appid $APPID with name str:not_found" ]] || false +EXPECTED="No box found for appid $APPID with name str:not_found" + +[ "$BOX_INFO" = "$EXPECTED" ] # Confirm that we error for an invalid box name BOX_NAME="str:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" RES=$(${gcmd} app call --from "$ACCOUNT" --app-id "$APPID" --box "$BOX_NAME" --app-arg "str:create" --app-arg "$BOX_NAME" 2>&1 || true) -[[ "$RES" = *"invalid : tx.Boxes[0].Name too long, max len 64 bytes" ]] || false +EXPECTED="invalid : tx.Boxes[0].Name too long, max len 64 bytes" + +if [[ "$RES" != *"$EXPECTED" ]]; then + date "+${scriptname} unexpected response from goal app call with invalid box name %Y%m%d_%H%M%S" + false +fi # Create several boxes BOX_NAMES=("str:box1" "str:with spaces" "b64:YmFzZTY0" "b64:AQIDBA==") # b64:YmFzZTY0 == str:base64, b64:AQIDBA== is not unicode @@ -73,44 +82,21 @@ EXPECTED_APP_ACCOUNT_BOX_BYTES=121 [ "$ACTUAL_APP_ACCOUNT_NUM_BOXES" -eq "$EXPECTED_APP_ACCOUNT_NUM_BOXES" ] [ "$ACTUAL_APP_ACCOUNT_BOX_BYTES" -eq "$EXPECTED_APP_ACCOUNT_BOX_BYTES" ] -# goal app box list only looks at the DB, so wait a few rounds -sleep 10 - # Confirm that we can get a list of boxes belonging to a particular application BOX_LIST=$(${gcmd} app box list --app-id "$APPID") -[[ "$BOX_LIST" = "Round: "* ]] || false -EXPECTED="Boxes: -b64:AQIDBA== +EXPECTED="str:box1 +str:with spaces str:base64 -str:box1 -str:with spaces" -[[ "$BOX_LIST" = *"$EXPECTED" ]] || false +b64:AQIDBA==" -# Confirm that we can limit the number of boxes returned -BOX_LIST=$(${gcmd} app box list --app-id "$APPID" --limit 2) -[ "$(echo "$BOX_LIST" | wc -l)" -eq 5 ] # Round:, NextToken:, Boxes:, 2 actual responses -[[ "$BOX_LIST" != *str:with\ spaces* ]] || false # 4th box doesn't appear -[[ "$BOX_LIST" = *str:box1*Boxes:* ]] || false # 3rd box is this the NextToken (comes before "Boxes:") - -# Fetch the final two boxes -BOX_LIST=$(${gcmd} app box list --app-id "$APPID" --limit 2 --next str:box1) -[ "$(echo "$BOX_LIST" | wc -l)" -eq 4 ] # Round:, Boxes:, 2 actual responses -[[ "$BOX_LIST" != *NextToken* ]] || false # No NextToken -[[ "$BOX_LIST" = *Boxes:*str:box1* ]] || false -[[ "$BOX_LIST" = *Boxes:*str:with\ spaces* ]] || false - -# Confirm that we can use prefix to get only boxes that start with "bo" -BOX_LIST=$(${gcmd} app box list --app-id "$APPID" --prefix str:bo) -[ "$(echo "$BOX_LIST" | wc -l)" -eq 3 ] # Round:, Boxes:, 1 actual response -[[ "$BOX_LIST" != *Boxes:*str:base64* ]] || false -[[ "$BOX_LIST" = *Boxes:*str:box1* ]] || false - -# Confirm that we can use prefix to get only boxes that start with "b" -BOX_LIST=$(${gcmd} app box list --app-id "$APPID" --prefix str:b) -[ "$(echo "$BOX_LIST" | wc -l)" -eq 4 ] # Round:, Boxes:, 2 actual responses -[[ "$BOX_LIST" = *Boxes:*str:base64* ]] || false -[[ "$BOX_LIST" = *Boxes:*str:box1* ]] || false +# shellcheck disable=SC2059 +[ "$(printf "$BOX_LIST" | sort)" = "$(printf "$EXPECTED" | sort)" ] +# Confirm that we can limit the number of boxes returned +BOX_LIST=$(${gcmd} app box list --app-id "$APPID" --max 4) +[ "$(echo "$BOX_LIST" | wc -l)" -eq 4 ] # only one line +# shellcheck disable=SC2143 +[ "$(grep -w "$BOX_LIST" <<< "$EXPECTED")" ] # actual box is in the expected list # Create and set a box in an atomic txn group: @@ -118,56 +104,34 @@ BOX_NAME="str:great box" echo "Create $BOX_NAME" ${gcmd} app call --from "$ACCOUNT" --app-id "$APPID" --box "$BOX_NAME" --app-arg "str:create" --app-arg "$BOX_NAME" -o "$TEMPDIR/box_create.txn" -echo "Set $BOX_NAME using str:GREAT" -GREAT_VALUE=123456789012345678901234 -${gcmd} app call --from "$ACCOUNT" --app-id "$APPID" --app-arg "str:set" --app-arg "$BOX_NAME" --app-arg "str:$GREAT_VALUE" -o "$TEMPDIR/box_set.txn" +echo "Set $BOX_NAME using $BOX_VALUE" +${gcmd} app call --from "$ACCOUNT" --app-id "$APPID" --app-arg "str:set" --app-arg "$BOX_NAME" --app-arg "str:$BOX_VALUE" -o "$TEMPDIR/box_set.txn" # Group them, sign and broadcast: cat "$TEMPDIR/box_create.txn" "$TEMPDIR/box_set.txn" > "$TEMPDIR/box_create_n_set.txn" ${gcmd} clerk group -i "$TEMPDIR/box_create_n_set.txn" -o "$TEMPDIR/box_group.txn" ${gcmd} clerk sign -i "$TEMPDIR/box_group.txn" -o "$TEMPDIR/box_group.stx" -COMMIT=$(${gcmd} clerk rawsend -f "$TEMPDIR/box_group.stx" | grep "committed in round" | head -1 | awk '{print $6}') -echo "Last box made in $COMMIT" +${gcmd} clerk rawsend -f "$TEMPDIR/box_group.stx" -echo "Confirm the NAME is $BOX_NAME" +echo "Confirm that NAME $BOX_NAME as expected" ${gcmd} app box info --app-id "$APPID" --name "$BOX_NAME" NAME=$(${gcmd} app box info --app-id "$APPID" --name "$BOX_NAME" | grep Name | tr -s ' ' | cut -d" " -f2-) [ "$NAME" = "$BOX_NAME" ] +echo "Confirm that VALUE $BOX_VALUE i.e. ($B64_BOX_VALUE) as expected" VALUE=$(${gcmd} app box info --app-id "$APPID" --name "$BOX_NAME" | grep Value | tr -s ' ' | cut -d" " -f2-) -[ "$VALUE" = str:$GREAT_VALUE ] - - -# Confirm that we can still get the list of boxes (need to keep asking -# until the returned results are for $ROUND) -retry=0 -while [ $retry -lt 10 ]; do - BOX_LIST=$(${gcmd} app box list --app-id "$APPID") - ROUND=$(echo "$BOX_LIST" | awk '/Round: / {print $2}') - if [[ "$COMMIT" == "$ROUND" ]]; then - break - fi - retry=$((retry + 1)) - sleep 2 -done +[ "$VALUE" = "$B64_BOX_VALUE" ] -EXPECTED="Boxes: -b64:AQIDBA== +# Confirm that we can still get the list of boxes +BOX_LIST=$(${gcmd} app box list --app-id "$APPID") +EXPECTED="str:box1 +str:with spaces str:base64 -str:box1 -str:great box -str:with spaces" -[[ "$BOX_LIST" = *"$EXPECTED" ]] || false - -# Confirm that values are available -BOX_LIST=$(${gcmd} app box list --app-id "$APPID" --values) -EXPECTED="Boxes: -b64:AQIDBA== : $B64_BOX_VALUE -str:base64 : $B64_BOX_VALUE -str:box1 : $B64_BOX_VALUE -str:great box : str:$GREAT_VALUE -str:with spaces : $B64_BOX_VALUE" -[[ "$BOX_LIST" = *"$EXPECTED" ]] || false +b64:AQIDBA== +str:great box" + +# shellcheck disable=SC2059 +[ "$(printf "$BOX_LIST" | sort)" = "$(printf "$EXPECTED" | sort)" ] # Confirm that the account data representation still knows about all the boxes APP_ACCOUNT_JSON_DUMP=$(${gcmd} account dump --address "$APP_ACCOUNT") diff --git a/util/set.go b/util/set.go index 55fb2be90a..e6ea6a6927 100644 --- a/util/set.go +++ b/util/set.go @@ -32,7 +32,7 @@ func (s Set[T]) Add(elems ...T) Set[T] { // MakeSet constructs a set instance directly from elements. func MakeSet[T comparable](elems ...T) Set[T] { - return make(Set[T], len(elems)).Add(elems...) + return make(Set[T]).Add(elems...) } // Empty returns true if the set is empty.